From 5f235819c938f2d17aff636d7ec3a460dcca07eb Mon Sep 17 00:00:00 2001
From: Vaibhav
Date: Mon, 3 Jan 2022 18:11:30 -0500
Subject: [PATCH] feat: added event transform (#1492)
---
api/event-bus.md | 679 ++-
api/event-source.md | 4460 ++++++++++++++++-
api/jsonschema/schema.json | 18 +
api/openapi-spec/swagger.json | 18 +
api/sensor.html | 56 +
api/sensor.md | 3227 +++++++++++-
docs/sensors/transform.md | 146 +
eventbus/driver/driver.go | 2 +-
eventbus/driver/nats.go | 23 +-
eventsources/sources/kafka/start.go | 1 -
examples/sensors/transform.yaml | 85 +
go.mod | 7 +-
go.sum | 15 +-
hack/crdgen.sh | 2 +-
hack/custom-boilerplate.go.txt | 2 +-
mkdocs.yml | 1 +
pkg/apis/common/deepcopy_generated.go | 2 +-
pkg/apis/common/generated.pb.go | 2 +-
pkg/apis/common/generated.proto | 2 +-
pkg/apis/common/openapi_generated.go | 2 +-
pkg/apis/eventbus/v1alpha1/generated.pb.go | 2 +-
pkg/apis/eventbus/v1alpha1/generated.proto | 2 +-
.../eventbus/v1alpha1/openapi_generated.go | 2 +-
.../v1alpha1/zz_generated.deepcopy.go | 2 +-
pkg/apis/eventsource/v1alpha1/generated.pb.go | 2 +-
pkg/apis/eventsource/v1alpha1/generated.proto | 2 +-
.../eventsource/v1alpha1/openapi_generated.go | 2 +-
.../v1alpha1/zz_generated.deepcopy.go | 2 +-
pkg/apis/sensor/v1alpha1/generated.pb.go | 837 ++--
pkg/apis/sensor/v1alpha1/generated.proto | 16 +-
pkg/apis/sensor/v1alpha1/openapi_generated.go | 120 +-
pkg/apis/sensor/v1alpha1/types.go | 12 +
.../sensor/v1alpha1/zz_generated.deepcopy.go | 23 +-
.../eventbus/clientset/versioned/clientset.go | 2 +-
.../eventbus/clientset/versioned/doc.go | 2 +-
.../versioned/fake/clientset_generated.go | 2 +-
.../eventbus/clientset/versioned/fake/doc.go | 2 +-
.../clientset/versioned/fake/register.go | 2 +-
.../clientset/versioned/scheme/doc.go | 2 +-
.../clientset/versioned/scheme/register.go | 2 +-
.../versioned/typed/eventbus/v1alpha1/doc.go | 2 +-
.../typed/eventbus/v1alpha1/eventbus.go | 2 +-
.../eventbus/v1alpha1/eventbus_client.go | 2 +-
.../typed/eventbus/v1alpha1/fake/doc.go | 2 +-
.../eventbus/v1alpha1/fake/fake_eventbus.go | 2 +-
.../v1alpha1/fake/fake_eventbus_client.go | 2 +-
.../eventbus/v1alpha1/generated_expansion.go | 2 +-
.../externalversions/eventbus/interface.go | 2 +-
.../eventbus/v1alpha1/eventbus.go | 2 +-
.../eventbus/v1alpha1/interface.go | 2 +-
.../informers/externalversions/factory.go | 2 +-
.../informers/externalversions/generic.go | 2 +-
.../internalinterfaces/factory_interfaces.go | 2 +-
.../listers/eventbus/v1alpha1/eventbus.go | 2 +-
.../eventbus/v1alpha1/expansion_generated.go | 2 +-
.../clientset/versioned/clientset.go | 2 +-
.../eventsource/clientset/versioned/doc.go | 2 +-
.../versioned/fake/clientset_generated.go | 2 +-
.../clientset/versioned/fake/doc.go | 2 +-
.../clientset/versioned/fake/register.go | 2 +-
.../clientset/versioned/scheme/doc.go | 2 +-
.../clientset/versioned/scheme/register.go | 2 +-
.../typed/eventsource/v1alpha1/doc.go | 2 +-
.../typed/eventsource/v1alpha1/eventsource.go | 2 +-
.../v1alpha1/eventsource_client.go | 2 +-
.../typed/eventsource/v1alpha1/fake/doc.go | 2 +-
.../v1alpha1/fake/fake_eventsource.go | 2 +-
.../v1alpha1/fake/fake_eventsource_client.go | 2 +-
.../v1alpha1/generated_expansion.go | 2 +-
.../externalversions/eventsource/interface.go | 2 +-
.../eventsource/v1alpha1/eventsource.go | 2 +-
.../eventsource/v1alpha1/interface.go | 2 +-
.../informers/externalversions/factory.go | 2 +-
.../informers/externalversions/generic.go | 2 +-
.../internalinterfaces/factory_interfaces.go | 2 +-
.../eventsource/v1alpha1/eventsource.go | 2 +-
.../v1alpha1/expansion_generated.go | 2 +-
.../sensor/clientset/versioned/clientset.go | 2 +-
pkg/client/sensor/clientset/versioned/doc.go | 2 +-
.../versioned/fake/clientset_generated.go | 2 +-
.../sensor/clientset/versioned/fake/doc.go | 2 +-
.../clientset/versioned/fake/register.go | 2 +-
.../sensor/clientset/versioned/scheme/doc.go | 2 +-
.../clientset/versioned/scheme/register.go | 2 +-
.../versioned/typed/sensor/v1alpha1/doc.go | 2 +-
.../typed/sensor/v1alpha1/fake/doc.go | 2 +-
.../typed/sensor/v1alpha1/fake/fake_sensor.go | 2 +-
.../v1alpha1/fake/fake_sensor_client.go | 2 +-
.../sensor/v1alpha1/generated_expansion.go | 2 +-
.../versioned/typed/sensor/v1alpha1/sensor.go | 2 +-
.../typed/sensor/v1alpha1/sensor_client.go | 2 +-
.../informers/externalversions/factory.go | 2 +-
.../informers/externalversions/generic.go | 2 +-
.../internalinterfaces/factory_interfaces.go | 2 +-
.../externalversions/sensor/interface.go | 2 +-
.../sensor/v1alpha1/interface.go | 2 +-
.../sensor/v1alpha1/sensor.go | 2 +-
.../sensor/v1alpha1/expansion_generated.go | 2 +-
.../sensor/listers/sensor/v1alpha1/sensor.go | 2 +-
sensors/dependencies/transform.go | 199 +
sensors/dependencies/transform_test.go | 119 +
sensors/listener.go | 26 +-
102 files changed, 9781 insertions(+), 469 deletions(-)
create mode 100644 docs/sensors/transform.md
create mode 100644 examples/sensors/transform.yaml
create mode 100644 sensors/dependencies/transform.go
create mode 100644 sensors/dependencies/transform_test.go
diff --git a/api/event-bus.md b/api/event-bus.md
index dcefab8667..d1819925fc 100644
--- a/api/event-bus.md
+++ b/api/event-bus.md
@@ -1,563 +1,1068 @@
+
Packages:
+
+
+
+
argoproj.io/v1alpha1
+
+
+
+
Package v1alpha1 is the v1alpha1 version of the API.
+
+
+
Resource Types:
+
+
+
AuthStrategy (string
alias)
+
+
+
+
(Appears on:
NATSConfig,
NativeStrategy)
+
+
+
+
AuthStrategy is the auth strategy of native nats installaion
+
+
+
+
BusConfig
+
+
+
(Appears on:
EventBusStatus)
+
+
+
+
BusConfig has the finalized configuration for EventBus
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
nats
NATSConfig
+
|
+
+
|
+
+
+
+
+
ContainerTemplate
+
+
+
(Appears on:
NativeStrategy)
+
+
+
+
ContainerTemplate defines customized spec for a container
+
+
+
+
+
EventBus
+
+
+
+
EventBus is the definition of a eventbus resource
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
metadata
Kubernetes meta/v1.ObjectMeta
+
|
+
+
Refer to the Kubernetes API documentation for the fields of the
metadata field.
+
|
+
+
+
+
spec
EventBusSpec
+
|
+
+
+
+
+
+
nats
NATSBus
+
|
+
+
+
NATS eventbus
+
+
|
+
+
+
|
+
+
+
+
status
EventBusStatus
+
|
+
+
(Optional)
+
|
+
+
+
+
+
EventBusSpec
+
+
+
(Appears on:
EventBus)
+
+
+
+
EventBusSpec refers to specification of eventbus resource
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
nats
NATSBus
+
|
+
+
+
NATS eventbus
+
+
|
+
+
+
+
+
EventBusStatus
+
+
+
(Appears on:
EventBus)
+
+
+
+
EventBusStatus holds the status of the eventbus resource
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
Status
github.com/argoproj/argo-events/pkg/apis/common.Status
+
|
+
+
+
(Members of Status are embedded into this type.)
+
+
|
+
+
+
+
config
BusConfig
+
|
+
+
+
Config holds the fininalized configuration of EventBus
+
+
|
+
+
+
+
+
NATSBus
+
+
+
(Appears on:
EventBusSpec)
+
+
+
+
NATSBus holds the NATS eventbus information
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
native
NativeStrategy
+
|
+
+
+
Native means to bring up a native NATS service
+
+
|
+
+
+
+
exotic
NATSConfig
+
|
+
+
+
Exotic holds an exotic NATS config
+
+
|
+
+
+
+
+
NATSConfig
+
+
+
(Appears on:
BusConfig,
NATSBus)
+
+
+
+
NATSConfig holds the config of NATS
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
NATS streaming url
+
+
|
+
+
+
+
clusterID string
+
|
+
+
+
Cluster ID for nats streaming
+
+
|
+
+
+
+
auth
AuthStrategy
+
|
+
+
(Optional)
+
+
Auth strategy, default to AuthStrategyNone
+
+
|
+
+
+
+
accessSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Secret for auth
+
+
|
+
+
+
+
+
NativeStrategy
+
+
+
(Appears on:
NATSBus)
+
+
+
+
NativeStrategy indicates to install a native NATS service
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
replicas int32
+
|
+
+
+
Size is the NATS StatefulSet size
+
+
|
+
+
+
+
auth
AuthStrategy
+
|
+
+
|
+
+
+
+
persistence
PersistenceStrategy
+
|
+
+
(Optional)
+
|
+
+
+
+
containerTemplate
ContainerTemplate
+
|
+
+
(Optional)
+
+
ContainerTemplate contains customized spec for NATS container
+
+
|
+
+
+
+
metricsContainerTemplate
ContainerTemplate
+
|
+
+
(Optional)
+
+
MetricsContainerTemplate contains customized spec for metrics container
+
+
|
+
+
+
+
nodeSelector map\[string\]string
+
|
+
+
(Optional)
+
+
NodeSelector is a selector which must be true for the pod to fit on a
node. Selector which must match a node’s labels for the pod to be
scheduled on that node. More info:
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
+
+
|
+
+
+
+
tolerations
\[\]Kubernetes core/v1.Toleration
+
|
+
+
(Optional)
+
+
If specified, the pod’s tolerations.
+
+
|
+
+
+
+
metadata
github.com/argoproj/argo-events/pkg/apis/common.Metadata
+
|
+
+
+
Metadata sets the pods’s metadata, i.e. annotations and labels
+
+
|
+
+
+
+
securityContext
Kubernetes core/v1.PodSecurityContext
+
|
+
+
(Optional)
+
+
SecurityContext holds pod-level security attributes and common container
settings. Optional: Defaults to empty. See type description for default
values of each field.
+
+
|
+
+
+
+
maxAge string
+
|
+
+
(Optional)
+
+
Max Age of existing messages, i.e. “72h”, “4h35m”
+
+
|
+
+
+
+
imagePullSecrets
\[\]Kubernetes core/v1.LocalObjectReference
+
|
+
+
(Optional)
+
+
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. If specified, these secrets will be passed to individual puller
implementations for them to use. For example, in the case of docker,
only DockerConfig type secrets are honored. More info:
-https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
+https://kubernetes.io/docs/concepts/containers/images\#specifying-imagepullsecrets-on-a-pod
+
+
|
+
+
+
+
serviceAccountName string
+
|
+
+
(Optional)
+
+
ServiceAccountName to apply to NATS StatefulSet
+
+
|
+
+
+
+
priorityClassName string
+
|
+
+
(Optional)
+
+
If specified, indicates the EventSource pod’s priority.
“system-node-critical” and “system-cluster-critical” are two special
keywords which indicate the highest priorities with the former being the
@@ -565,194 +1070,362 @@ highest priority. Any other name must be defined by creating a
PriorityClass object with that name. If not specified, the pod priority
will be default or zero if there is no default. More info:
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
+
+
|
+
+
+
+
priority int32
+
|
+
+
(Optional)
+
+
The priority value. Various system components use this field to find the
priority of the EventSource pod. When Priority Admission Controller is
enabled, it prevents users from setting this field. The admission
controller populates this field from PriorityClassName. The higher the
value, the higher the priority. More info:
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
+
+
|
+
+
+
+
affinity
Kubernetes core/v1.Affinity
+
|
+
+
(Optional)
+
+
The pod’s scheduling constraints More info:
https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
+
+
|
+
+
+
+
maxMsgs uint64
+
|
+
+
+
Maximum number of messages per channel, 0 means unlimited. Defaults to
1000000
+
+
|
+
+
+
+
maxBytes string
+
|
+
+
+
Total size of messages per channel, 0 means unlimited. Defaults to 1GB
+
+
|
+
+
+
+
maxSubs uint64
+
|
+
+
+
Maximum number of subscriptions per channel, 0 means unlimited. Defaults
to 1000
+
+
|
+
+
+
+
maxPayload string
+
|
+
+
+
Maximum number of bytes in a message payload, 0 means unlimited.
Defaults to 1MB
+
+
|
+
+
+
+
raftHeartbeatTimeout string
+
|
+
+
+
Specifies the time in follower state without a leader before attempting
an election, i.e. “72h”, “4h35m”. Defaults to 2s
+
+
|
+
+
+
+
raftElectionTimeout string
+
|
+
+
+
Specifies the time in candidate state without a leader before attempting
an election, i.e. “72h”, “4h35m”. Defaults to 2s
+
+
|
+
+
+
+
raftLeaseTimeout string
+
|
+
+
+
Specifies how long a leader waits without being able to contact a quorum
of nodes before stepping down as leader, i.e. “72h”, “4h35m”. Defaults
to 1s
+
+
|
+
+
+
+
raftCommitTimeout string
+
|
+
+
+
Specifies the time without an Apply() operation before sending an
heartbeat to ensure timely commit, i.e. “72h”, “4h35m”. Defaults to
100ms
+
+
|
+
+
+
+
+
PersistenceStrategy
+
+
+
(Appears on:
NativeStrategy)
+
+
+
+
PersistenceStrategy defines the strategy of persistence
+
+
+
+
+
+
Generated with gen-crd-api-reference-docs
.
+
diff --git a/api/event-source.md b/api/event-source.md
index 937e947f9b..15a29acc9c 100644
--- a/api/event-source.md
+++ b/api/event-source.md
@@ -1,4290 +1,8115 @@
+
Packages:
+
+
+
+
argoproj.io/v1alpha1
+
+
+
+
Package v1alpha1 is the v1alpha1 version of the API.
+
+
+
Resource Types:
+
+
+
AMQPConsumeConfig
+
+
+
(Appears on:
AMQPEventSource)
+
+
+
+
AMQPConsumeConfig holds the configuration to immediately starts
delivering queued messages
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
consumerTag string
+
|
+
+
(Optional)
+
+
ConsumerTag is the identity of the consumer included in every delivery
+
+
|
+
+
+
+
autoAck bool
+
|
+
+
(Optional)
+
+
AutoAck when true, the server will acknowledge deliveries to this
consumer prior to writing the delivery to the network
+
+
|
+
+
+
+
exclusive bool
+
|
+
+
(Optional)
+
+
Exclusive when true, the server will ensure that this is the sole
consumer from this queue
+
+
|
+
+
+
+
noLocal bool
+
|
+
+
(Optional)
+
+
NoLocal flag is not supported by RabbitMQ
+
+
|
+
+
+
+
noWait bool
+
|
+
+
(Optional)
+
+
NowWait when true, do not wait for the server to confirm the request and
immediately begin deliveries
+
+
|
+
+
+
+
+
AMQPEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
AMQPEventSource refers to an event-source for AMQP stream events
+
+
+
+
+
AMQPExchangeDeclareConfig
+
+
+
(Appears on:
AMQPEventSource)
+
+
+
+
AMQPExchangeDeclareConfig holds the configuration for the exchange on
the server
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
durable bool
+
|
+
+
(Optional)
+
+
Durable keeps the exchange also after the server restarts
+
+
|
+
+
+
+
autoDelete bool
+
|
+
+
(Optional)
+
+
AutoDelete removes the exchange when no bindings are active
+
+
|
+
+
+
+
internal bool
+
|
+
+
(Optional)
+
+
Internal when true does not accept publishings
+
+
|
+
+
+
+
noWait bool
+
|
+
+
(Optional)
+
+
NowWait when true does not wait for a confirmation from the server
+
+
|
+
+
+
+
+
AMQPQueueBindConfig
+
+
+
(Appears on:
AMQPEventSource)
+
+
+
+
AMQPQueueBindConfig holds the configuration that binds an exchange to a
queue so that publishings to the exchange will be routed to the queue
when the publishing routing key matches the binding routing key
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
noWait bool
+
|
+
+
(Optional)
+
+
NowWait false and the queue could not be bound, the channel will be
closed with an error
+
+
|
+
+
+
+
+
AMQPQueueDeclareConfig
+
+
+
(Appears on:
AMQPEventSource)
+
+
+
+
AMQPQueueDeclareConfig holds the configuration of a queue to hold
messages and deliver to consumers. Declaring creates a queue if it
doesn’t already exist, or ensures that an existing queue matches the
same parameters
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
name string
+
|
+
+
(Optional)
+
+
Name of the queue. If empty the server auto-generates a unique name for
this queue
+
+
|
+
+
+
+
durable bool
+
|
+
+
(Optional)
+
+
Durable keeps the queue also after the server restarts
+
+
|
+
+
+
+
autoDelete bool
+
|
+
+
(Optional)
+
+
AutoDelete removes the queue when no consumers are active
+
+
|
+
+
+
+
exclusive bool
+
|
+
+
(Optional)
+
+
Exclusive sets the queues to be accessible only by the connection that
declares them and will be deleted wgen the connection closes
+
+
|
+
+
+
+
noWait bool
+
|
+
+
(Optional)
+
+
NowWait when true, the queue assumes to be declared on the server
+
+
|
+
+
+
+
+
AzureEventsHubEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
AzureEventsHubEventSource describes the event source for azure events
hub More info at
https://docs.microsoft.com/en-us/azure/event-hubs/
+
+
+
+
+
BitbucketServerEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
BitbucketServerEventSource refers to event-source related to Bitbucket
Server events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook holds configuration to run a http server
+
+
|
+
+
+
+
projectKey string
+
|
+
+
+
ProjectKey is the key of project for which integration needs to setup
+
+
|
+
+
+
+
repositorySlug string
+
|
+
+
+
RepositorySlug is the slug of the repository for which integration needs
to setup
+
+
|
+
+
+
+
events \[\]string
+
|
+
+
+
Events are bitbucket event to listen to. Refer
https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
+
+
|
+
+
+
+
accessToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
AccessToken is reference to K8s secret which holds the bitbucket api
access information
+
+
|
+
+
+
+
webhookSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
WebhookSecret is reference to K8s secret which holds the bitbucket
webhook secret (for HMAC validation)
+
+
|
+
+
+
+
bitbucketserverBaseURL string
+
|
+
+
+
BitbucketServerBaseURL is the base URL for API requests to a custom
endpoint
+
+
|
+
+
+
+
deleteHookOnFinish bool
+
|
+
+
(Optional)
+
+
DeleteHookOnFinish determines whether to delete the Bitbucket Server
hook for the project once the event source is stopped.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
CalendarEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
CalendarEventSource describes a time based dependency. One of the fields
(schedule, interval, or recurrence) must be passed. Schedule takes
precedence over interval; interval takes precedence over recurrence
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
schedule string
+
|
+
+
(Optional)
+
+
Schedule is a cron-like expression. For reference, see:
https://en.wikipedia.org/wiki/Cron
+
+
|
+
+
+
+
interval string
+
|
+
+
(Optional)
+
+
Interval is a string that describes an interval duration, e.g. 1s, 30m,
2h…
+
+
|
+
+
+
+
exclusionDates \[\]string
+
|
+
+
+
ExclusionDates defines the list of DATE-TIME exceptions for recurring
events.
+
+
|
+
+
+
+
timezone string
+
|
+
+
(Optional)
+
+
Timezone in which to run the schedule
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
persistence
EventPersistence
+
|
+
+
+
Persistence hold the configuration for event persistence
+
+
|
+
+
+
+
+
CatchupConfiguration
+
+
+
(Appears on:
EventPersistence)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
enabled bool
+
|
+
+
+
Enabled enables to triggered the missed schedule when eventsource
restarts
+
+
|
+
+
+
+
maxDuration string
+
|
+
+
+
MaxDuration holds max catchup duration
+
+
|
+
+
+
+
+
ConfigMapPersistence
+
+
+
(Appears on:
EventPersistence)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
name string
+
|
+
+
+
Name of the configmap
+
+
|
+
+
+
+
createIfNotExist bool
+
|
+
+
+
CreateIfNotExist will create configmap if it doesn’t exists
+
+
|
+
+
+
+
+
EmitterEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
EmitterEventSource describes the event source for emitter More info at
https://emitter.io/develop/getting-started/
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
broker string
+
|
+
+
+
Broker URI to connect to.
+
+
|
+
+
+
+
channelKey string
+
|
+
+
+
ChannelKey refers to the channel key
+
+
|
+
+
+
+
channelName string
+
|
+
+
+
ChannelName refers to the channel name
+
+
|
+
+
+
+
username
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Username to use to connect to broker
+
+
|
+
+
+
+
password
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Password to use to connect to broker
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
(Optional)
+
+
Backoff holds parameters applied to connection.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the emitter client.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
EventPersistence
+
+
+
(Appears on:
CalendarEventSource)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
catchup
CatchupConfiguration
+
|
+
+
+
Catchup enables to triggered the missed schedule when eventsource
restarts
+
+
|
+
+
+
+
configMap
ConfigMapPersistence
+
|
+
+
+
ConfigMap holds configmap details for persistence
+
+
|
+
+
+
+
+
EventSource
+
+
+
+
EventSource is the definition of a eventsource resource
+
+
+
+
+
EventSourceSpec
+
+
+
(Appears on:
EventSource)
+
+
+
+
EventSourceSpec refers to specification of event-source resource
+
+
+
+
+
EventSourceStatus
+
+
+
(Appears on:
EventSource)
+
+
+
+
EventSourceStatus holds the status of the event-source resource
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
Status
github.com/argoproj/argo-events/pkg/apis/common.Status
+
|
+
+
+
(Members of Status are embedded into this type.)
+
+
|
+
+
+
+
+
FileEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
FileEventSource describes an event-source for file related events.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
eventType string
+
|
+
+
+
Type of file operations to watch Refer
https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go
for more information
+
+
|
+
+
+
+
watchPathConfig
WatchPathConfig
+
|
+
+
+
WatchPathConfig contains configuration about the file path to watch
+
+
|
+
+
+
+
polling bool
+
|
+
+
+
Use polling instead of inotify
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
GenericEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
GenericEventSource refers to a generic event source. It can be used to
implement a custom event source.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL of the gRPC server that implements the event source.
+
+
|
+
+
+
+
config string
+
|
+
+
+
Config is the event source configuration
+
+
|
+
+
+
+
insecure bool
+
|
+
+
+
Insecure determines the type of connection.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
authSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
AuthSecret holds a secret selector that contains a bearer token for
authentication
+
+
|
+
+
+
+
+
GithubAppCreds
+
+
+
(Appears on:
GithubEventSource)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
privateKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
PrivateKey refers to a K8s secret containing the GitHub app private key
+
+
|
+
+
+
+
appID int64
+
|
+
+
+
AppID refers to the GitHub App ID for the application you created
+
+
|
+
+
+
+
installationID int64
+
|
+
+
+
InstallationID refers to the Installation ID of the GitHub app you
created and installed
+
+
|
+
+
+
+
+
GithubEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
GithubEventSource refers to event-source for github related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
id int64
+
|
+
+
(Optional)
+
+
Id is the webhook’s id Deprecated: This is not used at all, will be
removed in v1.6
+
+
|
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook refers to the configuration required to run a http server
+
+
|
+
+
+
+
owner string
+
|
+
+
(Optional)
+
+
DeprecatedOwner refers to GitHub owner name i.e. argoproj Deprecated:
use Repositories instead. Will be unsupported in v 1.6
+
+
|
+
+
+
+
repository string
+
|
+
+
(Optional)
+
+
DeprecatedRepository refers to GitHub repo name i.e. argo-events
Deprecated: use Repositories instead. Will be unsupported in v 1.6
+
+
|
+
+
+
+
events \[\]string
+
|
+
+
+
Events refer to Github events to which the event source will subscribe
+
+
|
+
+
+
+
apiToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
APIToken refers to a K8s secret containing github api token
+
+
|
+
+
+
+
webhookSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
WebhookSecret refers to K8s secret containing GitHub webhook secret
https://developer.github.com/webhooks/securing/
+
+
|
+
+
+
+
insecure bool
+
|
+
+
+
Insecure tls verification
+
+
|
+
+
+
+
active bool
+
|
+
+
(Optional)
+
+
Active refers to status of the webhook for event deliveries.
-https://developer.github.com/webhooks/creating/#active
+https://developer.github.com/webhooks/creating/\#active
+
+
|
+
+
+
+
contentType string
+
|
+
+
+
ContentType of the event delivery
+
+
|
+
+
+
+
githubBaseURL string
+
|
+
+
(Optional)
+
+
GitHub base URL (for GitHub Enterprise)
+
+
|
+
+
+
+
githubUploadURL string
+
|
+
+
(Optional)
+
+
GitHub upload URL (for GitHub Enterprise)
+
+
|
+
+
+
+
deleteHookOnFinish bool
+
|
+
+
(Optional)
+
+
DeleteHookOnFinish determines whether to delete the GitHub hook for the
repository once the event source is stopped.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
repositories
\[\]OwnedRepositories
+
|
+
+
+
Repositories holds the information of repositories, which uses repo
owner as the key, and list of repo names as the value. Not required if
Organizations is set.
+
+
|
+
+
+
+
organizations \[\]string
+
|
+
+
+
Organizations holds the names of organizations (used for organization
level webhooks). Not required if Repositories is set.
+
+
|
+
+
+
+
githubApp
GithubAppCreds
+
|
+
+
(Optional)
+
+
GitHubApp holds the GitHub app credentials
+
+
|
+
+
+
+
+
GitlabEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
GitlabEventSource refers to event-source related to Gitlab events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook holds configuration to run a http server
+
+
|
+
+
+
+
projectID string
+
|
+
+
+
DeprecatedProjectID is the id of project for which integration needs to
setup Deprecated: use Projects instead. Will be unsupported in v 1.7
+
+
|
+
+
+
+
events \[\]string
+
|
+
+
+
Events are gitlab event to listen to. Refer
-https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
+https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go\#L794.
+
+
|
+
+
+
+
accessToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
AccessToken references to k8 secret which holds the gitlab api access
information
+
+
|
+
+
+
+
enableSSLVerification bool
+
|
+
+
(Optional)
+
+
EnableSSLVerification to enable ssl verification
+
+
|
+
+
+
+
gitlabBaseURL string
+
|
+
+
+
GitlabBaseURL is the base URL for API requests to a custom endpoint
+
+
|
+
+
+
+
deleteHookOnFinish bool
+
|
+
+
(Optional)
+
+
DeleteHookOnFinish determines whether to delete the GitLab hook for the
project once the event source is stopped.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
projects \[\]string
+
|
+
+
+
List of project IDs or project namespace paths like “whynowy/test”
+
+
|
+
+
+
+
secretToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SecretToken references to k8 secret which holds the Secret Token used by
webhook config
+
+
|
+
+
+
+
+
HDFSEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
HDFSEventSource refers to event-source for HDFS related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
WatchPathConfig
WatchPathConfig
+
|
+
+
+
(Members of WatchPathConfig are embedded into this type.)
+
+
|
+
+
+
+
type string
+
|
+
+
+
Type of file operations to watch
+
+
|
+
+
+
+
checkInterval string
+
|
+
+
+
CheckInterval is a string that describes an interval duration to check
the directory state, e.g. 1s, 30m, 2h… (defaults to 1m)
+
+
|
+
+
+
+
addresses \[\]string
+
|
+
+
|
+
+
+
+
hdfsUser string
+
|
+
+
+
HDFSUser is the user to access HDFS file system. It is ignored if either
ccache or keytab is used.
+
+
|
+
+
+
+
krbCCacheSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache
or keytab can be set to use Kerberos.
+
+
|
+
+
+
+
krbKeytabSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache
or keytab can be set to use Kerberos.
+
+
|
+
+
+
+
krbUsername string
+
|
+
+
+
KrbUsername is the Kerberos username used with Kerberos keytab It must
be set if keytab is used.
+
+
|
+
+
+
+
krbRealm string
+
|
+
+
+
KrbRealm is the Kerberos realm used with Kerberos keytab It must be set
if keytab is used.
+
+
|
+
+
+
+
krbConfigConfigMap
Kubernetes core/v1.ConfigMapKeySelector
+
|
+
+
+
KrbConfig is the configmap selector for Kerberos config as string It
must be set if either ccache or keytab is used.
+
+
|
+
+
+
+
krbServicePrincipalName string
+
|
+
+
+
KrbServicePrincipalName is the principal name of Kerberos service It
must be set if either ccache or keytab is used.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
KafkaConsumerGroup
+
+
+
(Appears on:
KafkaEventSource)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
groupName string
+
|
+
+
+
The name for the consumer group to use
+
+
|
+
+
+
+
oldest bool
+
|
+
+
(Optional)
+
+
When starting up a new group do we want to start from the oldest event
(true) or the newest event (false), defaults to false
+
+
|
+
+
+
+
rebalanceStrategy string
+
|
+
+
(Optional)
+
+
Rebalance strategy can be one of: sticky, roundrobin, range. Range is
the default.
+
+
|
+
+
+
+
+
KafkaEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
KafkaEventSource refers to event-source for Kafka related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL to kafka cluster, multiple URLs separated by comma
+
+
|
+
+
+
+
partition string
+
|
+
+
+
Partition name
+
+
|
+
+
+
+
topic string
+
|
+
+
+
Topic name
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
+
Backoff holds parameters applied to connection.
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the kafka client.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
consumerGroup
KafkaConsumerGroup
+
|
+
+
(Optional)
+
+
Consumer group for kafka client
+
+
|
+
+
+
+
limitEventsPerSecond int64
+
|
+
+
(Optional)
+
+
Sets a limit on how many events get read from kafka per second.
+
+
|
+
+
+
+
version string
+
|
+
+
(Optional)
+
+
Specify what kafka version is being connected to enables certain
features in sarama, defaults to 1.0.0
+
+
|
+
+
+
+
sasl
github.com/argoproj/argo-events/pkg/apis/common.SASLConfig
+
|
+
+
(Optional)
+
+
SASL configuration for the kafka client
+
+
|
+
+
+
+
+
MQTTEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
MQTTEventSource refers to event-source for MQTT related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL to connect to broker
+
+
|
+
+
+
+
topic string
+
|
+
+
+
Topic name
+
+
|
+
+
+
+
clientId string
+
|
+
+
+
ClientID is the id of the client
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
+
ConnectionBackoff holds backoff applied to connection.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the mqtt client.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
NATSAuth
+
+
+
(Appears on:
NATSEventsSource)
+
+
+
+
NATSAuth refers to the auth info for NATS EventSource
+
+
+
+
+
NATSEventsSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
NATSEventsSource refers to event-source for NATS related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL to connect to NATS cluster
+
+
|
+
+
+
+
subject string
+
|
+
+
+
Subject holds the name of the subject onto which messages are published
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
+
ConnectionBackoff holds backoff applied to connection.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the nats client.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
auth
NATSAuth
+
|
+
+
(Optional)
+
+
Auth information
+
+
|
+
+
+
+
+
NSQEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
NSQEventSource describes the event source for NSQ PubSub More info at
https://godoc.org/github.com/nsqio/go-nsq
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
hostAddress string
+
|
+
+
+
HostAddress is the address of the host for NSQ lookup
+
+
|
+
+
+
+
topic string
+
|
+
+
+
Topic to subscribe to.
+
+
|
+
+
+
+
channel string
+
|
+
+
+
Channel used for subscription
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
(Optional)
+
+
Backoff holds parameters applied to connection.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the nsq client.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
OwnedRepositories
+
+
+
(Appears on:
GithubEventSource)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
owner string
+
|
+
+
+
Organization or user name
+
+
|
+
+
+
+
names \[\]string
+
|
+
+
+
Repository names
+
+
|
+
+
+
+
+
PubSubEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
PubSubEventSource refers to event-source for GCP PubSub related events.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
projectID string
+
|
+
+
(Optional)
+
+
ProjectID is GCP project ID for the subscription. Required if you run
Argo Events outside of GKE/GCE. (otherwise, the default value is its
project)
+
+
|
+
+
+
+
topicProjectID string
+
|
+
+
(Optional)
+
+
TopicProjectID is GCP project ID for the topic. By default, it is same
as ProjectID.
+
+
|
+
+
+
+
topic string
+
|
+
+
(Optional)
+
+
Topic to which the subscription should belongs. Required if you want the
eventsource to create a new subscription. If you specify this field
along with an existing subscription, it will be verified whether it
actually belongs to the specified topic.
+
+
|
+
+
+
+
subscriptionID string
+
|
+
+
(Optional)
+
+
SubscriptionID is ID of subscription. Required if you use existing
subscription. The default value will be auto generated hash based on
this eventsource setting, so the subscription might be recreated every
time you update the setting, which has a possibility of event loss.
+
+
|
+
+
+
+
credentialSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
CredentialSecret references to the secret that contains JSON credentials
to access GCP. If it is missing, it implicitly uses Workload Identity to
access.
https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+
+
|
+
+
+
+
deleteSubscriptionOnFinish bool
+
|
+
+
(Optional)
+
+
DeleteSubscriptionOnFinish determines whether to delete the GCP PubSub
subscription once the event source is stopped.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
PulsarEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
PulsarEventSource describes the event source for Apache Pulsar
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
topics \[\]string
+
|
+
+
+
Name of the topics to subscribe to.
+
+
|
+
+
+
+
type string
+
|
+
+
(Optional)
+
+
Type of the subscription. Only “exclusive” and “shared” is supported.
Defaults to exclusive.
+
+
|
+
+
+
+
url string
+
|
+
+
+
Configure the service URL for the Pulsar service.
+
+
|
+
+
+
+
tlsTrustCertsSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Trusted TLS certificate secret.
+
+
|
+
+
+
+
tlsAllowInsecureConnection bool
+
|
+
+
(Optional)
+
+
Whether the Pulsar client accept untrusted TLS certificate from broker.
+
+
|
+
+
+
+
tlsValidateHostname bool
+
|
+
+
(Optional)
+
+
Whether the Pulsar client verify the validity of the host name from
broker.
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the pulsar client.
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
(Optional)
+
+
Backoff holds parameters applied to connection.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
authTokenSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Authentication token for the pulsar client.
+
+
|
+
+
+
+
+
RedisEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
RedisEventSource describes an event source for the Redis PubSub. More
info at
-https://godoc.org/github.com/go-redis/redis#example-PubSub
+https://godoc.org/github.com/go-redis/redis\#example-PubSub
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
hostAddress string
+
|
+
+
+
HostAddress refers to the address of the Redis host/server
+
+
|
+
+
+
+
password
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Password required for authentication if any.
+
+
|
+
+
+
+
namespace string
+
|
+
+
(Optional)
+
+
Namespace to use to retrieve the password from. It should only be
specified if password is declared
+
+
|
+
+
+
+
db int32
+
|
+
+
(Optional)
+
+
DB to use. If not specified, default DB 0 will be used.
+
+
|
+
+
+
+
channels \[\]string
+
|
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the redis client.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
ResourceEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
ResourceEventSource refers to a event-source for K8s resource related
events.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
namespace string
+
|
+
+
+
Namespace where resource is deployed
+
+
|
+
+
+
+
filter
ResourceFilter
+
|
+
+
(Optional)
+
+
Filter is applied on the metadata of the resource If you apply filter,
then the internal event informer will only monitor objects that pass the
filter.
+
+
|
+
+
+
+
GroupVersionResource
Kubernetes meta/v1.GroupVersionResource
+
|
+
+
+
(Members of GroupVersionResource are embedded into this
type.)
+
+
+
Group of the resource
+
+
|
+
+
+
+
eventTypes
\[\]ResourceEventType
+
|
+
+
+
EventTypes is the list of event type to watch. Possible values are -
ADD, UPDATE and DELETE.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
ResourceEventType (string
alias)
+
+
+
+
(Appears on:
ResourceEventSource)
+
+
+
+
ResourceEventType is the type of event for the K8s resource mutation
+
+
+
+
ResourceFilter
+
+
+
(Appears on:
ResourceEventSource)
+
+
+
+
ResourceFilter contains K8s ObjectMeta information to further filter
resource event objects
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
prefix string
+
|
+
+
(Optional)
+
+
Prefix filter is applied on the resource name.
+
+
|
+
+
+
+
labels
\[\]Selector
+
|
+
+
(Optional)
+
+
Labels provide listing options to K8s API to watch resource/s. Refer
https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/
for more info.
+
+
|
+
+
+
+
fields
\[\]Selector
+
|
+
+
(Optional)
+
+
Fields provide field filters similar to K8s field selector (see
https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
Unlike K8s field selector, it supports arbitrary fileds like
“spec.serviceAccountName”, and the value could be a string or a regex.
-Same as K8s field selector, operator “=”, “==” and “!=” are supported.
+Same as K8s field selector, operator “=”, “==” and “\!=” are supported.
+
+
|
+
+
+
+
createdBy
Kubernetes meta/v1.Time
+
|
+
+
(Optional)
+
+
If resource is created before the specified time then the event is
treated as valid.
+
+
|
+
+
+
+
afterStart bool
+
|
+
+
(Optional)
+
+
If the resource is created after the start time then the event is
treated as valid.
+
+
|
+
+
+
+
+
SNSEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
SNSEventSource refers to event-source for AWS SNS related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook configuration for http server
+
+
|
+
+
+
+
topicArn string
+
|
+
+
+
TopicArn
+
+
|
+
+
+
+
accessKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
AccessKey refers K8s secret containing aws access key
+
+
|
+
+
+
+
secretKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SecretKey refers K8s secret containing aws secret key
+
+
|
+
+
+
+
region string
+
|
+
+
+
Region is AWS region
+
+
|
+
+
+
+
roleARN string
+
|
+
+
(Optional)
+
+
RoleARN is the Amazon Resource Name (ARN) of the role to assume.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
validateSignature bool
+
|
+
+
(Optional)
+
+
ValidateSignature is boolean that can be set to true for SNS signature
verification
+
+
|
+
+
+
+
+
SQSEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
SQSEventSource refers to event-source for AWS SQS related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
accessKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
AccessKey refers K8s secret containing aws access key
+
+
|
+
+
+
+
secretKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SecretKey refers K8s secret containing aws secret key
+
+
|
+
+
+
+
region string
+
|
+
+
+
Region is AWS region
+
+
|
+
+
+
+
queue string
+
|
+
+
+
Queue is AWS SQS queue to listen to for messages
+
+
|
+
+
+
+
waitTimeSeconds int64
+
|
+
+
+
WaitTimeSeconds is The duration (in seconds) for which the call waits
for a message to arrive in the queue before returning.
+
+
|
+
+
+
+
roleARN string
+
|
+
+
(Optional)
+
+
RoleARN is the Amazon Resource Name (ARN) of the role to assume.
+
+
|
+
+
+
+
jsonBody bool
+
|
+
+
(Optional)
+
+
JSONBody specifies that all event body payload coming from this source
will be JSON
+
+
|
+
+
+
+
queueAccountId string
+
|
+
+
(Optional)
+
+
QueueAccountID is the ID of the account that created the queue to
monitor
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
dlq bool
+
|
+
+
(Optional)
+
+
DLQ specifies if a dead-letter queue is configured for messages that
can’t be processed successfully. If set to true, messages with invalid
payload won’t be acknowledged to allow to forward them farther to the
dead-letter queue. The default value is false.
+
+
|
+
+
+
+
+
Selector
+
+
+
(Appears on:
ResourceFilter)
+
+
+
+
Selector represents conditional operation to select K8s objects.
+
+
+
+
+
Service
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
Service holds the service information eventsource exposes
+
+
+
+
+
SlackEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
SlackEventSource refers to event-source for Slack related events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
signingSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
Slack App signing secret
+
+
|
+
+
+
+
token
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
Token for URL verification handshake
+
+
|
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook holds configuration for a REST endpoint
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
StorageGridEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
StorageGridEventSource refers to event-source for StorageGrid related
events
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook holds configuration for a REST endpoint
+
+
|
+
+
+
+
events \[\]string
+
|
+
+
|
+
+
+
+
filter
StorageGridFilter
+
|
+
+
+
Filter on object key which caused the notification.
+
+
|
+
+
+
+
topicArn string
+
|
+
+
+
TopicArn
+
+
|
+
+
+
+
bucket string
+
|
+
+
+
Name of the bucket to register notifications for.
+
+
|
+
+
+
+
region string
+
|
+
+
(Optional)
+
+
S3 region. Defaults to us-east-1
+
+
|
+
+
+
+
authToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
Auth token for storagegrid api
+
+
|
+
+
+
+
apiURL string
+
|
+
+
+
APIURL is the url of the storagegrid api.
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
StorageGridFilter
+
+
+
(Appears on:
StorageGridEventSource)
+
+
+
+
StorageGridFilter represents filters to apply to bucket notifications
for specifying constraints on objects
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
prefix string
+
|
+
+
|
+
+
+
+
suffix string
+
|
+
+
|
+
+
+
+
+
StripeEventSource
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
StripeEventSource describes the event source for stripe webhook
notifications More info at
https://stripe.com/docs/webhooks
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
webhook
WebhookContext
+
|
+
+
+
Webhook holds configuration for a REST endpoint
+
+
|
+
+
+
+
createWebhook bool
+
|
+
+
(Optional)
+
+
CreateWebhook if specified creates a new webhook programmatically.
+
+
|
+
+
+
+
apiKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
APIKey refers to K8s secret that holds Stripe API key. Used only if
CreateWebhook is enabled.
+
+
|
+
+
+
+
eventFilter \[\]string
+
|
+
+
(Optional)
+
+
EventFilter describes the type of events to listen to. If not specified,
all types of events will be processed. More info at
https://stripe.com/docs/api/events/list
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
+
Template
+
+
+
(Appears on:
EventSourceSpec)
+
+
+
+
Template holds the information of an EventSource deployment template
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
metadata
github.com/argoproj/argo-events/pkg/apis/common.Metadata
+
|
+
+
+
Metadata sets the pods’s metadata, i.e. annotations and labels
+
+
|
+
+
+
+
serviceAccountName string
+
|
+
+
(Optional)
+
+
ServiceAccountName is the name of the ServiceAccount to use to run event
source pod. More info:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
+
+
|
+
+
+
+
container
Kubernetes core/v1.Container
+
|
+
+
(Optional)
+
+
Container is the main container image to run in the event source pod
+
+
|
+
+
+
+
volumes
\[\]Kubernetes core/v1.Volume
+
|
+
+
(Optional)
+
+
Volumes is a list of volumes that can be mounted by containers in an
eventsource.
+
+
|
+
+
+
+
securityContext
Kubernetes core/v1.PodSecurityContext
+
|
+
+
(Optional)
+
+
SecurityContext holds pod-level security attributes and common container
settings. Optional: Defaults to empty. See type description for default
values of each field.
+
+
|
+
+
+
+
affinity
Kubernetes core/v1.Affinity
+
|
+
+
(Optional)
+
+
If specified, the pod’s scheduling constraints
+
+
|
+
+
+
+
tolerations
\[\]Kubernetes core/v1.Toleration
+
|
+
+
(Optional)
+
+
If specified, the pod’s tolerations.
+
+
|
+
+
+
+
nodeSelector map\[string\]string
+
|
+
+
(Optional)
+
+
NodeSelector is a selector which must be true for the pod to fit on a
node. Selector which must match a node’s labels for the pod to be
scheduled on that node. More info:
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
+
+
|
+
+
+
+
imagePullSecrets
\[\]Kubernetes core/v1.LocalObjectReference
+
|
+
+
(Optional)
+
+
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. If specified, these secrets will be passed to individual puller
implementations for them to use. For example, in the case of docker,
only DockerConfig type secrets are honored. More info:
-https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
+https://kubernetes.io/docs/concepts/containers/images\#specifying-imagepullsecrets-on-a-pod
+
+
|
+
+
+
+
priorityClassName string
+
|
+
+
(Optional)
+
+
If specified, indicates the EventSource pod’s priority.
“system-node-critical” and “system-cluster-critical” are two special
keywords which indicate the highest priorities with the former being the
@@ -4788,86 +9045,159 @@ highest priority. Any other name must be defined by creating a
PriorityClass object with that name. If not specified, the pod priority
will be default or zero if there is no default. More info:
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
+
+
|
+
+
+
+
priority int32
+
|
+
+
(Optional)
+
+
The priority value. Various system components use this field to find the
priority of the EventSource pod. When Priority Admission Controller is
enabled, it prevents users from setting this field. The admission
controller populates this field from PriorityClassName. The higher the
value, the higher the priority. More info:
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
+
+
|
+
+
+
+
+
WatchPathConfig
+
+
+
(Appears on:
FileEventSource,
HDFSEventSource)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
directory string
+
|
+
+
+
Directory to watch for events
+
+
|
+
+
+
+
path string
+
|
+
+
+
Path is relative path of object to watch with respect to the directory
+
+
|
+
+
+
+
pathRegexp string
+
|
+
+
+
PathRegexp is regexp of relative path of object to watch with respect to
the directory
+
+
|
+
+
+
+
+
WebhookContext
+
+
+
(Appears on:
BitbucketServerEventSource,
EventSourceSpec,
@@ -4877,119 +9207,225 @@ WebhookContext
SlackEventSource,
StorageGridEventSource,
StripeEventSource)
+
+
+
+
WebhookContext holds a general purpose REST API context
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
endpoint string
+
|
+
+
+
REST API endpoint
+
+
|
+
+
+
+
method string
+
|
+
+
+
Method is HTTP request method that indicates the desired action to be
performed for a given resource. See RFC7231 Hypertext Transfer Protocol
(HTTP/1.1): Semantics and Content
+
+
|
+
+
+
+
port string
+
|
+
+
+
Port on which HTTP server is listening for incoming events.
+
+
|
+
+
+
+
url string
+
|
+
+
+
URL is the url of the server.
+
+
|
+
+
+
+
serverCertSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
ServerCertPath refers the file that contains the cert.
+
+
|
+
+
+
+
serverKeySecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
ServerKeyPath refers the file that contains private key
+
+
|
+
+
+
+
metadata map\[string\]string
+
|
+
+
(Optional)
+
+
Metadata holds the user defined metadata which will passed along the
event payload.
+
+
|
+
+
+
+
authSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
AuthSecret holds a secret selector that contains a bearer token for
authentication
+
+
|
+
+
+
+
+
+
Generated with gen-crd-api-reference-docs
.
+
diff --git a/api/jsonschema/schema.json b/api/jsonschema/schema.json
index 1186c93811..e51aeae78f 100644
--- a/api/jsonschema/schema.json
+++ b/api/jsonschema/schema.json
@@ -2682,6 +2682,10 @@
"name": {
"description": "Name is a unique name of this dependency",
"type": "string"
+ },
+ "transform": {
+ "$ref": "#/definitions/io.argoproj.sensor.v1alpha1.EventDependencyTransformer",
+ "description": "Transform transforms the event data"
}
},
"required": [
@@ -2719,6 +2723,20 @@
},
"type": "object"
},
+ "io.argoproj.sensor.v1alpha1.EventDependencyTransformer": {
+ "description": "EventDependencyTransformer transforms the event",
+ "properties": {
+ "jq": {
+ "description": "JQ holds the jq command applied for transformation",
+ "type": "string"
+ },
+ "script": {
+ "description": "Script refers to a Lua script used to transform the event",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"io.argoproj.sensor.v1alpha1.ExprFilter": {
"properties": {
"expr": {
diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index 0f856d830f..21a41440f5 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -2671,6 +2671,10 @@
"name": {
"description": "Name is a unique name of this dependency",
"type": "string"
+ },
+ "transform": {
+ "description": "Transform transforms the event data",
+ "$ref": "#/definitions/io.argoproj.sensor.v1alpha1.EventDependencyTransformer"
}
}
},
@@ -2702,6 +2706,20 @@
}
}
},
+ "io.argoproj.sensor.v1alpha1.EventDependencyTransformer": {
+ "description": "EventDependencyTransformer transforms the event",
+ "type": "object",
+ "properties": {
+ "jq": {
+ "description": "JQ holds the jq command applied for transformation",
+ "type": "string"
+ },
+ "script": {
+ "description": "Script refers to a Lua script used to transform the event",
+ "type": "string"
+ }
+ }
+ },
"io.argoproj.sensor.v1alpha1.ExprFilter": {
"type": "object",
"required": [
diff --git a/api/sensor.html b/api/sensor.html
index dfd53f2597..b6438d06c3 100644
--- a/api/sensor.html
+++ b/api/sensor.html
@@ -887,6 +887,19 @@ EventDependency
Filters and rules governing toleration of success and constraints on the context and data of an event
+
+
+transform
+
+
+EventDependencyTransformer
+
+
+ |
+
+ Transform transforms the event data
+ |
+
EventDependencyFilter
@@ -960,6 +973,49 @@ EventDependencyFilter
+
+
+(Appears on:
+EventDependency)
+
+
+
EventDependencyTransformer transforms the event
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+jq
+
+string
+
+ |
+
+(Optional)
+ JQ holds the jq command applied for transformation
+ |
+
+
+
+script
+
+string
+
+ |
+
+(Optional)
+ Script refers to a Lua script used to transform the event
+ |
+
+
+
ExprFilter
diff --git a/api/sensor.md b/api/sensor.md
index 16ce1ae8f5..b880b08422 100644
--- a/api/sensor.md
+++ b/api/sensor.md
@@ -1,735 +1,1381 @@
+
Packages:
+
+
+
+
argoproj.io/v1alpha1
+
+
+
+
Package v1alpha1 is the v1alpha1 version of the API.
+
+
+
Resource Types:
+
+
+
AWSLambdaTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
AWSLambdaTrigger refers to specification of the trigger to invoke an AWS
Lambda function
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
functionName string
+
|
+
+
+
FunctionName refers to the name of the function to invoke.
+
+
|
+
+
+
+
accessKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
AccessKey refers K8s secret containing aws access key
+
+
|
+
+
+
+
secretKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
SecretKey refers K8s secret containing aws secret key
+
+
|
+
+
+
+
region string
+
|
+
+
+
Region is AWS region
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
+
Payload is the list of key-value extracted from an event payload to
construct the request payload.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
(Optional)
+
+
Parameters is the list of key-value extracted from event’s payload that
are applied to the trigger resource.
+
+
|
+
+
+
+
invocationType string
+
|
+
+
(Optional)
+
+
Choose from the following options.
+
+
+
-
+
+
RequestResponse (default) - Invoke the function synchronously. Keep the
connection open until the function returns a response or times out. The
API response includes the function response and additional data.
+
+
+
-
+
+
Event - Invoke the function asynchronously. Send events that fail
multiple times to the function’s dead-letter queue (if it’s configured).
The API response only includes a status code.
+
+
+
-
+
+
DryRun - Validate parameter values and verify that the user or role has
permission to invoke the function.
+
+
+
+
|
+
+
+
+
roleARN string
+
|
+
+
(Optional)
+
+
RoleARN is the Amazon Resource Name (ARN) of the role to assume.
+
+
|
+
+
+
+
+
ArgoWorkflowOperation (string
alias)
+
+
+
+
(Appears on:
ArgoWorkflowTrigger)
+
+
+
+
ArgoWorkflowOperation refers to the type of the operation performed on
the Argo Workflow
+
+
+
+
ArgoWorkflowTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
ArgoWorkflowTrigger is the trigger for the Argo Workflow
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
source
ArtifactLocation
+
|
+
+
+
Source of the K8s resource file(s)
+
+
|
+
+
+
+
operation
ArgoWorkflowOperation
+
|
+
+
(Optional)
+
+
Operation refers to the type of operation performed on the argo workflow
resource. Default value is Submit.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of parameters to pass to resolved Argo Workflow
object
+
+
|
+
+
+
+
+
ArtifactLocation
+
+
+
(Appears on:
ArgoWorkflowTrigger,
StandardK8STrigger)
+
+
+
+
ArtifactLocation describes the source location for an external artifact
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
s3
github.com/argoproj/argo-events/pkg/apis/common.S3Artifact
+
|
+
+
+
S3 compliant artifact
+
+
|
+
+
+
+
inline string
+
|
+
+
+
Inline artifact is embedded in sensor spec as a string
+
+
|
+
+
+
+
file
FileArtifact
+
|
+
+
+
File artifact is artifact stored in a file
+
+
|
+
+
+
+
url
URLArtifact
+
|
+
+
+
URL to fetch the artifact from
+
+
|
+
+
+
+
configmap
Kubernetes core/v1.ConfigMapKeySelector
+
|
+
+
+
Configmap that stores the artifact
+
+
|
+
+
+
+
git
GitArtifact
+
|
+
+
+
Git repository hosting the artifact
+
+
|
+
+
+
+
resource
github.com/argoproj/argo-events/pkg/apis/common.Resource
+
|
+
+
+
Resource is generic template for K8s resource
+
+
|
+
+
+
+
+
AzureEventHubsTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
AzureEventHubsTrigger refers to specification of the Azure Event Hubs
Trigger
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
fqdn string
+
|
+
+
+
FQDN refers to the namespace dns of Azure Event Hubs to be used
i.e. .servicebus.windows.net
+
+
|
+
+
+
+
hubName string
+
|
+
+
+
HubName refers to the Azure Event Hub to send events to
+
+
|
+
+
+
+
sharedAccessKeyName
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SharedAccessKeyName refers to the name of the Shared Access Key
+
+
|
+
+
+
+
sharedAccessKey
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SharedAccessKey refers to a K8s secret containing the primary key for
the
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
+
Payload is the list of key-value extracted from an event payload to
construct the request payload.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
(Optional)
+
+
Parameters is the list of key-value extracted from event’s payload that
are applied to the trigger resource.
+
+
|
+
+
+
+
+
Comparator (string
alias)
+
+
+
+
(Appears on:
DataFilter)
+
+
+
+
Comparator refers to the comparator operator for a data filter
+
+
+
+
ConditionsResetByTime
+
+
+
(Appears on:
ConditionsResetCriteria)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
cron string
+
|
+
+
+
Cron is a cron-like expression. For reference, see:
https://en.wikipedia.org/wiki/Cron
+
+
|
+
+
+
+
timezone string
+
|
+
+
(Optional)
+
|
+
+
+
+
+
ConditionsResetCriteria
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
+
+
CustomTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
CustomTrigger refers to the specification of the custom trigger.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
serverURL string
+
|
+
+
+
ServerURL is the url of the gRPC server that executes custom trigger
+
+
|
+
+
+
+
secure bool
+
|
+
+
+
Secure refers to type of the connection between sensor to custom trigger
gRPC
+
+
|
+
+
+
+
certSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
CertSecret refers to the secret that contains cert for secure connection
between sensor and custom trigger gRPC server.
+
+
|
+
+
+
+
serverNameOverride string
+
|
+
+
+
ServerNameOverride for the secure connection between sensor and custom
trigger gRPC server.
+
+
|
+
+
+
+
spec map\[string\]string
+
|
+
+
+
Spec is the custom trigger resource specification that custom trigger
gRPC server knows how to interpret.
+
+
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of parameters that is applied to resolved custom
trigger trigger object.
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
+
Payload is the list of key-value extracted from an event payload to
construct the request payload.
+
+
|
+
+
+
+
+
DataFilter
+
+
+
(Appears on:
EventDependencyFilter)
+
+
+
+
DataFilter describes constraints and filters for event data Regular
Expressions are purposefully not a feature as they are overkill for our
uses here See Rob Pike’s Post:
https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
path string
+
|
+
+
+
Path is the JSONPath of the event’s (JSON decoded) data key Path is a
series of keys separated by a dot. A key may contain wildcard characters
‘\*’ and ‘?’. To access an array value use the index as the key. The dot
-and wildcard characters can be escaped with ‘’. See
-https://github.com/tidwall/gjson#path-syntax
+and wildcard characters can be escaped with ‘\’. See
+https://github.com/tidwall/gjson\#path-syntax
for more information on how to use this.
+
+
|
+
+
+
+
type
JSONType
+
|
+
+
+
Type contains the JSON type of the data
+
+
|
+
+
+
+
value \[\]string
+
|
+
+
+
Value is the allowed string values for this key Booleans are passed
using strconv.ParseBool() Numbers are parsed using as float64 using
strconv.ParseFloat() Strings are taken as is Nils this value is ignored
+
+
|
+
+
+
+
comparator
Comparator
+
|
+
+
-Comparator compares the event data with a user given value. Can be “>=”,
-“>”, “=”, “!=”, “\<”, or “\<=”. Is optional, and if left blank treated
-as equality “=”.
+
+Comparator compares the event data with a user given value. Can be
+“\>=”, “\>”, “=”, “\!=”, “\<”, or “\<=”. Is optional, and if left
+blank treated as equality “=”.
+
+
|
+
+
+
+
template string
+
|
+
+
+
Template is a go-template for extracting a string from the event’s data.
A Template is evaluated with provided path, type and value. The
templating follows the standard go-template syntax as well as sprig’s
@@ -737,2044 +1383,4004 @@ extra functions. See
https://pkg.go.dev/text/template
and
https://masterminds.github.io/sprig/
+
+
|
+
+
+
+
+
Event
+
+
+
+
Event represents the cloudevent received from an event source.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
context
EventContext
+
|
+
+
|
+
+
+
+
data \[\]byte
+
|
+
+
|
+
+
+
+
+
EventContext
+
+
+
(Appears on: Event,
EventDependencyFilter)
+
+
+
+
EventContext holds the context of the cloudevent received from an event
source.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
id string
+
|
+
+
+
ID of the event; must be non-empty and unique within the scope of the
producer.
+
+
|
+
+
+
+
source string
+
|
+
+
+
Source - A URI describing the event producer.
+
+
|
+
+
+
+
specversion string
+
|
+
+
+
SpecVersion - The version of the CloudEvents specification used by the
event.
+
+
|
+
+
+
+
type string
+
|
+
+
+
Type - The type of the occurrence which has happened.
+
+
|
+
+
+
+
datacontenttype string
+
|
+
+
+
DataContentType - A MIME (RFC2046) string describing the media type of
data .
+
+
|
+
+
+
+
subject string
+
|
+
+
+
Subject - The subject of the event in the context of the event producer
+
+
|
+
+
+
+
time
Kubernetes meta/v1.Time
+
|
+
+
+
Time - A Timestamp when the event happened.
+
+
|
+
+
+
+
+
EventDependency
+
+
+
(Appears on:
SensorSpec)
+
+
+
+
EventDependency describes a dependency
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
name string
+
|
+
+
+
Name is a unique name of this dependency
+
+
|
+
+
+
+
eventSourceName string
+
|
+
+
+
EventSourceName is the name of EventSource that Sensor depends on
+
+
|
+
+
+
+
eventName string
+
|
+
+
+
EventName is the name of the event
+
+
|
+
+
+
+
filters
EventDependencyFilter
+
|
+
+
+
Filters and rules governing toleration of success and constraints on the
context and data of an event
+
+
|
+
+
+
+
+
+
+transform
+
+EventDependencyTransformer
+
+ |
+
+
+
+
+
+Transform transforms the event data
+
+
+
+ |
+
+
+
+
+
+
EventDependencyFilter
+
+
+
(Appears on:
EventDependency)
+
+
+
+
EventDependencyFilter defines filters and constraints for a event.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
time
TimeFilter
+
|
+
+
+
Time filter on the event with escalation
+
+
|
+
+
+
+
context
EventContext
+
|
+
+
+
Context filter constraints
+
+
|
+
+
+
+
data
\[\]DataFilter
+
|
+
+
+
Data filter constraints with escalation
+
+
|
+
+
+
+
exprs
\[\]ExprFilter
+
|
+
+
+
Exprs contains the list of expressions evaluated against the event
payload.
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+(Appears on:
+EventDependency)
+
+
+
+
+
+
+
+EventDependencyTransformer transforms the event
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field
+
+ |
+
+
+
+Description
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+jq string
+
+ |
+
+
+
+(Optional)
+
+
+
+JQ holds the jq command applied for transformation
+
+
+
+ |
+
+
+
+
+
+
+
+script string
+
+ |
+
+
+
+(Optional)
+
+
+
+Script refers to a Lua script used to transform the event
+
+
|
+
+
+
+
+
ExprFilter
+
+
+
(Appears on:
EventDependencyFilter)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
expr string
+
|
+
+
+
Expr refers to the expression that determines the outcome of the filter.
+
+
|
+
+
+
+
fields
\[\]PayloadField
+
|
+
+
+
Fields refers to set of keys that refer to the paths within event
payload.
+
+
|
+
+
+
+
+
FileArtifact
+
+
+
(Appears on:
ArtifactLocation)
+
+
+
+
FileArtifact contains information about an artifact in a filesystem
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
path string
+
|
+
+
|
+
+
+
+
+
GitArtifact
+
+
+
(Appears on:
ArtifactLocation)
+
+
+
+
GitArtifact contains information about an artifact stored in git
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
Git URL
+
+
|
+
+
+
+
cloneDirectory string
+
|
+
+
+
Directory to clone the repository. We clone complete directory because
GitArtifact is not limited to any specific Git service providers. Hence
we don’t use any specific git provider client.
+
+
|
+
+
+
+
creds
GitCreds
+
|
+
+
(Optional)
+
+
Creds contain reference to git username and password
+
+
|
+
+
+
+
sshKeySecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SSHKeySecret refers to the secret that contains SSH key
+
+
|
+
+
+
+
filePath string
+
|
+
+
+
Path to file that contains trigger resource definition
+
+
|
+
+
+
+
branch string
+
|
+
+
(Optional)
+
+
Branch to use to pull trigger resource
+
+
|
+
+
+
+
tag string
+
|
+
+
(Optional)
+
+
Tag to use to pull trigger resource
+
+
|
+
+
+
+
ref string
+
|
+
+
(Optional)
+
+
Ref to use to pull trigger resource. Will result in a shallow clone and
fetch.
+
+
|
+
+
+
+
remote
GitRemoteConfig
+
|
+
+
(Optional)
+
+
Remote to manage set of tracked repositories. Defaults to “origin”.
Refer
https://git-scm.com/docs/git-remote
+
+
|
+
+
+
+
+
GitCreds
+
+
+
(Appears on:
GitArtifact)
+
+
+
+
GitCreds contain reference to git username and password
+
+
+
+
+
GitRemoteConfig
+
+
+
(Appears on:
GitArtifact)
+
+
+
+
GitRemoteConfig contains the configuration of a Git remote
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
name string
+
|
+
+
+
Name of the remote to fetch from.
+
+
|
+
+
+
+
urls \[\]string
+
|
+
+
+
URLs the URLs of a remote repository. It must be non-empty. Fetch will
always use the first URL, while push will use all of them.
+
+
|
+
+
+
+
+
HTTPTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
HTTPTrigger is the trigger for the HTTP request
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL refers to the URL to send HTTP request to.
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the HTTP client.
+
+
|
+
+
+
+
method string
+
|
+
+
(Optional)
+
+
Method refers to the type of the HTTP request. Refer
https://golang.org/src/net/http/method.go
for more info. Default value is POST.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of key-value extracted from event’s payload that
are applied to the HTTP trigger resource.
+
+
|
+
+
+
+
timeout int64
+
|
+
+
(Optional)
+
+
Timeout refers to the HTTP request timeout in seconds. Default value is
60 seconds.
+
+
|
+
+
+
+
basicAuth
github.com/argoproj/argo-events/pkg/apis/common.BasicAuth
+
|
+
+
(Optional)
+
+
BasicAuth configuration for the http request.
+
+
|
+
+
+
+
headers map\[string\]string
+
|
+
+
(Optional)
+
+
Headers for the HTTP request.
+
+
|
+
+
+
+
secureHeaders
\[\]\*github.com/argoproj/argo-events/pkg/apis/common.SecureHeader
+
|
+
+
(Optional)
+
+
Secure Headers stored in Kubernetes Secrets for the HTTP requests.
+
+
|
+
+
+
+
+
JSONType (string
alias)
+
+
+
+
(Appears on:
DataFilter)
+
+
+
+
JSONType contains the supported JSON types for data filtering
+
+
+
+
K8SResourcePolicy
+
+
+
(Appears on:
TriggerPolicy)
+
+
+
+
K8SResourcePolicy refers to the policy used to check the state of K8s
based triggers using labels
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
labels map\[string\]string
+
|
+
+
+
Labels required to identify whether a resource is in success state
+
+
|
+
+
+
+
backoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
+
Backoff before checking resource state
+
+
|
+
+
+
+
errorOnBackoffTimeout bool
+
|
+
+
+
ErrorOnBackoffTimeout determines whether sensor should transition to
error state if the trigger policy is unable to determine the state of
the resource
+
+
|
+
+
+
+
+
KafkaTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
KafkaTrigger refers to the specification of the Kafka trigger.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL of the Kafka broker, multiple URLs separated by comma.
+
+
|
+
+
+
+
topic string
+
|
+
+
+
Name of the topic. More info at
-https://kafka.apache.org/documentation/#intro_topics
+https://kafka.apache.org/documentation/\#intro\_topics
+
+
|
+
+
+
+
partition int32
+
|
+
+
+
Partition to write data to.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of parameters that is applied to resolved Kafka
trigger object.
+
+
|
+
+
+
+
requiredAcks int32
+
|
+
+
+
RequiredAcks used in producer to tell the broker how many replica
acknowledgements Defaults to 1 (Only wait for the leader to ack).
+
+
|
+
+
+
+
compress bool
+
|
+
+
(Optional)
+
+
Compress determines whether to compress message or not. Defaults to
false. If set to true, compresses message using snappy compression.
+
+
|
+
+
+
+
flushFrequency int32
+
|
+
+
(Optional)
+
+
FlushFrequency refers to the frequency in milliseconds to flush batches.
Defaults to 500 milliseconds.
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the Kafka producer.
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
+
Payload is the list of key-value extracted from an event payload to
construct the request payload.
+
+
|
+
+
+
+
partitioningKey string
+
|
+
+
+
The partitioning key for the messages put on the Kafka topic. Defaults
to broker url.
+
+
|
+
+
+
+
version string
+
|
+
+
(Optional)
+
+
Specify what kafka version is being connected to enables certain
features in sarama, defaults to 1.0.0
+
+
|
+
+
+
+
sasl
github.com/argoproj/argo-events/pkg/apis/common.SASLConfig
+
|
+
+
(Optional)
+
+
SASL configuration for the kafka client
+
+
|
+
+
+
+
+
KubernetesResourceOperation (string
alias)
+
+
+
+
(Appears on:
StandardK8STrigger)
+
+
+
+
KubernetesResourceOperation refers to the type of operation performed on
the K8s resource
+
+
+
+
LogTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
intervalSeconds uint64
+
|
+
+
(Optional)
+
+
Only print messages every interval. Useful to prevent logging too much
data for busy events.
+
+
|
+
+
+
+
+
NATSTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
NATSTrigger refers to the specification of the NATS trigger.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
URL of the NATS cluster.
+
+
|
+
+
+
+
subject string
+
|
+
+
+
Name of the subject to put message on.
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the NATS producer.
+
+
|
+
+
+
+
+
OpenWhiskTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
OpenWhiskTrigger refers to the specification of the OpenWhisk trigger.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
host string
+
|
+
+
+
Host URL of the OpenWhisk.
+
+
|
+
+
+
+
version string
+
|
+
+
(Optional)
+
+
Version for the API. Defaults to v1.
+
+
|
+
+
+
+
namespace string
+
|
+
+
+
Namespace for the action. Defaults to “\_”.
+
+
|
+
+
+
+
authToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
AuthToken for authentication.
+
+
|
+
+
+
+
actionName string
+
|
+
+
+
Name of the action/function.
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
+
Payload is the list of key-value extracted from an event payload to
construct the request payload.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
(Optional)
+
+
Parameters is the list of key-value extracted from event’s payload that
are applied to the trigger resource.
+
+
|
+
+
+
+
+
PayloadField
+
+
+
(Appears on:
ExprFilter)
+
+
+
+
PayloadField binds a value at path within the event payload against a
name.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
path string
+
|
+
+
+
Path is the JSONPath of the event’s (JSON decoded) data key Path is a
series of keys separated by a dot. A key may contain wildcard characters
‘\*’ and ‘?’. To access an array value use the index as the key. The dot
-and wildcard characters can be escaped with ‘’. See
-https://github.com/tidwall/gjson#path-syntax
+and wildcard characters can be escaped with ‘\’. See
+https://github.com/tidwall/gjson\#path-syntax
for more information on how to use this.
+
+
|
+
+
+
+
name string
+
|
+
+
+
Name acts as key that holds the value at the path.
+
+
|
+
+
+
+
+
PulsarTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
PulsarTrigger refers to the specification of the Pulsar trigger.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
url string
+
|
+
+
+
Configure the service URL for the Pulsar service.
+
+
|
+
+
+
+
topic string
+
|
+
+
+
Name of the topic. See
https://pulsar.apache.org/docs/en/concepts-messaging/
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of parameters that is applied to resolved Kafka
trigger object.
+
+
|
+
+
+
+
payload
\[\]TriggerParameter
+
|
+
+
+
Payload is the list of key-value extracted from an event payload to
construct the request payload.
+
+
|
+
+
+
+
tlsTrustCertsSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Trusted TLS certificate secret.
+
+
|
+
+
+
+
tlsAllowInsecureConnection bool
+
|
+
+
(Optional)
+
+
Whether the Pulsar client accept untrusted TLS certificate from broker.
+
+
|
+
+
+
+
tlsValidateHostname bool
+
|
+
+
(Optional)
+
+
Whether the Pulsar client verify the validity of the host name from
broker.
+
+
|
+
+
+
+
tls
github.com/argoproj/argo-events/pkg/apis/common.TLSConfig
+
|
+
+
(Optional)
+
+
TLS configuration for the pulsar client.
+
+
|
+
+
+
+
authTokenSecret
Kubernetes core/v1.SecretKeySelector
+
|
+
+
(Optional)
+
+
Authentication token for the pulsar client.
+
+
|
+
+
+
+
connectionBackoff
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
(Optional)
+
+
Backoff holds parameters applied to connection.
+
+
|
+
+
+
+
+
RateLimit
+
+
+
(Appears on:
Trigger)
+
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
unit
RateLimiteUnit
+
|
+
+
+
Defaults to Second
+
+
|
+
+
+
+
requestsPerUnit int32
+
|
+
+
|
+
+
+
+
+
RateLimiteUnit (string
alias)
+
+
+
+
(Appears on:
RateLimit)
+
+
+
+
+
Sensor
+
+
+
+
Sensor is the definition of a sensor resource
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
metadata
Kubernetes meta/v1.ObjectMeta
+
|
+
+
Refer to the Kubernetes API documentation for the fields of the
metadata field.
+
|
+
+
+
+
spec
SensorSpec
+
|
+
+
+
+
+
+
dependencies
\[\]EventDependency
+
|
+
+
+
Dependencies is a list of the events that this sensor is dependent on.
+
+
|
+
+
+
+
triggers
\[\]Trigger
+
|
+
+
+
Triggers is a list of the things that this sensor evokes. These are the
outputs from this sensor.
+
+
|
+
+
+
+
template
Template
+
|
+
+
(Optional)
+
+
Template is the pod specification for the sensor
+
+
|
+
+
+
+
errorOnFailedRound bool
+
|
+
+
+
ErrorOnFailedRound if set to true, marks sensor state as
error if the previous trigger round fails. Once sensor
state is set to error , no further triggers will be
processed.
+
+
|
+
+
+
+
eventBusName string
+
|
+
+
+
EventBusName references to a EventBus name. By default the value is
“default”
+
+
|
+
+
+
+
replicas int32
+
|
+
+
+
Replicas is the sensor deployment replicas
+
+
|
+
+
+
|
+
+
+
+
status
SensorStatus
+
|
+
+
(Optional)
+
|
+
+
+
+
+
SensorSpec
+
+
+
(Appears on: Sensor)
+
+
+
+
SensorSpec represents desired sensor state
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
dependencies
\[\]EventDependency
+
|
+
+
+
Dependencies is a list of the events that this sensor is dependent on.
+
+
|
+
+
+
+
triggers
\[\]Trigger
+
|
+
+
+
Triggers is a list of the things that this sensor evokes. These are the
outputs from this sensor.
+
+
|
+
+
+
+
template
Template
+
|
+
+
(Optional)
+
+
Template is the pod specification for the sensor
+
+
|
+
+
+
+
errorOnFailedRound bool
+
|
+
+
+
ErrorOnFailedRound if set to true, marks sensor state as
error if the previous trigger round fails. Once sensor
state is set to error , no further triggers will be
processed.
+
+
|
+
+
+
+
eventBusName string
+
|
+
+
+
EventBusName references to a EventBus name. By default the value is
“default”
+
+
|
+
+
+
+
replicas int32
+
|
+
+
+
Replicas is the sensor deployment replicas
+
+
|
+
+
+
+
+
SensorStatus
+
+
+
(Appears on: Sensor)
+
+
+
+
SensorStatus contains information about the status of a sensor.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
Status
github.com/argoproj/argo-events/pkg/apis/common.Status
+
|
+
+
+
(Members of Status are embedded into this type.)
+
+
|
+
+
+
+
+
SlackTrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
SlackTrigger refers to the specification of the slack notification
trigger.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
(Optional)
+
+
Parameters is the list of key-value extracted from event’s payload that
are applied to the trigger resource.
+
+
|
+
+
+
+
slackToken
Kubernetes core/v1.SecretKeySelector
+
|
+
+
+
SlackToken refers to the Kubernetes secret that holds the slack token
required to send messages.
+
+
|
+
+
+
+
channel string
+
|
+
+
(Optional)
+
+
Channel refers to which Slack channel to send slack message.
+
+
|
+
+
+
+
message string
+
|
+
+
(Optional)
+
+
Message refers to the message to send to the Slack channel.
+
+
|
+
+
+
+
+
StandardK8STrigger
+
+
+
(Appears on:
TriggerTemplate)
+
+
+
+
StandardK8STrigger is the standard Kubernetes resource trigger
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
source
ArtifactLocation
+
|
+
+
+
Source of the K8s resource file(s)
+
+
|
+
+
+
+
operation
KubernetesResourceOperation
+
|
+
+
(Optional)
+
+
Operation refers to the type of operation performed on the k8s resource.
Default value is Create.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of parameters that is applied to resolved K8s
trigger object.
+
+
|
+
+
+
+
patchStrategy
k8s.io/apimachinery/pkg/types.PatchType
+
|
+
+
(Optional)
+
+
PatchStrategy controls the K8s object patching strategy when the trigger
operation is specified as patch. possible values:
“application/json-patch+json” “application/merge-patch+json”
-“application/strategic-merge-patch+json” “application/apply-patch+yaml”.
-Defaults to “application/merge-patch+json”
+“application/strategic-merge-patch+json”
+“application/apply-patch+yaml”. Defaults to
+“application/merge-patch+json”
+
+
|
+
+
+
+
liveObject bool
+
|
+
+
(Optional)
+
+
LiveObject specifies whether the resource should be directly fetched
from K8s instead of being marshaled from the resource artifact. If set
to true, the resource artifact must contain the information required to
uniquely identify the resource in the cluster, that is, you must specify
“apiVersion”, “kind” as well as “name” and “namespace” meta data. Only
valid for operation type update
+
+
|
+
+
+
+
+
StatusPolicy
+
+
+
(Appears on:
TriggerPolicy)
+
+
+
+
StatusPolicy refers to the policy used to check the state of the trigger
using response status
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
allow \[\]int32
+
|
+
+
|
+
+
+
+
+
Template
+
+
+
(Appears on:
SensorSpec)
+
+
+
+
Template holds the information of a sensor deployment template
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
metadata
github.com/argoproj/argo-events/pkg/apis/common.Metadata
+
|
+
+
+
Metadata sets the pods’s metadata, i.e. annotations and labels
+
+
|
+
+
+
+
serviceAccountName string
+
|
+
+
(Optional)
+
+
ServiceAccountName is the name of the ServiceAccount to use to run
sensor pod. More info:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
+
+
|
+
+
+
+
container
Kubernetes core/v1.Container
+
|
+
+
(Optional)
+
+
Container is the main container image to run in the sensor pod
+
+
|
+
+
+
+
volumes
\[\]Kubernetes core/v1.Volume
+
|
+
+
(Optional)
+
+
Volumes is a list of volumes that can be mounted by containers in a
workflow.
+
+
|
+
+
+
+
securityContext
Kubernetes core/v1.PodSecurityContext
+
|
+
+
(Optional)
+
+
SecurityContext holds pod-level security attributes and common container
settings. Optional: Defaults to empty. See type description for default
values of each field.
+
+
|
+
+
+
+
nodeSelector map\[string\]string
+
|
+
+
(Optional)
+
+
NodeSelector is a selector which must be true for the pod to fit on a
node. Selector which must match a node’s labels for the pod to be
scheduled on that node. More info:
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
+
+
|
+
+
+
+
tolerations
\[\]Kubernetes core/v1.Toleration
+
|
+
+
(Optional)
+
+
If specified, the pod’s tolerations.
+
+
|
+
+
+
+
imagePullSecrets
\[\]Kubernetes core/v1.LocalObjectReference
+
|
+
+
(Optional)
+
+
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. If specified, these secrets will be passed to individual puller
implementations for them to use. For example, in the case of docker,
only DockerConfig type secrets are honored. More info:
-https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
+https://kubernetes.io/docs/concepts/containers/images\#specifying-imagepullsecrets-on-a-pod
+
+
|
+
+
+
+
priorityClassName string
+
|
+
+
(Optional)
+
+
If specified, indicates the EventSource pod’s priority.
“system-node-critical” and “system-cluster-critical” are two special
keywords which indicate the highest priorities with the former being the
@@ -2782,184 +5388,339 @@ highest priority. Any other name must be defined by creating a
PriorityClass object with that name. If not specified, the pod priority
will be default or zero if there is no default. More info:
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
+
+
|
+
+
+
+
priority int32
+
|
+
+
(Optional)
+
+
The priority value. Various system components use this field to find the
priority of the EventSource pod. When Priority Admission Controller is
enabled, it prevents users from setting this field. The admission
controller populates this field from PriorityClassName. The higher the
value, the higher the priority. More info:
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
+
+
|
+
+
+
+
affinity
Kubernetes core/v1.Affinity
+
|
+
+
(Optional)
+
+
If specified, the pod’s scheduling constraints
+
+
|
+
+
+
+
+
TimeFilter
+
+
+
(Appears on:
EventDependencyFilter)
+
+
+
+
TimeFilter describes a window in time. It filters out events that occur
outside the time limits. In other words, only events that occur after
Start and before Stop will pass this filter.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
start string
+
|
+
+
+
Start is the beginning of a time window in UTC. Before this time, events
for this dependency are ignored. Format is hh:mm:ss.
+
+
|
+
+
+
+
stop string
+
|
+
+
+
Stop is the end of a time window in UTC. After or equal to this time,
events for this dependency are ignored and Format is hh:mm:ss. If it is
smaller than Start, it is treated as next day of Start (e.g.:
22:00:00-01:00:00 means 22:00:00-25:00:00).
+
+
|
+
+
+
+
+
Trigger
+
+
+
(Appears on:
SensorSpec)
+
+
+
+
Trigger is an action taken, output produced, an event created, a message
sent
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
template
TriggerTemplate
+
|
+
+
+
Template describes the trigger specification.
+
+
|
+
+
+
+
parameters
\[\]TriggerParameter
+
|
+
+
+
Parameters is the list of parameters applied to the trigger template
definition
+
+
|
+
+
+
+
policy
TriggerPolicy
+
|
+
+
(Optional)
+
+
Policy to configure backoff and execution criteria for the trigger
+
+
|
+
+
+
+
retryStrategy
github.com/argoproj/argo-events/pkg/apis/common.Backoff
+
|
+
+
(Optional)
+
+
Retry strategy, defaults to no retry
+
+
|
+
+
+
+
rateLimit
RateLimit
+
|
+
+
(Optional)
+
+
Rate limit, default unit is Second
+
+
|
+
+
+
+
+
TriggerParameter
+
+
+
(Appears on:
AWSLambdaTrigger,
ArgoWorkflowTrigger,
@@ -2973,172 +5734,304 @@ TriggerParameter
SlackTrigger,
StandardK8STrigger,
Trigger)
+
+
+
+
TriggerParameter indicates a passed parameter to a service template
+
+
+
+
+
TriggerParameterOperation (string
alias)
+
+
+
+
(Appears on:
TriggerParameter)
+
+
+
+
TriggerParameterOperation represents how to set a trigger destination
resource key
+
+
+
+
TriggerParameterSource
+
+
+
(Appears on:
TriggerParameter)
+
+
+
+
TriggerParameterSource defines the source for a parameter from a event
event
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
dependencyName string
+
|
+
+
+
DependencyName refers to the name of the dependency. The event which is
stored for this dependency is used as payload for the parameterization.
Make sure to refer to one of the dependencies you have defined under
Dependencies list.
+
+
|
+
+
+
+
contextKey string
+
|
+
+
+
ContextKey is the JSONPath of the event’s (JSON decoded) context key
ContextKey is a series of keys separated by a dot. A key may contain
wildcard characters ‘\*’ and ‘?’. To access an array value use the index
as the key. The dot and wildcard characters can be escaped with
-‘’. See
-https://github.com/tidwall/gjson#path-syntax
+‘\’. See
+https://github.com/tidwall/gjson\#path-syntax
for more information on how to use this.
+
+
|
+
+
+
+
contextTemplate string
+
|
+
+
+
ContextTemplate is a go-template for extracting a string from the
-event’s context. If a ContextTemplate is provided with a ContextKey, the
-template will be evaluated first and fallback to the ContextKey. The
+event’s context. If a ContextTemplate is provided with a ContextKey,
+the template will be evaluated first and fallback to the ContextKey. The
templating follows the standard go-template syntax as well as sprig’s
extra functions. See
https://pkg.go.dev/text/template
and
https://masterminds.github.io/sprig/
+
+
|
+
+
+
+
dataKey string
+
|
+
+
+
DataKey is the JSONPath of the event’s (JSON decoded) data key DataKey
is a series of keys separated by a dot. A key may contain wildcard
characters ‘\*’ and ‘?’. To access an array value use the index as the
-key. The dot and wildcard characters can be escaped with ‘’. See
-https://github.com/tidwall/gjson#path-syntax
+key. The dot and wildcard characters can be escaped with ‘\’. See
+https://github.com/tidwall/gjson\#path-syntax
for more information on how to use this.
+
+
|
+
+
+
+
dataTemplate string
+
|
+
+
+
DataTemplate is a go-template for extracting a string from the event’s
data. If a DataTemplate is provided with a DataKey, the template will be
evaluated first and fallback to the DataKey. The templating follows the
@@ -3146,335 +6039,631 @@ standard go-template syntax as well as sprig’s extra functions. See
https://pkg.go.dev/text/template
and
https://masterminds.github.io/sprig/
+
+
|
+
+
+
+
value string
+
|
+
+
+
Value is the default literal value to use for this parameter source This
is only used if the DataKey is invalid. If the DataKey is invalid and
this is not defined, this param source will produce an error.
+
+
|
+
+
+
+
+
TriggerPolicy
+
+
+
(Appears on:
Trigger)
+
+
+
+
TriggerPolicy dictates the policy for the trigger retries
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
k8s
K8SResourcePolicy
+
|
+
+
+
K8SResourcePolicy refers to the policy used to check the state of K8s
based triggers using using labels
+
+
|
+
+
+
+
status
StatusPolicy
+
|
+
+
+
Status refers to the policy used to check the state of the trigger using
response status
+
+
|
+
+
+
+
+
TriggerTemplate
+
+
+
(Appears on:
Trigger)
+
+
+
+
TriggerTemplate is the template that describes trigger specification.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
name string
+
|
+
+
+
Name is a unique name of the action to take.
+
+
|
+
+
+
+
conditions string
+
|
+
+
(Optional)
+
+
Conditions is the conditions to execute the trigger. For example:
-“(dep01 \|\| dep02) && dep04”
+“(dep01 || dep02) && dep04”
+
+
|
+
+
+
+
k8s
StandardK8STrigger
+
|
+
+
(Optional)
+
+
StandardK8STrigger refers to the trigger designed to create or update a
generic Kubernetes resource.
+
+
|
+
+
+
+
argoWorkflow
ArgoWorkflowTrigger
+
|
+
+
(Optional)
+
+
ArgoWorkflow refers to the trigger that can perform various operations
on an Argo workflow.
+
+
|
+
+
+
+
http
HTTPTrigger
+
|
+
+
(Optional)
+
+
HTTP refers to the trigger designed to dispatch a HTTP request with
on-the-fly constructable payload.
+
+
|
+
+
+
+
awsLambda
AWSLambdaTrigger
+
|
+
+
(Optional)
+
+
AWSLambda refers to the trigger designed to invoke AWS Lambda function
with with on-the-fly constructable payload.
+
+
|
+
+
+
+
custom
CustomTrigger
+
|
+
+
(Optional)
+
+
CustomTrigger refers to the trigger designed to connect to a gRPC
trigger server and execute a custom trigger.
+
+
|
+
+
+
+
kafka
KafkaTrigger
+
|
+
+
+
Kafka refers to the trigger designed to place messages on Kafka topic.
+
+
|
+
+
+
+
nats
NATSTrigger
+
|
+
+
+
NATS refers to the trigger designed to place message on NATS subject.
+
+
|
+
+
+
+
slack
SlackTrigger
+
|
+
+
(Optional)
+
+
Slack refers to the trigger designed to send slack notification message.
+
+
|
+
+
+
+
openWhisk
OpenWhiskTrigger
+
|
+
+
(Optional)
+
+
OpenWhisk refers to the trigger designed to invoke OpenWhisk action.
+
+
|
+
+
+
+
log
LogTrigger
+
|
+
+
(Optional)
+
+
Log refers to the trigger designed to invoke log the event.
+
+
|
+
+
+
+
azureEventHubs
AzureEventHubsTrigger
+
|
+
+
(Optional)
+
+
AzureEventHubs refers to the trigger send an event to an Azure Event
Hub.
+
+
|
+
+
+
+
pulsar
PulsarTrigger
+
|
+
+
(Optional)
+
+
Pulsar refers to the trigger designed to place messages on Pulsar topic.
+
+
|
+
+
+
+
conditionsReset
\[\]ConditionsResetCriteria
+
|
+
+
(Optional)
+
+
Criteria to reset the conditons
+
+
|
+
+
+
+
+
URLArtifact
+
+
+
(Appears on:
ArtifactLocation)
+
+
+
+
URLArtifact contains information about an artifact at an http endpoint.
+
+
+
+
+
+
+
Field
+
|
+
+
Description
+
|
+
+
+
+
+
+
path string
+
|
+
+
+
Path is the complete URL
+
+
|
+
+
+
+
verifyCert bool
+
|
+
+
+
VerifyCert decides whether the connection is secure or not
+
+
|
+
+
+
+
+
+
Generated with gen-crd-api-reference-docs
.
+
diff --git a/docs/sensors/transform.md b/docs/sensors/transform.md
new file mode 100644
index 0000000000..16365f2203
--- /dev/null
+++ b/docs/sensors/transform.md
@@ -0,0 +1,146 @@
+# Event Transformation
+
+> Available after v1.5.5
+
+1. Lua Script: Executes user-defined Lua script to transform the event.
+
+
+2. JQ Command: Evaluates JQ command to transform the event. We use https://github.com/itchyny/gojq to evaluate JQ commands.
+
+
+### Note
+
+* If set, transformations are applied to the event before the filters are applied.
+
+
+* Either a Lua script or a JQ command can be used for the transformation, not both.
+
+
+* Only event data is available for the transformation and not the context.
+
+
+* The event is discarded if the transformation fails.
+
+## Lua Script
+
+```yaml
+apiVersion: argoproj.io/v1alpha1
+kind: Sensor
+metadata:
+ name: webhook
+spec:
+ template:
+ serviceAccountName: operate-workflow-sa
+ dependencies:
+ - name: test-dep
+ eventSourceName: webhook
+ eventName: example
+ transform:
+ script: |-
+ event.body.message='updated'
+ return event
+ triggers:
+ - template:
+ name: webhook-workflow-trigger
+ conditions: "test-dep"
+ k8s:
+ operation: create
+ source:
+ resource:
+ apiVersion: argoproj.io/v1alpha1
+ kind: Workflow
+ metadata:
+ generateName: webhook-
+ spec:
+ entrypoint: whalesay
+ arguments:
+ parameters:
+ - name: message
+ # the value will get overridden by event payload from test-dep
+ value: hello world
+ templates:
+ - name: whalesay
+ inputs:
+ parameters:
+ - name: message
+ container:
+ image: docker/whalesay:latest
+ command: [cowsay]
+ args: ["{{inputs.parameters.message}}"]
+ parameters:
+ - src:
+ dependencyName: test-dep
+ dataKey: body
+ dest: spec.arguments.parameters.0.value
+```
+
+1. `transform.script` field defines the Lua script that gets executed when an event is received.
+
+
+2. The event data is available to Lua execution context via a global variable called `event`.
+
+
+3. The above script sets the value of `body.message` field within the event data to a new value called `updated` and returns the event.
+
+
+4. The type of the `event` variable is Table and the script must return a Table representing a valid JSON object.
+
+
+## JQ Command
+
+```yaml
+apiVersion: argoproj.io/v1alpha1
+kind: Sensor
+metadata:
+ name: webhook
+spec:
+ template:
+ serviceAccountName: operate-workflow-sa
+ dependencies:
+ - name: test-dep
+ eventSourceName: webhook
+ eventName: example
+ transform:
+ jq: ".body.message *= 2"
+ triggers:
+ - template:
+ name: webhook-workflow-trigger-1
+ conditions: "test-dep-foo"
+ k8s:
+ operation: create
+ source:
+ resource:
+ apiVersion: argoproj.io/v1alpha1
+ kind: Workflow
+ metadata:
+ generateName: webhook-
+ spec:
+ entrypoint: whalesay
+ arguments:
+ parameters:
+ - name: message
+ # the value will get overridden by event payload from test-dep
+ value: hello world
+ templates:
+ - name: whalesay
+ inputs:
+ parameters:
+ - name: message
+ container:
+ image: docker/whalesay:latest
+ command: [cowsay]
+ args: ["{{inputs.parameters.message}}"]
+ parameters:
+ - src:
+ dependencyName: test-dep
+ dataKey: body
+ dest: spec.arguments.parameters.0.value
+```
+
+1. The above script applies a JQ command `.body.message *= 2` on the event data which appends the value of `.body.message` to itself and
+return the event.
+
+
+2. The output of the transformation must be a valid JSON object.
+
+
\ No newline at end of file
diff --git a/eventbus/driver/driver.go b/eventbus/driver/driver.go
index bbc5d25f87..ae8b86faa4 100644
--- a/eventbus/driver/driver.go
+++ b/eventbus/driver/driver.go
@@ -21,7 +21,7 @@ type Driver interface {
// Parameter - dependencies, array of dependencies information
// Parameter - filter, a function used to filter the message
// Parameter - action, a function to be triggered after all conditions meet
- SubscribeEventSources(ctx context.Context, conn Connection, group string, closeCh <-chan struct{}, resetConditionsCh <-chan struct{}, dependencyExpr string, dependencies []Dependency, filter func(string, cloudevents.Event) bool, action func(map[string]cloudevents.Event)) error
+ SubscribeEventSources(ctx context.Context, conn Connection, group string, closeCh <-chan struct{}, resetConditionsCh <-chan struct{}, dependencyExpr string, dependencies []Dependency, transform func(depName string, event cloudevents.Event) (*cloudevents.Event, error), filter func(string, cloudevents.Event) bool, action func(map[string]cloudevents.Event)) error
// Publish a message
Publish(conn Connection, message []byte) error
diff --git a/eventbus/driver/nats.go b/eventbus/driver/nats.go
index 91a6141625..ab05605c62 100644
--- a/eventbus/driver/nats.go
+++ b/eventbus/driver/nats.go
@@ -8,6 +8,7 @@ import (
"time"
"github.com/Knetic/govaluate"
+ eventbusv1alpha1 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1"
cloudevents "github.com/cloudevents/sdk-go/v2"
"github.com/gobwas/glob"
nats "github.com/nats-io/nats.go"
@@ -15,8 +16,6 @@ import (
"github.com/nats-io/stan.go/pb"
"github.com/pkg/errors"
"go.uber.org/zap"
-
- eventbusv1alpha1 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1"
)
type natsStreamingConnection struct {
@@ -135,7 +134,7 @@ func (n *natsStreaming) Publish(conn Connection, message []byte) error {
// Parameter - dependencies, array of dependencies information
// Parameter - filter, a function used to filter the message
// Parameter - action, a function to be triggered after all conditions meet
-func (n *natsStreaming) SubscribeEventSources(ctx context.Context, conn Connection, group string, closeCh <-chan struct{}, resetConditionsCh <-chan struct{}, dependencyExpr string, dependencies []Dependency, filter func(string, cloudevents.Event) bool, action func(map[string]cloudevents.Event)) error {
+func (n *natsStreaming) SubscribeEventSources(ctx context.Context, conn Connection, group string, closeCh <-chan struct{}, resetConditionsCh <-chan struct{}, dependencyExpr string, dependencies []Dependency, transform func(depName string, event cloudevents.Event) (*cloudevents.Event, error), filter func(string, cloudevents.Event) bool, action func(map[string]cloudevents.Event)) error {
log := n.logger.With("clientID", n.clientID)
msgHolder, err := newEventSourceMessageHolder(dependencyExpr, dependencies)
if err != nil {
@@ -148,7 +147,7 @@ func (n *natsStreaming) SubscribeEventSources(ctx context.Context, conn Connecti
// use group name as durable name
durableName := group
sub, err := nsc.stanConn.QueueSubscribe(n.subject, group, func(m *stan.Msg) {
- n.processEventSourceMsg(m, msgHolder, filter, action, log)
+ n.processEventSourceMsg(m, msgHolder, transform, filter, action, log)
}, stan.DurableName(durableName),
stan.SetManualAckMode(),
stan.StartAt(pb.StartPosition_NewOnly),
@@ -215,7 +214,7 @@ func (n *natsStreaming) SubscribeEventSources(ctx context.Context, conn Connecti
}
}
-func (n *natsStreaming) processEventSourceMsg(m *stan.Msg, msgHolder *eventSourceMessageHolder, filter func(dependencyName string, event cloudevents.Event) bool, action func(map[string]cloudevents.Event), log *zap.SugaredLogger) {
+func (n *natsStreaming) processEventSourceMsg(m *stan.Msg, msgHolder *eventSourceMessageHolder, transform func(depName string, event cloudevents.Event) (*cloudevents.Event, error), filter func(dependencyName string, event cloudevents.Event) bool, action func(map[string]cloudevents.Event), log *zap.SugaredLogger) {
var event *cloudevents.Event
if err := json.Unmarshal(m.Data, &event); err != nil {
log.Errorf("Failed to convert to a cloudevent, discarding it... err: %v", err)
@@ -230,7 +229,19 @@ func (n *natsStreaming) processEventSourceMsg(m *stan.Msg, msgHolder *eventSourc
return
}
- if depName == "" || !filter(depName, *event) {
+ if depName == "" {
+ _ = m.Ack()
+ return
+ }
+
+ event, err = transform(depName, *event)
+ if err != nil {
+ log.Errorw("failed to apply event transformation", zap.Error(err))
+ _ = m.Ack()
+ return
+ }
+
+ if !filter(depName, *event) {
// message not interested
_ = m.Ack()
return
diff --git a/eventsources/sources/kafka/start.go b/eventsources/sources/kafka/start.go
index bb04f946bf..14bed28abc 100644
--- a/eventsources/sources/kafka/start.go
+++ b/eventsources/sources/kafka/start.go
@@ -392,7 +392,6 @@ func (consumer *Consumer) processOne(session sarama.ConsumerGroupSession, messag
// Function can be passed as Option to generate unique id for kafka event
// eventSourceName:eventName:kafka-url:topic:partition:offset
func genUniqueID(eventSourceName, eventName, kafkaURL, topic string, partition int32, offset int64) string {
-
kafkaID := fmt.Sprintf("%s:%s:%s:%s:%d:%d", eventSourceName, eventName, strings.Split(kafkaURL, ",")[0], topic, partition, offset)
return kafkaID
diff --git a/examples/sensors/transform.yaml b/examples/sensors/transform.yaml
new file mode 100644
index 0000000000..1c08d49b8e
--- /dev/null
+++ b/examples/sensors/transform.yaml
@@ -0,0 +1,85 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Sensor
+metadata:
+ name: webhook
+spec:
+ template:
+ serviceAccountName: operate-workflow-sa
+ dependencies:
+ - name: test-dep
+ eventSourceName: webhook
+ eventName: example
+ transform:
+ script: |-
+ event.body.message='updated'
+ return event
+ - name: test-dep-foo
+ eventSourceName: webhook
+ eventName: example-foo
+ transform:
+ jq: ".body.message *= 2"
+ triggers:
+ - template:
+ name: webhook-workflow-trigger
+ conditions: "test-dep"
+ k8s:
+ operation: create
+ source:
+ resource:
+ apiVersion: argoproj.io/v1alpha1
+ kind: Workflow
+ metadata:
+ generateName: webhook-
+ spec:
+ entrypoint: whalesay
+ arguments:
+ parameters:
+ - name: message
+ # the value will get overridden by event payload from test-dep
+ value: hello world
+ templates:
+ - name: whalesay
+ inputs:
+ parameters:
+ - name: message
+ container:
+ image: docker/whalesay:latest
+ command: [cowsay]
+ args: ["{{inputs.parameters.message}}"]
+ parameters:
+ - src:
+ dependencyName: test-dep
+ dataKey: body
+ dest: spec.arguments.parameters.0.value
+ - template:
+ name: webhook-workflow-trigger-1
+ conditions: "test-dep-foo"
+ k8s:
+ operation: create
+ source:
+ resource:
+ apiVersion: argoproj.io/v1alpha1
+ kind: Workflow
+ metadata:
+ generateName: webhook-
+ spec:
+ entrypoint: whalesay
+ arguments:
+ parameters:
+ - name: message
+ # the value will get overridden by event payload from test-dep
+ value: hello world
+ templates:
+ - name: whalesay
+ inputs:
+ parameters:
+ - name: message
+ container:
+ image: docker/whalesay:latest
+ command: [cowsay]
+ args: ["{{inputs.parameters.message}}"]
+ parameters:
+ - src:
+ dependencyName: test-dep-foo
+ dataKey: body
+ dest: spec.arguments.parameters.0.value
diff --git a/go.mod b/go.mod
index 5c58e4ee70..1745405e27 100644
--- a/go.mod
+++ b/go.mod
@@ -42,6 +42,7 @@ require (
github.com/gorilla/mux v1.8.0
github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/imdario/mergo v0.3.12
+ github.com/itchyny/gojq v0.12.6
github.com/joncalhoun/qson v0.0.0-20200422171543-84433dcd3da0
github.com/minio/minio-go/v7 v7.0.15
github.com/mitchellh/mapstructure v1.4.1
@@ -64,6 +65,7 @@ require (
github.com/tidwall/gjson v1.10.2
github.com/tidwall/sjson v1.1.1
github.com/xanzy/go-gitlab v0.50.2
+ github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9
go.uber.org/ratelimit v0.2.0
go.uber.org/zap v1.19.0
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871
@@ -154,6 +156,7 @@ require (
github.com/huandu/xstrings v1.3.1 // indirect
github.com/imkira/go-interpol v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
+ github.com/itchyny/timefmt-go v0.1.3 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jcmturner/gofork v1.0.0 // indirect
github.com/jessevdk/go-flags v1.5.0 // indirect
@@ -172,7 +175,7 @@ require (
github.com/magiconair/properties v1.8.5 // indirect
github.com/mailru/easyjson v0.7.6 // indirect
github.com/mattn/go-colorable v0.1.8 // indirect
- github.com/mattn/go-isatty v0.0.12 // indirect
+ github.com/mattn/go-isatty v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
github.com/minio/md5-simd v1.1.0 // indirect
github.com/minio/sha256-simd v0.1.1 // indirect
@@ -231,7 +234,7 @@ require (
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
- golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 // indirect
+ golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 // indirect
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect
golang.org/x/text v0.3.6 // indirect
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
diff --git a/go.sum b/go.sum
index 756529c9c2..673dd814bf 100644
--- a/go.sum
+++ b/go.sum
@@ -620,6 +620,10 @@ github.com/imkira/go-interpol v1.0.0 h1:HrmLyvOLJyjR0YofMw8QGdCIuYOs4TJUBDNU5sJC
github.com/imkira/go-interpol v1.0.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/itchyny/gojq v0.12.6 h1:VjaFn59Em2wTxDNGcrRkDK9ZHMNa8IksOgL13sLL4d0=
+github.com/itchyny/gojq v0.12.6/go.mod h1:ZHrkfu7A+RbZLy5J1/JKpS4poEqrzItSTGDItqsfP0A=
+github.com/itchyny/timefmt-go v0.1.3 h1:7M3LGVDsqcd0VZH2U+x393obrzZisp7C0uEe921iRkU=
+github.com/itchyny/timefmt-go v0.1.3/go.mod h1:0osSSCQSASBJMsIZnhAaF1C2fCBTJZXrnj37mG8/c+A=
github.com/jawher/mow.cli v1.0.4/go.mod h1:5hQj2V8g+qYmLUVWqu4Wuja1pI57M83EChYLVZ0sMKk=
github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
@@ -719,12 +723,14 @@ github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
@@ -1037,6 +1043,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 h1:k/gmLsJDWwWqbLCur2yWnJzwQEKRcAHXo6seXGuSwWw=
+github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
@@ -1239,6 +1247,7 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1304,8 +1313,10 @@ golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 h1:c8PlLMqBbOHoqtjteWm5/kbe6rNY2pbRfbIMVnepueo=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 h1:TyHqChC80pFkXWraUUf6RuB5IqFdQieMLwwCJokV2pc=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE=
diff --git a/hack/crdgen.sh b/hack/crdgen.sh
index 52b2be1dba..da96f92c8f 100755
--- a/hack/crdgen.sh
+++ b/hack/crdgen.sh
@@ -16,7 +16,7 @@ fi
header "Generating CRDs"
controller-gen crd:crdVersions=v1,maxDescLen=262143,maxDescLen=0 paths=./pkg/apis/... output:dir=manifests/base/crds
-mv manifests/base/crds/argoproj.io_eventbuses.yaml manifests/base/crds/argoproj.io_eventbus.yaml
+# mv manifests/base/crds/argoproj.io_eventbuses.yaml manifests/base/crds/argoproj.io_eventbus.yaml
find manifests/base/crds -name 'argoproj.io*.yaml' | while read -r file; do
echo "Patching ${file}"
diff --git a/hack/custom-boilerplate.go.txt b/hack/custom-boilerplate.go.txt
index c88489e5ec..796ffaa908 100644
--- a/hack/custom-boilerplate.go.txt
+++ b/hack/custom-boilerplate.go.txt
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/mkdocs.yml b/mkdocs.yml
index 06b6cb7c4b..ee8cb26f27 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -82,6 +82,7 @@ nav:
- 'sensors/triggers/pulsar-trigger.md'
- 'sensors/triggers/build-your-own-trigger.md'
- 'sensors/trigger-conditions.md'
+ - 'sensors/transform.md'
- 'sensors/ha.md'
- More Information: 'sensors/more-about-sensors-and-triggers.md'
- 'eventbus.md'
diff --git a/pkg/apis/common/deepcopy_generated.go b/pkg/apis/common/deepcopy_generated.go
index 0e04f6417c..34522a9cef 100644
--- a/pkg/apis/common/deepcopy_generated.go
+++ b/pkg/apis/common/deepcopy_generated.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/common/generated.pb.go b/pkg/apis/common/generated.pb.go
index c06bef0c87..f0b597a585 100644
--- a/pkg/apis/common/generated.pb.go
+++ b/pkg/apis/common/generated.pb.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/common/generated.proto b/pkg/apis/common/generated.proto
index 512ddc34f1..9fd844f631 100644
--- a/pkg/apis/common/generated.proto
+++ b/pkg/apis/common/generated.proto
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/common/openapi_generated.go b/pkg/apis/common/openapi_generated.go
index 509bd9dcf1..87cbaffd3d 100644
--- a/pkg/apis/common/openapi_generated.go
+++ b/pkg/apis/common/openapi_generated.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventbus/v1alpha1/generated.pb.go b/pkg/apis/eventbus/v1alpha1/generated.pb.go
index 22a1b026c6..3c426b424e 100644
--- a/pkg/apis/eventbus/v1alpha1/generated.pb.go
+++ b/pkg/apis/eventbus/v1alpha1/generated.pb.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventbus/v1alpha1/generated.proto b/pkg/apis/eventbus/v1alpha1/generated.proto
index 7b50a72483..3887bc600d 100644
--- a/pkg/apis/eventbus/v1alpha1/generated.proto
+++ b/pkg/apis/eventbus/v1alpha1/generated.proto
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventbus/v1alpha1/openapi_generated.go b/pkg/apis/eventbus/v1alpha1/openapi_generated.go
index bced1d09b0..63f34d9236 100644
--- a/pkg/apis/eventbus/v1alpha1/openapi_generated.go
+++ b/pkg/apis/eventbus/v1alpha1/openapi_generated.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventbus/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/eventbus/v1alpha1/zz_generated.deepcopy.go
index f86967ad3b..3cf7d6ed74 100644
--- a/pkg/apis/eventbus/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/eventbus/v1alpha1/zz_generated.deepcopy.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventsource/v1alpha1/generated.pb.go b/pkg/apis/eventsource/v1alpha1/generated.pb.go
index 72d6da5a7f..5d7999601c 100644
--- a/pkg/apis/eventsource/v1alpha1/generated.pb.go
+++ b/pkg/apis/eventsource/v1alpha1/generated.pb.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventsource/v1alpha1/generated.proto b/pkg/apis/eventsource/v1alpha1/generated.proto
index b4d65146c3..1acbab094a 100644
--- a/pkg/apis/eventsource/v1alpha1/generated.proto
+++ b/pkg/apis/eventsource/v1alpha1/generated.proto
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventsource/v1alpha1/openapi_generated.go b/pkg/apis/eventsource/v1alpha1/openapi_generated.go
index b73c2ab993..35fb7979fe 100644
--- a/pkg/apis/eventsource/v1alpha1/openapi_generated.go
+++ b/pkg/apis/eventsource/v1alpha1/openapi_generated.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/eventsource/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/eventsource/v1alpha1/zz_generated.deepcopy.go
index 21d5cc68dc..42c3ee2d92 100644
--- a/pkg/apis/eventsource/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/eventsource/v1alpha1/zz_generated.deepcopy.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/apis/sensor/v1alpha1/generated.pb.go b/pkg/apis/sensor/v1alpha1/generated.pb.go
index b6effaba74..00f472b944 100644
--- a/pkg/apis/sensor/v1alpha1/generated.pb.go
+++ b/pkg/apis/sensor/v1alpha1/generated.pb.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -384,10 +384,38 @@ func (m *EventDependencyFilter) XXX_DiscardUnknown() {
var xxx_messageInfo_EventDependencyFilter proto.InternalMessageInfo
+func (m *EventDependencyTransformer) Reset() { *m = EventDependencyTransformer{} }
+func (*EventDependencyTransformer) ProtoMessage() {}
+func (*EventDependencyTransformer) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6c4bded897df1f16, []int{12}
+}
+func (m *EventDependencyTransformer) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventDependencyTransformer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *EventDependencyTransformer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventDependencyTransformer.Merge(m, src)
+}
+func (m *EventDependencyTransformer) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventDependencyTransformer) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventDependencyTransformer.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventDependencyTransformer proto.InternalMessageInfo
+
func (m *ExprFilter) Reset() { *m = ExprFilter{} }
func (*ExprFilter) ProtoMessage() {}
func (*ExprFilter) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{12}
+ return fileDescriptor_6c4bded897df1f16, []int{13}
}
func (m *ExprFilter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -415,7 +443,7 @@ var xxx_messageInfo_ExprFilter proto.InternalMessageInfo
func (m *FileArtifact) Reset() { *m = FileArtifact{} }
func (*FileArtifact) ProtoMessage() {}
func (*FileArtifact) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{13}
+ return fileDescriptor_6c4bded897df1f16, []int{14}
}
func (m *FileArtifact) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -443,7 +471,7 @@ var xxx_messageInfo_FileArtifact proto.InternalMessageInfo
func (m *GitArtifact) Reset() { *m = GitArtifact{} }
func (*GitArtifact) ProtoMessage() {}
func (*GitArtifact) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{14}
+ return fileDescriptor_6c4bded897df1f16, []int{15}
}
func (m *GitArtifact) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -471,7 +499,7 @@ var xxx_messageInfo_GitArtifact proto.InternalMessageInfo
func (m *GitCreds) Reset() { *m = GitCreds{} }
func (*GitCreds) ProtoMessage() {}
func (*GitCreds) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{15}
+ return fileDescriptor_6c4bded897df1f16, []int{16}
}
func (m *GitCreds) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -499,7 +527,7 @@ var xxx_messageInfo_GitCreds proto.InternalMessageInfo
func (m *GitRemoteConfig) Reset() { *m = GitRemoteConfig{} }
func (*GitRemoteConfig) ProtoMessage() {}
func (*GitRemoteConfig) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{16}
+ return fileDescriptor_6c4bded897df1f16, []int{17}
}
func (m *GitRemoteConfig) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -527,7 +555,7 @@ var xxx_messageInfo_GitRemoteConfig proto.InternalMessageInfo
func (m *HTTPTrigger) Reset() { *m = HTTPTrigger{} }
func (*HTTPTrigger) ProtoMessage() {}
func (*HTTPTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{17}
+ return fileDescriptor_6c4bded897df1f16, []int{18}
}
func (m *HTTPTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -555,7 +583,7 @@ var xxx_messageInfo_HTTPTrigger proto.InternalMessageInfo
func (m *K8SResourcePolicy) Reset() { *m = K8SResourcePolicy{} }
func (*K8SResourcePolicy) ProtoMessage() {}
func (*K8SResourcePolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{18}
+ return fileDescriptor_6c4bded897df1f16, []int{19}
}
func (m *K8SResourcePolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -583,7 +611,7 @@ var xxx_messageInfo_K8SResourcePolicy proto.InternalMessageInfo
func (m *KafkaTrigger) Reset() { *m = KafkaTrigger{} }
func (*KafkaTrigger) ProtoMessage() {}
func (*KafkaTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{19}
+ return fileDescriptor_6c4bded897df1f16, []int{20}
}
func (m *KafkaTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -611,7 +639,7 @@ var xxx_messageInfo_KafkaTrigger proto.InternalMessageInfo
func (m *LogTrigger) Reset() { *m = LogTrigger{} }
func (*LogTrigger) ProtoMessage() {}
func (*LogTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{20}
+ return fileDescriptor_6c4bded897df1f16, []int{21}
}
func (m *LogTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -639,7 +667,7 @@ var xxx_messageInfo_LogTrigger proto.InternalMessageInfo
func (m *NATSTrigger) Reset() { *m = NATSTrigger{} }
func (*NATSTrigger) ProtoMessage() {}
func (*NATSTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{21}
+ return fileDescriptor_6c4bded897df1f16, []int{22}
}
func (m *NATSTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -667,7 +695,7 @@ var xxx_messageInfo_NATSTrigger proto.InternalMessageInfo
func (m *OpenWhiskTrigger) Reset() { *m = OpenWhiskTrigger{} }
func (*OpenWhiskTrigger) ProtoMessage() {}
func (*OpenWhiskTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{22}
+ return fileDescriptor_6c4bded897df1f16, []int{23}
}
func (m *OpenWhiskTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -695,7 +723,7 @@ var xxx_messageInfo_OpenWhiskTrigger proto.InternalMessageInfo
func (m *PayloadField) Reset() { *m = PayloadField{} }
func (*PayloadField) ProtoMessage() {}
func (*PayloadField) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{23}
+ return fileDescriptor_6c4bded897df1f16, []int{24}
}
func (m *PayloadField) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -723,7 +751,7 @@ var xxx_messageInfo_PayloadField proto.InternalMessageInfo
func (m *PulsarTrigger) Reset() { *m = PulsarTrigger{} }
func (*PulsarTrigger) ProtoMessage() {}
func (*PulsarTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{24}
+ return fileDescriptor_6c4bded897df1f16, []int{25}
}
func (m *PulsarTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -751,7 +779,7 @@ var xxx_messageInfo_PulsarTrigger proto.InternalMessageInfo
func (m *RateLimit) Reset() { *m = RateLimit{} }
func (*RateLimit) ProtoMessage() {}
func (*RateLimit) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{25}
+ return fileDescriptor_6c4bded897df1f16, []int{26}
}
func (m *RateLimit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -779,7 +807,7 @@ var xxx_messageInfo_RateLimit proto.InternalMessageInfo
func (m *Sensor) Reset() { *m = Sensor{} }
func (*Sensor) ProtoMessage() {}
func (*Sensor) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{26}
+ return fileDescriptor_6c4bded897df1f16, []int{27}
}
func (m *Sensor) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -807,7 +835,7 @@ var xxx_messageInfo_Sensor proto.InternalMessageInfo
func (m *SensorList) Reset() { *m = SensorList{} }
func (*SensorList) ProtoMessage() {}
func (*SensorList) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{27}
+ return fileDescriptor_6c4bded897df1f16, []int{28}
}
func (m *SensorList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -835,7 +863,7 @@ var xxx_messageInfo_SensorList proto.InternalMessageInfo
func (m *SensorSpec) Reset() { *m = SensorSpec{} }
func (*SensorSpec) ProtoMessage() {}
func (*SensorSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{28}
+ return fileDescriptor_6c4bded897df1f16, []int{29}
}
func (m *SensorSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -863,7 +891,7 @@ var xxx_messageInfo_SensorSpec proto.InternalMessageInfo
func (m *SensorStatus) Reset() { *m = SensorStatus{} }
func (*SensorStatus) ProtoMessage() {}
func (*SensorStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{29}
+ return fileDescriptor_6c4bded897df1f16, []int{30}
}
func (m *SensorStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -891,7 +919,7 @@ var xxx_messageInfo_SensorStatus proto.InternalMessageInfo
func (m *SlackTrigger) Reset() { *m = SlackTrigger{} }
func (*SlackTrigger) ProtoMessage() {}
func (*SlackTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{30}
+ return fileDescriptor_6c4bded897df1f16, []int{31}
}
func (m *SlackTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -919,7 +947,7 @@ var xxx_messageInfo_SlackTrigger proto.InternalMessageInfo
func (m *StandardK8STrigger) Reset() { *m = StandardK8STrigger{} }
func (*StandardK8STrigger) ProtoMessage() {}
func (*StandardK8STrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{31}
+ return fileDescriptor_6c4bded897df1f16, []int{32}
}
func (m *StandardK8STrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -947,7 +975,7 @@ var xxx_messageInfo_StandardK8STrigger proto.InternalMessageInfo
func (m *StatusPolicy) Reset() { *m = StatusPolicy{} }
func (*StatusPolicy) ProtoMessage() {}
func (*StatusPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{32}
+ return fileDescriptor_6c4bded897df1f16, []int{33}
}
func (m *StatusPolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -975,7 +1003,7 @@ var xxx_messageInfo_StatusPolicy proto.InternalMessageInfo
func (m *Template) Reset() { *m = Template{} }
func (*Template) ProtoMessage() {}
func (*Template) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{33}
+ return fileDescriptor_6c4bded897df1f16, []int{34}
}
func (m *Template) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1003,7 +1031,7 @@ var xxx_messageInfo_Template proto.InternalMessageInfo
func (m *TimeFilter) Reset() { *m = TimeFilter{} }
func (*TimeFilter) ProtoMessage() {}
func (*TimeFilter) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{34}
+ return fileDescriptor_6c4bded897df1f16, []int{35}
}
func (m *TimeFilter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1031,7 +1059,7 @@ var xxx_messageInfo_TimeFilter proto.InternalMessageInfo
func (m *Trigger) Reset() { *m = Trigger{} }
func (*Trigger) ProtoMessage() {}
func (*Trigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{35}
+ return fileDescriptor_6c4bded897df1f16, []int{36}
}
func (m *Trigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1059,7 +1087,7 @@ var xxx_messageInfo_Trigger proto.InternalMessageInfo
func (m *TriggerParameter) Reset() { *m = TriggerParameter{} }
func (*TriggerParameter) ProtoMessage() {}
func (*TriggerParameter) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{36}
+ return fileDescriptor_6c4bded897df1f16, []int{37}
}
func (m *TriggerParameter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1087,7 +1115,7 @@ var xxx_messageInfo_TriggerParameter proto.InternalMessageInfo
func (m *TriggerParameterSource) Reset() { *m = TriggerParameterSource{} }
func (*TriggerParameterSource) ProtoMessage() {}
func (*TriggerParameterSource) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{37}
+ return fileDescriptor_6c4bded897df1f16, []int{38}
}
func (m *TriggerParameterSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1115,7 +1143,7 @@ var xxx_messageInfo_TriggerParameterSource proto.InternalMessageInfo
func (m *TriggerPolicy) Reset() { *m = TriggerPolicy{} }
func (*TriggerPolicy) ProtoMessage() {}
func (*TriggerPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{38}
+ return fileDescriptor_6c4bded897df1f16, []int{39}
}
func (m *TriggerPolicy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1143,7 +1171,7 @@ var xxx_messageInfo_TriggerPolicy proto.InternalMessageInfo
func (m *TriggerTemplate) Reset() { *m = TriggerTemplate{} }
func (*TriggerTemplate) ProtoMessage() {}
func (*TriggerTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{39}
+ return fileDescriptor_6c4bded897df1f16, []int{40}
}
func (m *TriggerTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1171,7 +1199,7 @@ var xxx_messageInfo_TriggerTemplate proto.InternalMessageInfo
func (m *URLArtifact) Reset() { *m = URLArtifact{} }
func (*URLArtifact) ProtoMessage() {}
func (*URLArtifact) Descriptor() ([]byte, []int) {
- return fileDescriptor_6c4bded897df1f16, []int{40}
+ return fileDescriptor_6c4bded897df1f16, []int{41}
}
func (m *URLArtifact) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1210,6 +1238,7 @@ func init() {
proto.RegisterType((*EventContext)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.EventContext")
proto.RegisterType((*EventDependency)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.EventDependency")
proto.RegisterType((*EventDependencyFilter)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.EventDependencyFilter")
+ proto.RegisterType((*EventDependencyTransformer)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.EventDependencyTransformer")
proto.RegisterType((*ExprFilter)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.ExprFilter")
proto.RegisterType((*FileArtifact)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.FileArtifact")
proto.RegisterType((*GitArtifact)(nil), "github.aaakk.us.kg.argoproj.argo_events.pkg.apis.sensor.v1alpha1.GitArtifact")
@@ -1249,266 +1278,270 @@ func init() {
}
var fileDescriptor_6c4bded897df1f16 = []byte{
- // 4141 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7b, 0x4d, 0x6c, 0x23, 0xd9,
- 0x71, 0xf0, 0x90, 0x22, 0x25, 0xb2, 0x44, 0x49, 0x33, 0x6f, 0x3c, 0x5e, 0x5a, 0xde, 0x15, 0x07,
- 0x34, 0x3e, 0x7f, 0x63, 0xc3, 0xa6, 0x76, 0x67, 0x93, 0x58, 0x9e, 0x20, 0xf6, 0x52, 0x94, 0x34,
- 0x7f, 0x9c, 0x91, 0xb6, 0x9a, 0x9a, 0x45, 0x7e, 0x80, 0x75, 0xab, 0xf9, 0x48, 0xf6, 0xaa, 0xd9,
- 0xcd, 0xed, 0xf7, 0xa8, 0x59, 0x19, 0x70, 0x62, 0xc4, 0xc8, 0x21, 0x08, 0xe0, 0xe4, 0x90, 0x43,
- 0x4e, 0xf9, 0x39, 0xe4, 0x94, 0x1c, 0x12, 0xe4, 0x18, 0xe4, 0xe2, 0xd3, 0x02, 0x39, 0x64, 0x73,
- 0x08, 0xe0, 0x43, 0x20, 0x64, 0xe5, 0x53, 0x0e, 0x41, 0xe2, 0xeb, 0x9c, 0x82, 0xf7, 0xd7, 0x7f,
- 0xe4, 0x78, 0xc4, 0xe1, 0x44, 0x13, 0x20, 0xb7, 0xee, 0xaa, 0x7a, 0x55, 0xef, 0xd5, 0xab, 0xaa,
- 0x57, 0xf5, 0x7e, 0xe0, 0x5e, 0xdf, 0xe5, 0x83, 0xf1, 0x51, 0xc3, 0x09, 0x86, 0x9b, 0x76, 0xd8,
- 0x0f, 0x46, 0x61, 0xf0, 0x91, 0xfc, 0xf8, 0x26, 0x3d, 0xa1, 0x3e, 0x67, 0x9b, 0xa3, 0xe3, 0xfe,
- 0xa6, 0x3d, 0x72, 0xd9, 0x26, 0xa3, 0x3e, 0x0b, 0xc2, 0xcd, 0x93, 0x77, 0x6c, 0x6f, 0x34, 0xb0,
- 0xdf, 0xd9, 0xec, 0x53, 0x9f, 0x86, 0x36, 0xa7, 0xdd, 0xc6, 0x28, 0x0c, 0x78, 0x40, 0xb6, 0x62,
- 0x4e, 0x0d, 0xc3, 0x49, 0x7e, 0x7c, 0xa8, 0x38, 0x35, 0x46, 0xc7, 0xfd, 0x86, 0xe0, 0xd4, 0x50,
- 0x9c, 0x1a, 0x86, 0xd3, 0xfa, 0x77, 0x2f, 0xdc, 0x07, 0x27, 0x18, 0x0e, 0x03, 0x3f, 0x2b, 0x7a,
- 0xfd, 0x9b, 0x09, 0x06, 0xfd, 0xa0, 0x1f, 0x6c, 0x4a, 0xf0, 0xd1, 0xb8, 0x27, 0xff, 0xe4, 0x8f,
- 0xfc, 0xd2, 0xe4, 0xf5, 0xe3, 0x2d, 0xd6, 0x70, 0x03, 0xc1, 0x72, 0xd3, 0x09, 0x42, 0xba, 0x79,
- 0x32, 0x31, 0x9a, 0xf5, 0x5f, 0x8a, 0x69, 0x86, 0xb6, 0x33, 0x70, 0x7d, 0x1a, 0x9e, 0xc6, 0xfd,
- 0x18, 0x52, 0x6e, 0x4f, 0x6b, 0xb5, 0xf9, 0xbc, 0x56, 0xe1, 0xd8, 0xe7, 0xee, 0x90, 0x4e, 0x34,
- 0xf8, 0x95, 0x17, 0x35, 0x60, 0xce, 0x80, 0x0e, 0xed, 0x6c, 0xbb, 0xfa, 0xb3, 0x02, 0x5c, 0x6d,
- 0x7e, 0x60, 0xb5, 0xed, 0xe1, 0x51, 0xd7, 0xee, 0x84, 0x6e, 0xbf, 0x4f, 0x43, 0xb2, 0x05, 0x95,
- 0xde, 0xd8, 0x77, 0xb8, 0x1b, 0xf8, 0x8f, 0xed, 0x21, 0xad, 0xe6, 0x6e, 0xe6, 0x6e, 0x95, 0xb7,
- 0xbf, 0xf0, 0xe9, 0x59, 0xed, 0xca, 0xf9, 0x59, 0xad, 0xb2, 0x97, 0xc0, 0x61, 0x8a, 0x92, 0x20,
- 0x94, 0x6d, 0xc7, 0xa1, 0x8c, 0x3d, 0xa4, 0xa7, 0xd5, 0xfc, 0xcd, 0xdc, 0xad, 0xe5, 0xdb, 0xff,
- 0xaf, 0xa1, 0xba, 0x26, 0xa6, 0xac, 0x21, 0xb4, 0xd4, 0x38, 0x79, 0xa7, 0x61, 0x51, 0x27, 0xa4,
- 0xfc, 0x21, 0x3d, 0xb5, 0xa8, 0x47, 0x1d, 0x1e, 0x84, 0xdb, 0x2b, 0xe7, 0x67, 0xb5, 0x72, 0xd3,
- 0xb4, 0xc5, 0x98, 0x8d, 0xe0, 0xc9, 0x0c, 0x79, 0x75, 0x61, 0x66, 0x9e, 0x11, 0x18, 0x63, 0x36,
- 0xe4, 0xab, 0xb0, 0x18, 0xd2, 0xbe, 0x1b, 0xf8, 0xd5, 0x82, 0x1c, 0xdb, 0xaa, 0x1e, 0xdb, 0x22,
- 0x4a, 0x28, 0x6a, 0x2c, 0x19, 0xc3, 0xd2, 0xc8, 0x3e, 0xf5, 0x02, 0xbb, 0x5b, 0x2d, 0xde, 0x5c,
- 0xb8, 0xb5, 0x7c, 0xfb, 0x41, 0xe3, 0x65, 0xad, 0xb3, 0xa1, 0xb5, 0x7b, 0x60, 0x87, 0xf6, 0x90,
- 0x72, 0x1a, 0x6e, 0xaf, 0x69, 0xa1, 0x4b, 0x07, 0x4a, 0x04, 0x1a, 0x59, 0xe4, 0xb7, 0x01, 0x46,
- 0x86, 0x8c, 0x55, 0x17, 0x5f, 0xb9, 0x64, 0xa2, 0x25, 0x43, 0x04, 0x62, 0x98, 0x90, 0x48, 0xee,
- 0xc0, 0xaa, 0xeb, 0x9f, 0x04, 0x8e, 0x2d, 0x26, 0xb6, 0x73, 0x3a, 0xa2, 0xd5, 0x25, 0xa9, 0x26,
- 0x72, 0x7e, 0x56, 0x5b, 0xbd, 0x9f, 0xc2, 0x60, 0x86, 0x92, 0x7c, 0x0d, 0x96, 0xc2, 0xc0, 0xa3,
- 0x4d, 0x7c, 0x5c, 0x2d, 0xc9, 0x46, 0xd1, 0x30, 0x51, 0x81, 0xd1, 0xe0, 0xeb, 0xff, 0x94, 0x87,
- 0xeb, 0xcd, 0xb0, 0x1f, 0x7c, 0x10, 0x84, 0xc7, 0x3d, 0x2f, 0x78, 0x6a, 0xec, 0xcf, 0x87, 0x45,
- 0x16, 0x8c, 0x43, 0x47, 0x59, 0xde, 0x5c, 0x43, 0x6f, 0x86, 0xdc, 0xed, 0xd9, 0x0e, 0x6f, 0xeb,
- 0x2e, 0x6e, 0x83, 0x98, 0x65, 0x4b, 0x72, 0x47, 0x2d, 0x85, 0xdc, 0x83, 0x72, 0x30, 0x12, 0x6e,
- 0x21, 0x0c, 0x22, 0x2f, 0x3b, 0xfd, 0x75, 0xdd, 0xe9, 0xf2, 0xbe, 0x41, 0x3c, 0x3b, 0xab, 0xdd,
- 0x48, 0x76, 0x36, 0x42, 0x60, 0xdc, 0x38, 0x33, 0x71, 0x0b, 0x97, 0x3d, 0x71, 0xf5, 0x9f, 0x0b,
- 0x77, 0xce, 0x0c, 0x99, 0x58, 0x90, 0x67, 0xef, 0x6a, 0x55, 0xfe, 0xea, 0xc5, 0x3b, 0xa3, 0x62,
- 0x64, 0xc3, 0x7a, 0xd7, 0x30, 0xdc, 0x5e, 0x3c, 0x3f, 0xab, 0xe5, 0xad, 0x77, 0x31, 0xcf, 0xde,
- 0x25, 0x75, 0x58, 0x74, 0x7d, 0xcf, 0xf5, 0xa9, 0x56, 0x98, 0xd4, 0xeb, 0x7d, 0x09, 0x41, 0x8d,
- 0x21, 0x5d, 0x28, 0xf4, 0x5c, 0x8f, 0x6a, 0xa7, 0xdd, 0x7b, 0x79, 0x3d, 0xec, 0xb9, 0x1e, 0x8d,
- 0x7a, 0x51, 0x3a, 0x3f, 0xab, 0x15, 0x04, 0x04, 0x25, 0x77, 0xf2, 0x3d, 0x58, 0x18, 0x87, 0x9e,
- 0x74, 0xe4, 0xe5, 0xdb, 0xbb, 0x2f, 0x2f, 0xe4, 0x10, 0xdb, 0x91, 0x8c, 0xa5, 0xf3, 0xb3, 0xda,
- 0xc2, 0x21, 0xb6, 0x51, 0xb0, 0x26, 0x87, 0x50, 0x76, 0x02, 0xbf, 0xe7, 0xf6, 0x87, 0xf6, 0xa8,
- 0x5a, 0x94, 0x72, 0x6e, 0x4d, 0x8b, 0x40, 0x2d, 0x49, 0xf4, 0xc8, 0x1e, 0x4d, 0x04, 0xa1, 0x96,
- 0x69, 0x8e, 0x31, 0x27, 0xd1, 0xf1, 0xbe, 0xcb, 0xab, 0x8b, 0xf3, 0x76, 0xfc, 0xae, 0xcb, 0xd3,
- 0x1d, 0xbf, 0xeb, 0x72, 0x14, 0xac, 0x89, 0x03, 0xa5, 0x90, 0x6a, 0x57, 0x5a, 0x92, 0x62, 0xbe,
- 0x3d, 0xf3, 0xfc, 0xa3, 0x66, 0xb0, 0x5d, 0x39, 0x3f, 0xab, 0x95, 0xcc, 0x1f, 0x46, 0x8c, 0xeb,
- 0x7f, 0x57, 0x80, 0x1b, 0xcd, 0xef, 0x8f, 0x43, 0xba, 0x2b, 0x18, 0xdc, 0x1b, 0x1f, 0x31, 0xe3,
- 0xc7, 0x37, 0xa1, 0xd0, 0xfb, 0xb8, 0xeb, 0xeb, 0xf5, 0xa3, 0xa2, 0x6d, 0xb7, 0xb0, 0xf7, 0xfe,
- 0xce, 0x63, 0x94, 0x18, 0x11, 0x2c, 0x06, 0xe3, 0x23, 0xb9, 0xc8, 0xe4, 0xd3, 0xc1, 0xe2, 0x9e,
- 0x02, 0xa3, 0xc1, 0x93, 0x11, 0x5c, 0x67, 0x03, 0x3b, 0xa4, 0xdd, 0x68, 0x91, 0x90, 0xcd, 0x66,
- 0x5a, 0x10, 0xde, 0x38, 0x3f, 0xab, 0x5d, 0xb7, 0x26, 0xb9, 0xe0, 0x34, 0xd6, 0xa4, 0x0b, 0x6b,
- 0x19, 0xb0, 0x36, 0xb2, 0x0b, 0x4a, 0xbb, 0x7e, 0x7e, 0x56, 0x5b, 0xcb, 0x48, 0xc3, 0x2c, 0xcb,
- 0xff, 0xa3, 0x4b, 0x4c, 0xbd, 0x0f, 0x37, 0x5a, 0x81, 0xdf, 0x75, 0x45, 0x84, 0x62, 0x48, 0x19,
- 0xe5, 0xdb, 0xa7, 0x1d, 0x77, 0x48, 0x85, 0xd1, 0x38, 0x61, 0x30, 0x61, 0x34, 0xad, 0x30, 0xf0,
- 0x51, 0x62, 0xc8, 0x37, 0xa0, 0x24, 0x52, 0x9a, 0xef, 0x07, 0x51, 0xf0, 0xb9, 0xaa, 0xa9, 0x4a,
- 0x1d, 0x0d, 0xc7, 0x88, 0xa2, 0xfe, 0xe3, 0x1c, 0xbc, 0x91, 0x91, 0xd4, 0x0a, 0x5d, 0x4e, 0x43,
- 0xd7, 0x26, 0x0c, 0x16, 0x8f, 0xa4, 0x54, 0x1d, 0x1d, 0xf7, 0x5f, 0x5e, 0x01, 0x53, 0x07, 0xa3,
- 0xa2, 0xa2, 0xfa, 0x46, 0x2d, 0xaa, 0xfe, 0x37, 0x45, 0x58, 0x69, 0x8d, 0x19, 0x0f, 0x86, 0xc6,
- 0x4f, 0x36, 0x45, 0x86, 0x13, 0x9e, 0xd0, 0xf0, 0x10, 0xdb, 0x7a, 0xdc, 0xd7, 0xcc, 0xfa, 0x63,
- 0x19, 0x04, 0xc6, 0x34, 0x22, 0x7d, 0x61, 0xd4, 0x19, 0x87, 0x6a, 0xfc, 0xa5, 0x38, 0x7d, 0xb1,
- 0x24, 0x14, 0x35, 0x96, 0x1c, 0x02, 0x38, 0x34, 0xe4, 0xca, 0x34, 0x67, 0x73, 0x95, 0x55, 0x31,
- 0x77, 0xad, 0xa8, 0x31, 0x26, 0x18, 0x91, 0x07, 0x40, 0x54, 0x5f, 0x84, 0x9b, 0xec, 0x9f, 0xd0,
- 0x30, 0x74, 0xbb, 0x54, 0x67, 0x52, 0xeb, 0xba, 0x2b, 0xc4, 0x9a, 0xa0, 0xc0, 0x29, 0xad, 0x08,
- 0x83, 0x02, 0x1b, 0x51, 0x47, 0xdb, 0xfe, 0xfb, 0x73, 0x4c, 0x40, 0x52, 0xa5, 0x0d, 0x6b, 0x44,
- 0x9d, 0x5d, 0x9f, 0x87, 0xa7, 0xb1, 0x05, 0x09, 0x10, 0x4a, 0x61, 0xaf, 0x3d, 0xbf, 0x4a, 0xf8,
- 0xfc, 0xd2, 0xe5, 0xf9, 0xfc, 0xfa, 0xb7, 0xa0, 0x1c, 0xe9, 0x85, 0x5c, 0x85, 0x85, 0x63, 0x7a,
- 0xaa, 0xcc, 0x0d, 0xc5, 0x27, 0xf9, 0x02, 0x14, 0x4f, 0x6c, 0x6f, 0xac, 0x9d, 0x0a, 0xd5, 0xcf,
- 0x9d, 0xfc, 0x56, 0xae, 0xfe, 0x1f, 0x39, 0x80, 0x1d, 0x9b, 0xdb, 0x7b, 0xae, 0xc7, 0x55, 0x5c,
- 0x1f, 0xd9, 0x7c, 0x90, 0x75, 0xd1, 0x03, 0x9b, 0x0f, 0x50, 0x62, 0xc8, 0x37, 0xa0, 0xc0, 0x45,
- 0xda, 0xa8, 0xdc, 0xb3, 0x6a, 0x28, 0x44, 0x82, 0xf8, 0xec, 0xac, 0x56, 0x7a, 0x60, 0xed, 0x3f,
- 0x96, 0xc9, 0xa3, 0xa4, 0x22, 0x35, 0x23, 0x58, 0x24, 0x4c, 0xe5, 0xed, 0xf2, 0xf9, 0x59, 0xad,
- 0xf8, 0x44, 0x00, 0x74, 0x1f, 0xc8, 0x7b, 0x00, 0x4e, 0x30, 0x14, 0x0a, 0xe4, 0x41, 0xa8, 0x0d,
- 0xed, 0xa6, 0xd1, 0x71, 0x2b, 0xc2, 0x3c, 0x4b, 0xfd, 0x61, 0xa2, 0x8d, 0x8c, 0x19, 0x74, 0x38,
- 0xf2, 0x6c, 0x4e, 0xe5, 0x0a, 0x9e, 0x8c, 0x19, 0x1a, 0x8e, 0x11, 0x45, 0xfd, 0x4f, 0x73, 0x50,
- 0x94, 0xab, 0x19, 0x19, 0xc2, 0x92, 0x13, 0xf8, 0x9c, 0x7e, 0xc2, 0x75, 0x88, 0x98, 0x23, 0x8b,
- 0x91, 0x1c, 0x5b, 0x8a, 0xdb, 0xf6, 0xb2, 0x98, 0x21, 0xfd, 0x83, 0x46, 0x06, 0x79, 0x13, 0x0a,
- 0x5d, 0x9b, 0xdb, 0x52, 0x6f, 0x15, 0x95, 0xe9, 0x08, 0xbd, 0xa3, 0x84, 0xde, 0x29, 0xfd, 0xc9,
- 0x9f, 0xd7, 0xae, 0xfc, 0xf0, 0x5f, 0x6f, 0x5e, 0xa9, 0xff, 0x3c, 0x0f, 0x95, 0x24, 0x3b, 0xb2,
- 0x0e, 0x79, 0xb7, 0xab, 0x27, 0x04, 0xf4, 0xc8, 0xf2, 0xf7, 0x77, 0x30, 0xef, 0x76, 0x65, 0xb4,
- 0x50, 0x39, 0x40, 0x3e, 0x5d, 0xec, 0x64, 0xd2, 0xe0, 0x5f, 0x86, 0x65, 0xe1, 0x1d, 0x27, 0x34,
- 0x64, 0x22, 0x11, 0x5e, 0x90, 0xc4, 0xd7, 0x35, 0xf1, 0xb2, 0xb0, 0x9c, 0x27, 0x0a, 0x85, 0x49,
- 0x3a, 0x61, 0x0d, 0x72, 0xae, 0x0b, 0x69, 0x6b, 0x48, 0xcc, 0x6f, 0x13, 0xd6, 0x44, 0xff, 0xe5,
- 0x20, 0x7d, 0x2e, 0x89, 0xd5, 0x1c, 0xbc, 0xa1, 0x89, 0xd7, 0xc4, 0x20, 0x5b, 0x0a, 0x2d, 0xdb,
- 0x65, 0xe9, 0x45, 0xa2, 0xc0, 0xc6, 0x47, 0x1f, 0x51, 0x47, 0xe5, 0x4b, 0x89, 0x44, 0xc1, 0x52,
- 0x60, 0x34, 0x78, 0xd2, 0x86, 0x82, 0x08, 0xfe, 0x3a, 0xe1, 0xf9, 0x7a, 0x22, 0xdc, 0x45, 0x95,
- 0x71, 0x3c, 0x47, 0xa2, 0x00, 0x17, 0x01, 0x50, 0x46, 0xeb, 0xb8, 0xef, 0x22, 0x5e, 0x4b, 0x2e,
- 0x09, 0x9d, 0xff, 0x59, 0x1e, 0xd6, 0xa4, 0xce, 0x77, 0xe8, 0x88, 0xfa, 0x5d, 0xea, 0x3b, 0xa7,
- 0x62, 0xec, 0x7e, 0x5c, 0x21, 0x47, 0xed, 0x65, 0x4e, 0x21, 0x31, 0x62, 0xec, 0xd2, 0x2e, 0x94,
- 0xae, 0x13, 0x99, 0x4e, 0x34, 0xf6, 0xdd, 0x34, 0x1a, 0xb3, 0xf4, 0x62, 0x79, 0x90, 0xa0, 0x28,
- 0xdf, 0x49, 0x2c, 0x0f, 0xbb, 0x06, 0x81, 0x31, 0x0d, 0x39, 0x81, 0xa5, 0x9e, 0xf4, 0x54, 0xa6,
- 0x13, 0x96, 0xfd, 0x39, 0x8d, 0x36, 0x1e, 0xb1, 0x8a, 0x00, 0xca, 0x7a, 0xd5, 0x37, 0x43, 0x23,
- 0xac, 0xfe, 0x0f, 0x0b, 0x70, 0x63, 0x2a, 0x3d, 0x39, 0xd2, 0x73, 0xa2, 0x7c, 0x68, 0x67, 0x8e,
- 0x68, 0xe7, 0x0e, 0xa9, 0xee, 0x43, 0x29, 0x3d, 0x53, 0x49, 0x57, 0xcd, 0x5f, 0x82, 0xab, 0xf6,
- 0xb4, 0xab, 0xaa, 0x22, 0x6f, 0x8e, 0x21, 0xc5, 0x81, 0x35, 0x36, 0xa0, 0xd8, 0xe9, 0x89, 0x0b,
- 0x45, 0xfa, 0xc9, 0x48, 0x4e, 0xe5, 0x9c, 0x82, 0x76, 0x3f, 0x19, 0x85, 0x5a, 0xd0, 0x8a, 0x16,
- 0x54, 0x14, 0x30, 0x86, 0x4a, 0x82, 0x08, 0x7b, 0x10, 0x13, 0x09, 0xe3, 0x16, 0xf0, 0xac, 0x71,
- 0x0b, 0x0a, 0x94, 0x18, 0x51, 0xa8, 0xf7, 0x5c, 0xea, 0x75, 0x59, 0x35, 0x2f, 0x3b, 0x37, 0x87,
- 0xc6, 0xf5, 0x62, 0xb5, 0x27, 0xd8, 0xc5, 0x11, 0x4a, 0xfe, 0x32, 0xd4, 0x52, 0xea, 0x6f, 0x43,
- 0x25, 0x59, 0x0a, 0xbe, 0x78, 0x21, 0xaa, 0xff, 0x6d, 0x01, 0x96, 0x13, 0xf5, 0x11, 0x79, 0x4b,
- 0x15, 0x8b, 0xaa, 0xc1, 0xb2, 0x6e, 0x10, 0x57, 0x7a, 0xdf, 0x81, 0x55, 0xc7, 0x0b, 0x7c, 0xba,
- 0xe3, 0x86, 0x32, 0x0d, 0x3a, 0xd5, 0xce, 0xfa, 0x45, 0x4d, 0xb9, 0xda, 0x4a, 0x61, 0x31, 0x43,
- 0x4d, 0x1c, 0x28, 0x3a, 0x21, 0xed, 0x32, 0x9d, 0x6b, 0x6d, 0xcf, 0x55, 0xd4, 0xb5, 0x04, 0x27,
- 0xb5, 0x1a, 0xca, 0x4f, 0x54, 0xbc, 0xc9, 0x6f, 0x42, 0x85, 0xb1, 0x81, 0x4c, 0xd6, 0x64, 0x5e,
- 0x37, 0x53, 0x51, 0x72, 0xf5, 0xfc, 0xac, 0x56, 0xb1, 0xac, 0x7b, 0x51, 0x73, 0x4c, 0x31, 0x13,
- 0x0b, 0xa5, 0xa8, 0xaa, 0x85, 0x0a, 0xb3, 0x0b, 0xe5, 0x9e, 0x86, 0x63, 0x44, 0x21, 0x96, 0x96,
- 0xa3, 0xd0, 0xf6, 0x9d, 0x81, 0x8e, 0xca, 0xd1, 0xc4, 0x6d, 0x4b, 0x28, 0x6a, 0xac, 0x50, 0x3b,
- 0xb7, 0xfb, 0x7a, 0x17, 0x29, 0x52, 0x7b, 0xc7, 0xee, 0xa3, 0x80, 0x0b, 0x74, 0x48, 0x7b, 0x7a,
- 0xbf, 0x28, 0x42, 0x23, 0xed, 0xa1, 0x80, 0x93, 0x21, 0x2c, 0x86, 0x74, 0x18, 0x70, 0x5a, 0x2d,
- 0xcb, 0xa1, 0xde, 0x9f, 0x4b, 0xad, 0x28, 0x59, 0xa9, 0x8a, 0x5c, 0x25, 0xe8, 0x0a, 0x82, 0x5a,
- 0x48, 0xfd, 0xaf, 0x73, 0x50, 0x32, 0xea, 0x27, 0xfb, 0x50, 0x1a, 0x33, 0x1a, 0x46, 0x51, 0xfe,
- 0xc2, 0x8a, 0x96, 0xe5, 0xf2, 0xa1, 0x6e, 0x8a, 0x11, 0x13, 0xc1, 0x70, 0x64, 0x33, 0xf6, 0x34,
- 0x08, 0xbb, 0xb3, 0xed, 0x90, 0x4a, 0x86, 0x07, 0xba, 0x29, 0x46, 0x4c, 0xea, 0xef, 0xc3, 0x5a,
- 0x66, 0x54, 0x17, 0x58, 0x96, 0xde, 0x84, 0xc2, 0x38, 0xf4, 0x94, 0xdf, 0x96, 0x55, 0x28, 0x3d,
- 0xc4, 0xb6, 0x85, 0x12, 0x5a, 0xff, 0xf7, 0x45, 0x58, 0xbe, 0xd7, 0xe9, 0x1c, 0x98, 0x02, 0xe5,
- 0x05, 0x5e, 0x93, 0x48, 0x67, 0xf3, 0x97, 0x58, 0xc2, 0x1e, 0xc2, 0x02, 0xf7, 0x8c, 0xab, 0xdd,
- 0x99, 0x79, 0x63, 0xa3, 0xd3, 0xb6, 0xb4, 0x11, 0xc8, 0x4d, 0x93, 0x4e, 0xdb, 0x42, 0xc1, 0x4f,
- 0xd8, 0xf4, 0x90, 0xf2, 0x41, 0xd0, 0xcd, 0xee, 0x0d, 0x3f, 0x92, 0x50, 0xd4, 0xd8, 0x4c, 0x11,
- 0x51, 0xbc, 0xf4, 0x22, 0xe2, 0x6b, 0xb0, 0x24, 0xd6, 0xbd, 0x60, 0xac, 0x52, 0xa2, 0x85, 0x58,
- 0x53, 0x1d, 0x05, 0x46, 0x83, 0x27, 0x7d, 0x28, 0x1f, 0xd9, 0xcc, 0x75, 0x9a, 0x63, 0x3e, 0xd0,
- 0x79, 0xd1, 0xec, 0xfa, 0xda, 0x36, 0x1c, 0xd4, 0x96, 0x56, 0xf4, 0x8b, 0x31, 0x6f, 0xf2, 0x03,
- 0x58, 0x1a, 0x50, 0xbb, 0x2b, 0x14, 0x52, 0x92, 0x0a, 0xc1, 0x97, 0x57, 0x48, 0xc2, 0x00, 0x1b,
- 0xf7, 0x14, 0x53, 0x55, 0xd1, 0xc5, 0x7b, 0x44, 0x0a, 0x8a, 0x46, 0x26, 0x39, 0x81, 0x15, 0x55,
- 0xf9, 0x6a, 0x4c, 0xb5, 0x2c, 0x3b, 0xf1, 0x6b, 0xb3, 0x6f, 0x7a, 0x26, 0xb8, 0x6c, 0x5f, 0x3b,
- 0x3f, 0xab, 0xad, 0x24, 0x21, 0x0c, 0xd3, 0x62, 0xd6, 0xef, 0x40, 0x25, 0xd9, 0xc3, 0x99, 0x6a,
- 0xab, 0xdf, 0x5b, 0x80, 0x6b, 0x0f, 0xb7, 0x2c, 0xb3, 0xb1, 0x76, 0x10, 0x78, 0xae, 0x73, 0x4a,
- 0x7e, 0x07, 0x16, 0x3d, 0xfb, 0x88, 0x7a, 0xac, 0x9a, 0x93, 0x43, 0xf8, 0xe0, 0xe5, 0xf5, 0x38,
- 0xc1, 0xbc, 0xd1, 0x96, 0x9c, 0x95, 0x32, 0x23, 0xeb, 0x56, 0x40, 0xd4, 0x62, 0xc9, 0x87, 0xb0,
- 0x74, 0x64, 0x3b, 0xc7, 0x41, 0xaf, 0xa7, 0xa3, 0xd4, 0xd6, 0x4b, 0x18, 0x8c, 0x6c, 0xaf, 0xf2,
- 0x27, 0xfd, 0x83, 0x86, 0x2b, 0xb1, 0xe0, 0x06, 0x0d, 0xc3, 0x20, 0xdc, 0xf7, 0x35, 0x4a, 0x5b,
- 0xad, 0xf4, 0xe7, 0xd2, 0xf6, 0x5b, 0xba, 0x5f, 0x37, 0x76, 0xa7, 0x11, 0xe1, 0xf4, 0xb6, 0xeb,
- 0xdf, 0x86, 0xe5, 0xc4, 0xe0, 0x66, 0x9a, 0x87, 0x9f, 0x2c, 0x42, 0xe5, 0xa1, 0xdd, 0x3b, 0xb6,
- 0x2f, 0x18, 0xf4, 0xbe, 0x02, 0x45, 0x1e, 0x8c, 0x5c, 0x47, 0x67, 0x08, 0x51, 0x46, 0xd5, 0x11,
- 0x40, 0x54, 0x38, 0x91, 0xba, 0x8f, 0xec, 0x90, 0xcb, 0x8d, 0x21, 0x39, 0xb0, 0x62, 0x9c, 0xba,
- 0x1f, 0x18, 0x04, 0xc6, 0x34, 0x99, 0xa0, 0x52, 0xb8, 0xf4, 0xa0, 0xb2, 0x05, 0x95, 0x90, 0x7e,
- 0x3c, 0x76, 0xe5, 0x16, 0xe5, 0x31, 0x93, 0x29, 0x40, 0x31, 0x3e, 0xfa, 0xc3, 0x04, 0x0e, 0x53,
- 0x94, 0x22, 0x71, 0x10, 0xf5, 0x76, 0x48, 0x19, 0x93, 0xf1, 0xa8, 0x14, 0x27, 0x0e, 0x2d, 0x0d,
- 0xc7, 0x88, 0x42, 0x24, 0x5a, 0x3d, 0x6f, 0xcc, 0x06, 0x7b, 0x82, 0x87, 0x28, 0x14, 0x64, 0x58,
- 0x2a, 0xc6, 0x89, 0xd6, 0x5e, 0x0a, 0x8b, 0x19, 0x6a, 0x13, 0xfb, 0x4b, 0xaf, 0x38, 0xf6, 0x27,
- 0x56, 0xb2, 0xf2, 0x25, 0xae, 0x64, 0x4d, 0x58, 0x8b, 0x4c, 0xc0, 0xf5, 0xfb, 0x0f, 0xe9, 0x69,
- 0x15, 0xd2, 0x45, 0xe2, 0x41, 0x1a, 0x8d, 0x59, 0x7a, 0xb1, 0x1a, 0x98, 0xc2, 0x7d, 0x39, 0x5d,
- 0x20, 0x9b, 0xa2, 0xdd, 0xe0, 0xc9, 0xaf, 0x43, 0x81, 0xd9, 0xcc, 0xab, 0x56, 0x5e, 0xf6, 0x44,
- 0xa8, 0x69, 0xb5, 0xb5, 0xf6, 0x64, 0xe2, 0x20, 0xfe, 0x51, 0xb2, 0xac, 0xef, 0x03, 0xb4, 0x83,
- 0xbe, 0xf1, 0xa0, 0x26, 0xac, 0xb9, 0x3e, 0xa7, 0xe1, 0x89, 0xed, 0x59, 0xd4, 0x09, 0xfc, 0x2e,
- 0x93, 0xde, 0x54, 0x88, 0x87, 0x75, 0x3f, 0x8d, 0xc6, 0x2c, 0x7d, 0xfd, 0x2f, 0x17, 0x60, 0xf9,
- 0x71, 0xb3, 0x63, 0x5d, 0xd0, 0x29, 0x13, 0xdb, 0x04, 0xf9, 0x17, 0x6c, 0x13, 0x24, 0xa6, 0x7a,
- 0xe1, 0xb5, 0xed, 0xbb, 0x5f, 0xbe, 0x83, 0x6b, 0xc7, 0x29, 0xbe, 0x5a, 0xc7, 0xa9, 0xff, 0x61,
- 0x01, 0xae, 0xee, 0x8f, 0xa8, 0xff, 0xc1, 0xc0, 0x65, 0xc7, 0x89, 0xf3, 0x9f, 0x41, 0xc0, 0x78,
- 0x36, 0x0d, 0xbd, 0x17, 0x30, 0x8e, 0x12, 0x93, 0xb4, 0xda, 0xfc, 0x0b, 0xac, 0x76, 0x13, 0xca,
- 0x22, 0x73, 0x65, 0x23, 0xdb, 0x99, 0xd8, 0x05, 0x79, 0x6c, 0x10, 0x18, 0xd3, 0xc8, 0xbb, 0x08,
- 0x63, 0x3e, 0xe8, 0x04, 0xc7, 0xd4, 0x9f, 0xad, 0x46, 0x52, 0x77, 0x11, 0x4c, 0x5b, 0x8c, 0xd9,
- 0x90, 0xdb, 0x00, 0x76, 0x7c, 0x2f, 0x42, 0xd5, 0x47, 0x91, 0xc6, 0x9b, 0xf1, 0xad, 0x88, 0x04,
- 0x55, 0xd2, 0xd0, 0x16, 0x5f, 0x9b, 0xa1, 0x2d, 0x5d, 0xfa, 0x01, 0x0f, 0x42, 0x25, 0x59, 0xd3,
- 0x5f, 0x60, 0xd3, 0xd8, 0x54, 0x2d, 0xf9, 0xe7, 0x55, 0x2d, 0xf5, 0xbf, 0x5a, 0x82, 0x95, 0x83,
- 0xb1, 0xc7, 0xec, 0xf0, 0x55, 0x2e, 0xd2, 0xaf, 0xf9, 0xd0, 0x3e, 0x69, 0x20, 0x85, 0x4b, 0x34,
- 0x90, 0x11, 0x5c, 0xe7, 0x1e, 0xeb, 0x84, 0x63, 0xc6, 0x5b, 0x34, 0xe4, 0x4c, 0xef, 0x26, 0x14,
- 0x67, 0x3e, 0x50, 0xed, 0xb4, 0xad, 0x2c, 0x17, 0x9c, 0xc6, 0x9a, 0x1c, 0xc1, 0x3a, 0xf7, 0x58,
- 0xd3, 0xf3, 0x82, 0xa7, 0xf7, 0x7d, 0x95, 0x41, 0xb7, 0x02, 0xdf, 0xa7, 0xd2, 0x57, 0x74, 0xd2,
- 0x50, 0xd7, 0xfd, 0x5d, 0xef, 0xb4, 0xad, 0xe7, 0x50, 0xe2, 0x2f, 0xe0, 0x42, 0x1e, 0xc9, 0x51,
- 0x3d, 0xb1, 0x3d, 0xb7, 0x6b, 0x73, 0x2a, 0x42, 0x8d, 0xb4, 0xa9, 0x25, 0xc9, 0xfc, 0xcb, 0x9a,
- 0xb9, 0xe8, 0x72, 0x96, 0x04, 0xa7, 0xb5, 0xfb, 0x9f, 0xca, 0x33, 0xba, 0xb0, 0x16, 0x05, 0x15,
- 0xad, 0xf7, 0xf2, 0xcc, 0x47, 0xcb, 0xcd, 0x34, 0x07, 0xcc, 0xb2, 0x24, 0x3f, 0x80, 0x6b, 0x4e,
- 0xa4, 0x19, 0x9d, 0x29, 0xcb, 0xc4, 0x62, 0x9e, 0x6c, 0xfe, 0xc6, 0xf9, 0x59, 0xed, 0x5a, 0x2b,
- 0xcb, 0x16, 0x27, 0x25, 0xd5, 0x7f, 0x37, 0x07, 0x65, 0xb4, 0x39, 0x6d, 0xbb, 0x43, 0x97, 0x93,
- 0xdb, 0x50, 0x18, 0xfb, 0xae, 0x59, 0x0c, 0x36, 0x8c, 0x77, 0x1f, 0xfa, 0x2e, 0x7f, 0x76, 0x56,
- 0x5b, 0x8d, 0x08, 0xa9, 0x80, 0xa0, 0xa4, 0x15, 0x09, 0x84, 0xcc, 0xf8, 0x18, 0x67, 0x07, 0x34,
- 0x14, 0x08, 0xe9, 0xc8, 0xc5, 0x38, 0x81, 0xc0, 0x34, 0x1a, 0xb3, 0xf4, 0xf5, 0x9f, 0xe4, 0x61,
- 0xd1, 0x92, 0x4e, 0x42, 0xbe, 0x07, 0xa5, 0x21, 0xe5, 0xb6, 0xdc, 0xb5, 0x55, 0x5b, 0x39, 0x6f,
- 0x5f, 0xec, 0x70, 0x60, 0x5f, 0x66, 0x0c, 0x8f, 0x28, 0xb7, 0x63, 0x5f, 0x8e, 0x61, 0x18, 0x71,
- 0x25, 0x3d, 0x7d, 0x98, 0x99, 0x9f, 0x77, 0x9b, 0x5b, 0xf5, 0xd8, 0x1a, 0x51, 0x67, 0xea, 0xf9,
- 0xa5, 0x0f, 0x8b, 0x8c, 0xdb, 0x7c, 0xcc, 0xe6, 0xbf, 0x5a, 0xa3, 0x25, 0x49, 0x6e, 0x89, 0x93,
- 0x21, 0xf9, 0x8f, 0x5a, 0x4a, 0xfd, 0x9f, 0x73, 0x00, 0x8a, 0xb0, 0xed, 0x32, 0x4e, 0x7e, 0x6b,
- 0x42, 0x91, 0x8d, 0x8b, 0x29, 0x52, 0xb4, 0x96, 0x6a, 0x8c, 0x4a, 0x03, 0x03, 0x49, 0x28, 0x91,
- 0x42, 0xd1, 0xe5, 0x74, 0x68, 0xf6, 0x94, 0xdf, 0x9b, 0x77, 0x6c, 0x71, 0xd4, 0xbf, 0x2f, 0xd8,
- 0xa2, 0xe2, 0x5e, 0xff, 0x8b, 0x82, 0x19, 0x93, 0x50, 0x2c, 0xf9, 0x51, 0x0e, 0x2a, 0x5d, 0x73,
- 0x6c, 0xe1, 0x52, 0x53, 0x77, 0xdf, 0x7f, 0x65, 0x27, 0x27, 0x71, 0x11, 0xb5, 0x93, 0x10, 0x83,
- 0x29, 0xa1, 0x24, 0x80, 0x12, 0x57, 0x11, 0xdc, 0x0c, 0xbf, 0x39, 0xf7, 0x5a, 0x90, 0x38, 0xe9,
- 0xd4, 0xac, 0x31, 0x12, 0x42, 0xbc, 0xc4, 0xb9, 0xe8, 0xdc, 0x7b, 0xd6, 0xe6, 0x24, 0x55, 0x6d,
- 0x55, 0x4e, 0x9e, 0xab, 0x92, 0x07, 0x40, 0x74, 0xdd, 0xbe, 0x67, 0xbb, 0x1e, 0xed, 0x62, 0x30,
- 0xf6, 0xd5, 0x36, 0x5b, 0x29, 0xbe, 0x38, 0xb0, 0x3b, 0x41, 0x81, 0x53, 0x5a, 0x89, 0x4a, 0x55,
- 0xf6, 0x67, 0x7b, 0xcc, 0x12, 0xc9, 0x58, 0xa4, 0xe4, 0xdd, 0x04, 0x0e, 0x53, 0x94, 0xe4, 0x16,
- 0x94, 0x42, 0x3a, 0xf2, 0x5c, 0xc7, 0x56, 0x95, 0x6a, 0xd1, 0x5c, 0x6d, 0x52, 0x30, 0x8c, 0xb0,
- 0xf5, 0x00, 0x2a, 0x49, 0xff, 0x20, 0x1f, 0x46, 0x7e, 0xa7, 0xcc, 0xfe, 0x5b, 0xb3, 0xd7, 0x4e,
- 0xbf, 0xd8, 0xd1, 0xfe, 0x3e, 0x0f, 0x15, 0xcb, 0xb3, 0x9d, 0x28, 0x85, 0x4e, 0xe7, 0x26, 0xb9,
- 0xd7, 0x50, 0x2e, 0x00, 0x93, 0xfd, 0x91, 0x59, 0x74, 0x7e, 0xe6, 0x1b, 0x24, 0x56, 0xd4, 0x18,
- 0x13, 0x8c, 0x44, 0xde, 0xef, 0x0c, 0x6c, 0xdf, 0xa7, 0x9e, 0x4e, 0xe5, 0xa3, 0x34, 0xa5, 0xa5,
- 0xc0, 0x68, 0xf0, 0x82, 0x74, 0x48, 0x19, 0xb3, 0xfb, 0xe6, 0x84, 0x39, 0x22, 0x7d, 0xa4, 0xc0,
- 0x68, 0xf0, 0xf5, 0xff, 0x5a, 0x00, 0x62, 0x71, 0xdb, 0xef, 0xda, 0x61, 0xf7, 0xe1, 0x96, 0xf5,
- 0xba, 0xae, 0x93, 0x3e, 0x9e, 0xbc, 0x4e, 0xfa, 0xf6, 0xb4, 0xeb, 0xa4, 0x5f, 0x7e, 0x38, 0x3e,
- 0xa2, 0xa1, 0x4f, 0x39, 0x65, 0x66, 0x83, 0xee, 0x7f, 0xe3, 0xa5, 0x52, 0xd2, 0x83, 0x95, 0x91,
- 0xcd, 0x9d, 0x81, 0xc5, 0x43, 0x9b, 0xd3, 0xfe, 0xa9, 0x9e, 0x87, 0xf7, 0x74, 0xb3, 0x95, 0x83,
- 0x24, 0xf2, 0xd9, 0x59, 0xed, 0xff, 0x3f, 0xef, 0x2e, 0x3a, 0x3f, 0x1d, 0x51, 0xd6, 0x90, 0xe4,
- 0xf2, 0x94, 0x3f, 0xcd, 0x56, 0x14, 0x57, 0x9e, 0x7b, 0x42, 0xd5, 0xca, 0x2a, 0xfd, 0xb9, 0x14,
- 0xf7, 0xad, 0x1d, 0x61, 0x30, 0x41, 0x55, 0xdf, 0x84, 0x8a, 0x72, 0x21, 0xbd, 0x6f, 0x5a, 0x83,
- 0xa2, 0x2d, 0x32, 0x43, 0xe9, 0x2a, 0x45, 0x75, 0x78, 0x26, 0x53, 0x45, 0x54, 0xf0, 0xfa, 0xef,
- 0x97, 0x20, 0x8a, 0x4c, 0xc4, 0x99, 0x58, 0xc8, 0x66, 0xbf, 0x1f, 0xf9, 0x48, 0x33, 0x50, 0x41,
- 0xc4, 0xfc, 0x25, 0xd6, 0x33, 0x7d, 0x5b, 0xca, 0x75, 0x68, 0xd3, 0x71, 0x82, 0xb1, 0x3e, 0xc7,
- 0xcf, 0x4f, 0xde, 0x96, 0x4a, 0x53, 0xe0, 0x94, 0x56, 0xe4, 0x81, 0xbc, 0x89, 0xca, 0x6d, 0xa1,
- 0x53, 0x1d, 0xaf, 0xdf, 0x7a, 0xce, 0x4d, 0x54, 0x45, 0x14, 0x5d, 0x3f, 0x55, 0xbf, 0x18, 0x37,
- 0x27, 0xbb, 0xb0, 0x74, 0x12, 0x78, 0xe3, 0x21, 0x35, 0xdb, 0x10, 0xeb, 0xd3, 0x38, 0x3d, 0x91,
- 0x24, 0x89, 0xba, 0x5c, 0x35, 0x41, 0xd3, 0x96, 0x50, 0x58, 0x93, 0x49, 0xb8, 0xcb, 0x4f, 0xf5,
- 0x19, 0xb9, 0x2e, 0x21, 0xbe, 0x3a, 0x8d, 0xdd, 0x41, 0xd0, 0xb5, 0xd2, 0xd4, 0xfa, 0x9a, 0x64,
- 0x1a, 0x88, 0x59, 0x9e, 0xe4, 0xc7, 0x39, 0xa8, 0xf8, 0x41, 0x97, 0x9a, 0xf0, 0xa2, 0x6b, 0xe9,
- 0xce, 0xfc, 0xab, 0x55, 0xe3, 0x71, 0x82, 0xad, 0xda, 0x14, 0x8f, 0x56, 0x91, 0x24, 0x0a, 0x53,
- 0xf2, 0xc9, 0x21, 0x2c, 0xf3, 0xc0, 0xd3, 0x3e, 0x6a, 0x0a, 0xec, 0x8d, 0x69, 0x63, 0xee, 0x44,
- 0x64, 0xf1, 0x6d, 0x9a, 0x18, 0xc6, 0x30, 0xc9, 0x87, 0xf8, 0x70, 0xd5, 0x1d, 0xda, 0x7d, 0x7a,
- 0x30, 0xf6, 0x3c, 0x15, 0x53, 0xcd, 0x51, 0xca, 0xd4, 0x2b, 0xc7, 0x22, 0x10, 0x79, 0xda, 0x2f,
- 0x68, 0x8f, 0x86, 0xd4, 0x77, 0x68, 0x74, 0xdf, 0xea, 0xea, 0xfd, 0x0c, 0x27, 0x9c, 0xe0, 0x4d,
- 0xee, 0xc2, 0xb5, 0x51, 0xe8, 0x06, 0x52, 0xd5, 0x9e, 0xcd, 0xd4, 0x5a, 0x5a, 0x96, 0xc6, 0xf9,
- 0x25, 0xcd, 0xe6, 0xda, 0x41, 0x96, 0x00, 0x27, 0xdb, 0x88, 0x55, 0xd5, 0x00, 0x65, 0x8d, 0xa1,
- 0x57, 0x55, 0xd3, 0x16, 0x23, 0x2c, 0xd9, 0x83, 0x92, 0xdd, 0xeb, 0xb9, 0xbe, 0xa0, 0x5c, 0x96,
- 0xa6, 0xf2, 0xe6, 0xb4, 0xa1, 0x35, 0x35, 0x8d, 0xe2, 0x63, 0xfe, 0x30, 0x6a, 0xbb, 0xfe, 0x5d,
- 0xb8, 0x36, 0x31, 0x75, 0x33, 0x6d, 0xf9, 0x5b, 0x00, 0xf1, 0x7d, 0x12, 0xf2, 0x15, 0x28, 0x32,
- 0x6e, 0x87, 0xa6, 0x42, 0x89, 0xb2, 0x46, 0x4b, 0x00, 0x51, 0xe1, 0xc8, 0x4d, 0x28, 0x30, 0x1e,
- 0x8c, 0xb2, 0x7b, 0x14, 0x16, 0x0f, 0x46, 0x28, 0x31, 0xf5, 0xcf, 0x0a, 0xb0, 0x64, 0x56, 0x1e,
- 0x96, 0xc8, 0xae, 0x72, 0xf3, 0x1e, 0x5d, 0x6b, 0xa6, 0x2f, 0x4c, 0xb2, 0xd2, 0xcb, 0x45, 0xfe,
- 0xd2, 0x97, 0x8b, 0x63, 0x58, 0x1c, 0xc9, 0x60, 0xac, 0x03, 0xd4, 0xdd, 0xf9, 0x65, 0x4b, 0x76,
- 0x6a, 0xad, 0x55, 0xdf, 0xa8, 0x45, 0x90, 0x8f, 0x61, 0x25, 0xa4, 0x3c, 0x3c, 0x4d, 0xad, 0x4d,
- 0xf3, 0x94, 0xb7, 0xf2, 0xb0, 0x0f, 0x93, 0x2c, 0x31, 0x2d, 0x81, 0x8c, 0xa0, 0x1c, 0x9a, 0x62,
- 0x55, 0x87, 0xba, 0xd6, 0xcb, 0x0f, 0x31, 0xaa, 0x7b, 0x55, 0xa4, 0x8e, 0x7e, 0x31, 0x16, 0x52,
- 0xff, 0xcf, 0x1c, 0x5c, 0xcd, 0x4e, 0x03, 0x39, 0x86, 0x05, 0x16, 0x3a, 0xda, 0xac, 0x0e, 0x5e,
- 0xdd, 0xfc, 0xaa, 0x64, 0x46, 0xed, 0x57, 0x58, 0xa1, 0x83, 0x42, 0x8a, 0x30, 0xfb, 0x2e, 0x65,
- 0x3c, 0x6b, 0xf6, 0x3b, 0x94, 0x71, 0x94, 0x18, 0xd2, 0x4e, 0x26, 0x3d, 0x2a, 0xa7, 0x6b, 0x4c,
- 0x4b, 0x7a, 0xbe, 0x94, 0x95, 0x37, 0x2d, 0xe5, 0xa9, 0xff, 0x4b, 0x1e, 0xbe, 0x38, 0xbd, 0x63,
- 0xe4, 0x3b, 0xb0, 0x1a, 0x95, 0x4c, 0xa7, 0x89, 0xe7, 0x69, 0xd1, 0xc9, 0xd1, 0x4e, 0x0a, 0x8b,
- 0x19, 0x6a, 0x91, 0x65, 0xe8, 0x2b, 0x5c, 0xe6, 0x8d, 0x5a, 0x62, 0x0b, 0xb7, 0x15, 0x61, 0x30,
- 0x41, 0x45, 0x9a, 0xb0, 0xa6, 0xff, 0x3a, 0xc9, 0x62, 0x29, 0x71, 0x3e, 0xd3, 0x4a, 0xa3, 0x31,
- 0x4b, 0x2f, 0xd2, 0x58, 0x91, 0x0d, 0x98, 0x47, 0x04, 0x89, 0x34, 0x76, 0x47, 0x81, 0xd1, 0xe0,
- 0x45, 0x65, 0x23, 0x3e, 0x3b, 0xe9, 0xfb, 0xaa, 0x71, 0xf9, 0x98, 0xc0, 0x61, 0x8a, 0x32, 0xbe,
- 0x48, 0xab, 0x6e, 0xe3, 0x4c, 0x5c, 0xa4, 0xad, 0xff, 0x2c, 0x07, 0x2b, 0x29, 0xa7, 0x22, 0x3d,
- 0x58, 0x38, 0xde, 0x32, 0xf5, 0xcc, 0xc3, 0x57, 0x78, 0xca, 0xac, 0x2c, 0xe8, 0xe1, 0x16, 0x43,
- 0x21, 0x80, 0x7c, 0x14, 0x95, 0x4e, 0x73, 0x5f, 0xce, 0x4b, 0x26, 0x7c, 0x3a, 0x01, 0x4f, 0x57,
- 0x51, 0xff, 0x58, 0x81, 0xb5, 0x4c, 0xb4, 0xbc, 0xc0, 0x95, 0x18, 0x65, 0x18, 0xfa, 0x12, 0xff,
- 0x14, 0xc3, 0x30, 0xd7, 0xfb, 0x13, 0x54, 0xa4, 0xaf, 0xb4, 0xa7, 0x02, 0x5d, 0x7b, 0xae, 0x21,
- 0x65, 0xaa, 0x96, 0x8c, 0xfa, 0x7e, 0x94, 0x83, 0x8a, 0x9d, 0x78, 0x7d, 0xa6, 0xe3, 0xdc, 0xa3,
- 0x79, 0x4a, 0x99, 0x89, 0x87, 0x77, 0xea, 0x72, 0x58, 0x12, 0x81, 0x29, 0xa1, 0xc4, 0x81, 0xc2,
- 0x80, 0x73, 0xf3, 0x06, 0x6a, 0xf7, 0x95, 0xdc, 0xed, 0x50, 0x67, 0x88, 0x02, 0x80, 0x92, 0x39,
- 0x79, 0x0a, 0x65, 0xfb, 0x29, 0x53, 0x2f, 0x52, 0xf5, 0xe3, 0xa8, 0x79, 0x2a, 0xb6, 0xcc, 0xe3,
- 0x56, 0x7d, 0xb8, 0x63, 0xa0, 0x18, 0xcb, 0x22, 0x21, 0x2c, 0x3a, 0xf2, 0x11, 0x81, 0xbe, 0x22,
- 0x73, 0xf7, 0x15, 0x3d, 0x46, 0x50, 0x6b, 0x4a, 0x0a, 0x84, 0x5a, 0x12, 0xe9, 0x43, 0xf1, 0xd8,
- 0xee, 0x1d, 0xdb, 0x7a, 0x87, 0x79, 0x0e, 0xaf, 0x48, 0xde, 0x5d, 0x50, 0x9e, 0x2f, 0x21, 0xa8,
- 0xf8, 0x8b, 0xa9, 0xf3, 0x6d, 0xce, 0xf4, 0x36, 0xf3, 0x1c, 0x53, 0x97, 0x38, 0x8d, 0x55, 0x53,
- 0x27, 0x00, 0x28, 0x99, 0x8b, 0xd1, 0xc8, 0x22, 0x5f, 0x6f, 0x32, 0xcf, 0xe3, 0xe3, 0x89, 0x4d,
- 0x10, 0x35, 0x1a, 0x09, 0x41, 0xc5, 0x5f, 0xd8, 0x48, 0x60, 0x4e, 0x1b, 0x75, 0x0e, 0x39, 0x87,
- 0x8d, 0x64, 0x0f, 0x2e, 0x95, 0x8d, 0x44, 0x50, 0x8c, 0x65, 0x91, 0x0f, 0x61, 0xc1, 0x0b, 0xfa,
- 0xfa, 0xe8, 0x7c, 0x8e, 0x0d, 0xde, 0xf8, 0x94, 0x5c, 0x39, 0x7a, 0x3b, 0xe8, 0xa3, 0xe0, 0x4c,
- 0xfe, 0x20, 0x07, 0xab, 0x76, 0xea, 0x35, 0x5d, 0x75, 0x65, 0xde, 0x3b, 0xdc, 0x53, 0x5f, 0xe7,
- 0xa9, 0xc7, 0xbc, 0x69, 0x14, 0x66, 0x44, 0xcb, 0x5c, 0x4e, 0x9e, 0xb7, 0x55, 0x57, 0xe7, 0x75,
- 0x89, 0xd4, 0xb9, 0x9d, 0xce, 0xe5, 0x24, 0x08, 0xb5, 0x08, 0xf2, 0xc7, 0x39, 0xb9, 0xcc, 0x26,
- 0x9f, 0x51, 0x55, 0xd7, 0xe6, 0x7e, 0x16, 0x34, 0xfd, 0xe9, 0x57, 0x6a, 0xe5, 0x4e, 0x12, 0x60,
- 0xb6, 0x0b, 0x75, 0x07, 0x96, 0x13, 0x4f, 0x43, 0x2f, 0x70, 0x8e, 0x79, 0x1b, 0xe0, 0x84, 0x86,
- 0x6e, 0xef, 0xb4, 0x45, 0x43, 0xae, 0x5f, 0x68, 0x45, 0x0b, 0xc9, 0x93, 0x08, 0x83, 0x09, 0xaa,
- 0xed, 0xc6, 0xa7, 0x9f, 0x6f, 0x5c, 0xf9, 0xec, 0xf3, 0x8d, 0x2b, 0x3f, 0xfd, 0x7c, 0xe3, 0xca,
- 0x0f, 0xcf, 0x37, 0x72, 0x9f, 0x9e, 0x6f, 0xe4, 0x3e, 0x3b, 0xdf, 0xc8, 0xfd, 0xf4, 0x7c, 0x23,
- 0xf7, 0x6f, 0xe7, 0x1b, 0xb9, 0x3f, 0xfa, 0xd9, 0xc6, 0x95, 0xdf, 0x28, 0x99, 0x61, 0xfd, 0x77,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x7d, 0xb4, 0x34, 0x6f, 0x41, 0x00, 0x00,
+ // 4202 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3b, 0x4b, 0x6c, 0x23, 0xd9,
+ 0x71, 0x43, 0x8a, 0x94, 0xc8, 0x12, 0x25, 0xcd, 0xbc, 0xf1, 0x78, 0x69, 0x79, 0x57, 0x1c, 0xd0,
+ 0x88, 0xb3, 0x36, 0x6c, 0x6a, 0x77, 0x36, 0x89, 0xe5, 0x09, 0x62, 0x2f, 0x45, 0x49, 0xf3, 0xe3,
+ 0x8c, 0xb4, 0xd5, 0xd4, 0x2c, 0xf2, 0x01, 0x76, 0x5b, 0xcd, 0x47, 0xb2, 0x47, 0xcd, 0x6e, 0x4e,
+ 0xbf, 0x47, 0xcd, 0xca, 0x80, 0x13, 0x27, 0x46, 0x0e, 0x41, 0x00, 0x27, 0x87, 0x1c, 0x72, 0x0a,
+ 0x12, 0x04, 0x39, 0x25, 0x87, 0x04, 0x39, 0x06, 0xb9, 0xf8, 0xb4, 0x40, 0x0e, 0xd9, 0x1c, 0x02,
+ 0xf8, 0x10, 0x08, 0x59, 0xf9, 0x94, 0x43, 0x90, 0xf8, 0x3a, 0xa7, 0xe0, 0xfd, 0xfa, 0x47, 0x8e,
+ 0x47, 0x1a, 0x2a, 0x9a, 0x00, 0xb9, 0x75, 0x57, 0xd5, 0xab, 0x7a, 0xaf, 0x5e, 0x55, 0xbd, 0xaa,
+ 0xf7, 0x81, 0xbb, 0x7d, 0x97, 0x0f, 0xc6, 0x07, 0x0d, 0x27, 0x18, 0xae, 0xdb, 0x61, 0x3f, 0x18,
+ 0x85, 0xc1, 0x13, 0xf9, 0xf1, 0x4d, 0x7a, 0x44, 0x7d, 0xce, 0xd6, 0x47, 0x87, 0xfd, 0x75, 0x7b,
+ 0xe4, 0xb2, 0x75, 0x46, 0x7d, 0x16, 0x84, 0xeb, 0x47, 0xef, 0xda, 0xde, 0x68, 0x60, 0xbf, 0xbb,
+ 0xde, 0xa7, 0x3e, 0x0d, 0x6d, 0x4e, 0xbb, 0x8d, 0x51, 0x18, 0xf0, 0x80, 0x6c, 0xc4, 0x9c, 0x1a,
+ 0x86, 0x93, 0xfc, 0xf8, 0x48, 0x71, 0x6a, 0x8c, 0x0e, 0xfb, 0x0d, 0xc1, 0xa9, 0xa1, 0x38, 0x35,
+ 0x0c, 0xa7, 0xd5, 0xef, 0x9e, 0xb9, 0x0f, 0x4e, 0x30, 0x1c, 0x06, 0x7e, 0x56, 0xf4, 0xea, 0x37,
+ 0x13, 0x0c, 0xfa, 0x41, 0x3f, 0x58, 0x97, 0xe0, 0x83, 0x71, 0x4f, 0xfe, 0xc9, 0x1f, 0xf9, 0xa5,
+ 0xc9, 0xeb, 0x87, 0x1b, 0xac, 0xe1, 0x06, 0x82, 0xe5, 0xba, 0x13, 0x84, 0x74, 0xfd, 0x68, 0x62,
+ 0x34, 0xab, 0xbf, 0x14, 0xd3, 0x0c, 0x6d, 0x67, 0xe0, 0xfa, 0x34, 0x3c, 0x8e, 0xfb, 0x31, 0xa4,
+ 0xdc, 0x9e, 0xd6, 0x6a, 0xfd, 0x45, 0xad, 0xc2, 0xb1, 0xcf, 0xdd, 0x21, 0x9d, 0x68, 0xf0, 0x2b,
+ 0x2f, 0x6b, 0xc0, 0x9c, 0x01, 0x1d, 0xda, 0xd9, 0x76, 0xf5, 0xe7, 0x05, 0xb8, 0xda, 0xfc, 0xd0,
+ 0x6a, 0xdb, 0xc3, 0x83, 0xae, 0xdd, 0x09, 0xdd, 0x7e, 0x9f, 0x86, 0x64, 0x03, 0x2a, 0xbd, 0xb1,
+ 0xef, 0x70, 0x37, 0xf0, 0x1f, 0xd9, 0x43, 0x5a, 0xcd, 0xdd, 0xcc, 0xbd, 0x5d, 0xde, 0xfc, 0xc2,
+ 0xa7, 0x27, 0xb5, 0x2b, 0xa7, 0x27, 0xb5, 0xca, 0x4e, 0x02, 0x87, 0x29, 0x4a, 0x82, 0x50, 0xb6,
+ 0x1d, 0x87, 0x32, 0xf6, 0x80, 0x1e, 0x57, 0xf3, 0x37, 0x73, 0x6f, 0x2f, 0xde, 0xfa, 0x85, 0x86,
+ 0xea, 0x9a, 0x98, 0xb2, 0x86, 0xd0, 0x52, 0xe3, 0xe8, 0xdd, 0x86, 0x45, 0x9d, 0x90, 0xf2, 0x07,
+ 0xf4, 0xd8, 0xa2, 0x1e, 0x75, 0x78, 0x10, 0x6e, 0x2e, 0x9d, 0x9e, 0xd4, 0xca, 0x4d, 0xd3, 0x16,
+ 0x63, 0x36, 0x82, 0x27, 0x33, 0xe4, 0xd5, 0xb9, 0x73, 0xf3, 0x8c, 0xc0, 0x18, 0xb3, 0x21, 0x5f,
+ 0x85, 0xf9, 0x90, 0xf6, 0xdd, 0xc0, 0xaf, 0x16, 0xe4, 0xd8, 0x96, 0xf5, 0xd8, 0xe6, 0x51, 0x42,
+ 0x51, 0x63, 0xc9, 0x18, 0x16, 0x46, 0xf6, 0xb1, 0x17, 0xd8, 0xdd, 0x6a, 0xf1, 0xe6, 0xdc, 0xdb,
+ 0x8b, 0xb7, 0xee, 0x37, 0x5e, 0xd5, 0x3a, 0x1b, 0x5a, 0xbb, 0x7b, 0x76, 0x68, 0x0f, 0x29, 0xa7,
+ 0xe1, 0xe6, 0x8a, 0x16, 0xba, 0xb0, 0xa7, 0x44, 0xa0, 0x91, 0x45, 0x7e, 0x1b, 0x60, 0x64, 0xc8,
+ 0x58, 0x75, 0xfe, 0xc2, 0x25, 0x13, 0x2d, 0x19, 0x22, 0x10, 0xc3, 0x84, 0x44, 0x72, 0x1b, 0x96,
+ 0x5d, 0xff, 0x28, 0x70, 0x6c, 0x31, 0xb1, 0x9d, 0xe3, 0x11, 0xad, 0x2e, 0x48, 0x35, 0x91, 0xd3,
+ 0x93, 0xda, 0xf2, 0xbd, 0x14, 0x06, 0x33, 0x94, 0xe4, 0x6b, 0xb0, 0x10, 0x06, 0x1e, 0x6d, 0xe2,
+ 0xa3, 0x6a, 0x49, 0x36, 0x8a, 0x86, 0x89, 0x0a, 0x8c, 0x06, 0x5f, 0xff, 0xe7, 0x3c, 0x5c, 0x6f,
+ 0x86, 0xfd, 0xe0, 0xc3, 0x20, 0x3c, 0xec, 0x79, 0xc1, 0x33, 0x63, 0x7f, 0x3e, 0xcc, 0xb3, 0x60,
+ 0x1c, 0x3a, 0xca, 0xf2, 0x66, 0x1a, 0x7a, 0x33, 0xe4, 0x6e, 0xcf, 0x76, 0x78, 0x5b, 0x77, 0x71,
+ 0x13, 0xc4, 0x2c, 0x5b, 0x92, 0x3b, 0x6a, 0x29, 0xe4, 0x2e, 0x94, 0x83, 0x91, 0x70, 0x0b, 0x61,
+ 0x10, 0x79, 0xd9, 0xe9, 0xaf, 0xeb, 0x4e, 0x97, 0x77, 0x0d, 0xe2, 0xf9, 0x49, 0xed, 0x46, 0xb2,
+ 0xb3, 0x11, 0x02, 0xe3, 0xc6, 0x99, 0x89, 0x9b, 0xbb, 0xec, 0x89, 0xab, 0xff, 0x4c, 0xb8, 0x73,
+ 0x66, 0xc8, 0xc4, 0x82, 0x3c, 0x7b, 0x4f, 0xab, 0xf2, 0x57, 0xcf, 0xde, 0x19, 0x15, 0x23, 0x1b,
+ 0xd6, 0x7b, 0x86, 0xe1, 0xe6, 0xfc, 0xe9, 0x49, 0x2d, 0x6f, 0xbd, 0x87, 0x79, 0xf6, 0x1e, 0xa9,
+ 0xc3, 0xbc, 0xeb, 0x7b, 0xae, 0x4f, 0xb5, 0xc2, 0xa4, 0x5e, 0xef, 0x49, 0x08, 0x6a, 0x0c, 0xe9,
+ 0x42, 0xa1, 0xe7, 0x7a, 0x54, 0x3b, 0xed, 0xce, 0xab, 0xeb, 0x61, 0xc7, 0xf5, 0x68, 0xd4, 0x8b,
+ 0xd2, 0xe9, 0x49, 0xad, 0x20, 0x20, 0x28, 0xb9, 0x93, 0x8f, 0x61, 0x6e, 0x1c, 0x7a, 0xd2, 0x91,
+ 0x17, 0x6f, 0x6d, 0xbf, 0xba, 0x90, 0x7d, 0x6c, 0x47, 0x32, 0x16, 0x4e, 0x4f, 0x6a, 0x73, 0xfb,
+ 0xd8, 0x46, 0xc1, 0x9a, 0xec, 0x43, 0xd9, 0x09, 0xfc, 0x9e, 0xdb, 0x1f, 0xda, 0xa3, 0x6a, 0x51,
+ 0xca, 0x79, 0x7b, 0x5a, 0x04, 0x6a, 0x49, 0xa2, 0x87, 0xf6, 0x68, 0x22, 0x08, 0xb5, 0x4c, 0x73,
+ 0x8c, 0x39, 0x89, 0x8e, 0xf7, 0x5d, 0x5e, 0x9d, 0x9f, 0xb5, 0xe3, 0x77, 0x5c, 0x9e, 0xee, 0xf8,
+ 0x1d, 0x97, 0xa3, 0x60, 0x4d, 0x1c, 0x28, 0x85, 0x54, 0xbb, 0xd2, 0x82, 0x14, 0xf3, 0xed, 0x73,
+ 0xcf, 0x3f, 0x6a, 0x06, 0x9b, 0x95, 0xd3, 0x93, 0x5a, 0xc9, 0xfc, 0x61, 0xc4, 0xb8, 0xfe, 0xf7,
+ 0x05, 0xb8, 0xd1, 0xfc, 0xde, 0x38, 0xa4, 0xdb, 0x82, 0xc1, 0xdd, 0xf1, 0x01, 0x33, 0x7e, 0x7c,
+ 0x13, 0x0a, 0xbd, 0xa7, 0x5d, 0x5f, 0xaf, 0x1f, 0x15, 0x6d, 0xbb, 0x85, 0x9d, 0x0f, 0xb6, 0x1e,
+ 0xa1, 0xc4, 0x88, 0x60, 0x31, 0x18, 0x1f, 0xc8, 0x45, 0x26, 0x9f, 0x0e, 0x16, 0x77, 0x15, 0x18,
+ 0x0d, 0x9e, 0x8c, 0xe0, 0x3a, 0x1b, 0xd8, 0x21, 0xed, 0x46, 0x8b, 0x84, 0x6c, 0x76, 0xae, 0x05,
+ 0xe1, 0x8d, 0xd3, 0x93, 0xda, 0x75, 0x6b, 0x92, 0x0b, 0x4e, 0x63, 0x4d, 0xba, 0xb0, 0x92, 0x01,
+ 0x6b, 0x23, 0x3b, 0xa3, 0xb4, 0xeb, 0xa7, 0x27, 0xb5, 0x95, 0x8c, 0x34, 0xcc, 0xb2, 0xfc, 0x7f,
+ 0xba, 0xc4, 0xd4, 0xfb, 0x70, 0xa3, 0x15, 0xf8, 0x5d, 0x57, 0x44, 0x28, 0x86, 0x94, 0x51, 0xbe,
+ 0x79, 0xdc, 0x71, 0x87, 0x54, 0x18, 0x8d, 0x13, 0x06, 0x13, 0x46, 0xd3, 0x0a, 0x03, 0x1f, 0x25,
+ 0x86, 0x7c, 0x03, 0x4a, 0x22, 0xa5, 0xf9, 0x5e, 0x10, 0x05, 0x9f, 0xab, 0x9a, 0xaa, 0xd4, 0xd1,
+ 0x70, 0x8c, 0x28, 0xea, 0x3f, 0xca, 0xc1, 0x1b, 0x19, 0x49, 0xad, 0xd0, 0xe5, 0x34, 0x74, 0x6d,
+ 0xc2, 0x60, 0xfe, 0x40, 0x4a, 0xd5, 0xd1, 0x71, 0xf7, 0xd5, 0x15, 0x30, 0x75, 0x30, 0x2a, 0x2a,
+ 0xaa, 0x6f, 0xd4, 0xa2, 0xea, 0x7f, 0x5b, 0x84, 0xa5, 0xd6, 0x98, 0xf1, 0x60, 0x68, 0xfc, 0x64,
+ 0x5d, 0x64, 0x38, 0xe1, 0x11, 0x0d, 0xf7, 0xb1, 0xad, 0xc7, 0x7d, 0xcd, 0xac, 0x3f, 0x96, 0x41,
+ 0x60, 0x4c, 0x23, 0xd2, 0x17, 0x46, 0x9d, 0x71, 0xa8, 0xc6, 0x5f, 0x8a, 0xd3, 0x17, 0x4b, 0x42,
+ 0x51, 0x63, 0xc9, 0x3e, 0x80, 0x43, 0x43, 0xae, 0x4c, 0xf3, 0x7c, 0xae, 0xb2, 0x2c, 0xe6, 0xae,
+ 0x15, 0x35, 0xc6, 0x04, 0x23, 0x72, 0x1f, 0x88, 0xea, 0x8b, 0x70, 0x93, 0xdd, 0x23, 0x1a, 0x86,
+ 0x6e, 0x97, 0xea, 0x4c, 0x6a, 0x55, 0x77, 0x85, 0x58, 0x13, 0x14, 0x38, 0xa5, 0x15, 0x61, 0x50,
+ 0x60, 0x23, 0xea, 0x68, 0xdb, 0xff, 0x60, 0x86, 0x09, 0x48, 0xaa, 0xb4, 0x61, 0x8d, 0xa8, 0xb3,
+ 0xed, 0xf3, 0xf0, 0x38, 0xb6, 0x20, 0x01, 0x42, 0x29, 0xec, 0xb5, 0xe7, 0x57, 0x09, 0x9f, 0x5f,
+ 0xb8, 0x3c, 0x9f, 0x5f, 0xfd, 0x16, 0x94, 0x23, 0xbd, 0x90, 0xab, 0x30, 0x77, 0x48, 0x8f, 0x95,
+ 0xb9, 0xa1, 0xf8, 0x24, 0x5f, 0x80, 0xe2, 0x91, 0xed, 0x8d, 0xb5, 0x53, 0xa1, 0xfa, 0xb9, 0x9d,
+ 0xdf, 0xc8, 0xd5, 0xff, 0x33, 0x07, 0xb0, 0x65, 0x73, 0x7b, 0xc7, 0xf5, 0xb8, 0x8a, 0xeb, 0x23,
+ 0x9b, 0x0f, 0xb2, 0x2e, 0xba, 0x67, 0xf3, 0x01, 0x4a, 0x0c, 0xf9, 0x06, 0x14, 0xb8, 0x48, 0x1b,
+ 0x95, 0x7b, 0x56, 0x0d, 0x85, 0x48, 0x10, 0x9f, 0x9f, 0xd4, 0x4a, 0xf7, 0xad, 0xdd, 0x47, 0x32,
+ 0x79, 0x94, 0x54, 0xa4, 0x66, 0x04, 0x8b, 0x84, 0xa9, 0xbc, 0x59, 0x3e, 0x3d, 0xa9, 0x15, 0x1f,
+ 0x0b, 0x80, 0xee, 0x03, 0x79, 0x1f, 0xc0, 0x09, 0x86, 0x42, 0x81, 0x3c, 0x08, 0xb5, 0xa1, 0xdd,
+ 0x34, 0x3a, 0x6e, 0x45, 0x98, 0xe7, 0xa9, 0x3f, 0x4c, 0xb4, 0x91, 0x31, 0x83, 0x0e, 0x47, 0x9e,
+ 0xcd, 0xa9, 0x5c, 0xc1, 0x93, 0x31, 0x43, 0xc3, 0x31, 0xa2, 0xa8, 0xff, 0x59, 0x0e, 0x8a, 0x72,
+ 0x35, 0x23, 0x43, 0x58, 0x70, 0x02, 0x9f, 0xd3, 0x4f, 0xb8, 0x0e, 0x11, 0x33, 0x64, 0x31, 0x92,
+ 0x63, 0x4b, 0x71, 0xdb, 0x5c, 0x14, 0x33, 0xa4, 0x7f, 0xd0, 0xc8, 0x20, 0x6f, 0x42, 0xa1, 0x6b,
+ 0x73, 0x5b, 0xea, 0xad, 0xa2, 0x32, 0x1d, 0xa1, 0x77, 0x94, 0xd0, 0xdb, 0xa5, 0x3f, 0xfd, 0xf3,
+ 0xda, 0x95, 0x1f, 0xfc, 0xdb, 0xcd, 0x2b, 0xf5, 0x9f, 0xe5, 0xa1, 0x92, 0x64, 0x47, 0x56, 0x21,
+ 0xef, 0x76, 0xf5, 0x84, 0x80, 0x1e, 0x59, 0xfe, 0xde, 0x16, 0xe6, 0xdd, 0xae, 0x8c, 0x16, 0x2a,
+ 0x07, 0xc8, 0xa7, 0x8b, 0x9d, 0x4c, 0x1a, 0xfc, 0xcb, 0xb0, 0x28, 0xbc, 0xe3, 0x88, 0x86, 0x4c,
+ 0x24, 0xc2, 0x73, 0x92, 0xf8, 0xba, 0x26, 0x5e, 0x14, 0x96, 0xf3, 0x58, 0xa1, 0x30, 0x49, 0x27,
+ 0xac, 0x41, 0xce, 0x75, 0x21, 0x6d, 0x0d, 0x89, 0xf9, 0x6d, 0xc2, 0x8a, 0xe8, 0xbf, 0x1c, 0xa4,
+ 0xcf, 0x25, 0xb1, 0x9a, 0x83, 0x37, 0x34, 0xf1, 0x8a, 0x18, 0x64, 0x4b, 0xa1, 0x65, 0xbb, 0x2c,
+ 0xbd, 0x48, 0x14, 0xd8, 0xf8, 0xe0, 0x09, 0x75, 0x54, 0xbe, 0x94, 0x48, 0x14, 0x2c, 0x05, 0x46,
+ 0x83, 0x27, 0x6d, 0x28, 0x88, 0xe0, 0xaf, 0x13, 0x9e, 0xaf, 0x27, 0xc2, 0x5d, 0x54, 0x19, 0xc7,
+ 0x73, 0x24, 0x0a, 0x70, 0x11, 0x00, 0x65, 0xb4, 0x8e, 0xfb, 0x2e, 0xe2, 0xb5, 0xe4, 0x92, 0xd0,
+ 0xf9, 0x5f, 0xce, 0xc1, 0x8a, 0xd4, 0xf9, 0x16, 0x1d, 0x51, 0xbf, 0x4b, 0x7d, 0xe7, 0x58, 0x8c,
+ 0xdd, 0x8f, 0x2b, 0xe4, 0xa8, 0xbd, 0xcc, 0x29, 0x24, 0x46, 0x8c, 0x5d, 0xda, 0x85, 0xd2, 0x75,
+ 0x22, 0xd3, 0x89, 0xc6, 0xbe, 0x9d, 0x46, 0x63, 0x96, 0x5e, 0x2c, 0x0f, 0x12, 0x14, 0xe5, 0x3b,
+ 0x89, 0xe5, 0x61, 0xdb, 0x20, 0x30, 0xa6, 0x21, 0x47, 0xb0, 0xd0, 0x93, 0x9e, 0xca, 0x74, 0xc2,
+ 0xb2, 0x3b, 0xa3, 0xd1, 0xc6, 0x23, 0x56, 0x11, 0x40, 0x59, 0xaf, 0xfa, 0x66, 0x68, 0x84, 0x91,
+ 0xdf, 0xcd, 0x41, 0x99, 0x87, 0xb6, 0xcf, 0x7a, 0x41, 0x38, 0xd4, 0x89, 0x72, 0xe7, 0xc2, 0x44,
+ 0x77, 0x0c, 0x67, 0xaa, 0x93, 0xea, 0x08, 0x80, 0xb1, 0xd4, 0xfa, 0x3f, 0xce, 0xc1, 0x8d, 0xa9,
+ 0x7d, 0x26, 0x07, 0xda, 0x2e, 0x94, 0x1f, 0x6f, 0xcd, 0x10, 0x71, 0xdd, 0x21, 0xd5, 0x7a, 0x28,
+ 0xa5, 0xad, 0x25, 0x19, 0x2e, 0xf2, 0x97, 0x10, 0x2e, 0x7a, 0x3a, 0x5c, 0xa8, 0x42, 0x73, 0x86,
+ 0x21, 0xc5, 0xc1, 0x3d, 0x36, 0xe2, 0x38, 0xf0, 0x10, 0x17, 0x8a, 0xf4, 0x93, 0x91, 0x34, 0xa7,
+ 0x19, 0x05, 0x6d, 0x7f, 0x32, 0x0a, 0xb5, 0xa0, 0x25, 0x2d, 0xa8, 0x28, 0x60, 0x0c, 0x95, 0x84,
+ 0xfa, 0xc7, 0xb0, 0xfa, 0xe2, 0x79, 0x17, 0x61, 0xee, 0xc9, 0xd3, 0x6c, 0x98, 0xbb, 0xff, 0x01,
+ 0xe6, 0x9f, 0x3c, 0x95, 0x61, 0xce, 0x09, 0xdd, 0x11, 0x9f, 0x08, 0x73, 0x12, 0x8a, 0x1a, 0x2b,
+ 0x82, 0x3b, 0xc4, 0xdd, 0x10, 0x2e, 0x2c, 0x24, 0x67, 0x5d, 0x58, 0x50, 0xa0, 0xc4, 0x10, 0x1f,
+ 0xe6, 0x7b, 0x2e, 0xf5, 0xba, 0xac, 0x9a, 0x97, 0xc3, 0x9f, 0x61, 0x4e, 0xf5, 0x92, 0xbc, 0x23,
+ 0xd8, 0xc5, 0x1d, 0x94, 0xbf, 0x0c, 0xb5, 0x94, 0xfa, 0x3b, 0x50, 0x49, 0x16, 0xbc, 0x2f, 0x5f,
+ 0x6e, 0xeb, 0x7f, 0x57, 0x80, 0xc5, 0x44, 0x15, 0x48, 0xde, 0x52, 0x25, 0xb1, 0x6a, 0xb0, 0xa8,
+ 0x1b, 0xc4, 0xf5, 0xec, 0x77, 0x60, 0xd9, 0xf1, 0x02, 0x9f, 0x6e, 0xb9, 0xa1, 0x4c, 0xf6, 0x8e,
+ 0xb5, 0xc6, 0xbe, 0xa8, 0x29, 0x97, 0x5b, 0x29, 0x2c, 0x66, 0xa8, 0x89, 0x03, 0x45, 0x27, 0xa4,
+ 0x5d, 0xa6, 0x33, 0xca, 0xcd, 0x99, 0x4a, 0xd7, 0x96, 0xe0, 0xa4, 0xd6, 0x7c, 0xf9, 0x89, 0x8a,
+ 0x37, 0xf9, 0x4d, 0xa8, 0x30, 0x36, 0x90, 0x29, 0xa9, 0xcc, 0x5e, 0xcf, 0x55, 0x7a, 0x5d, 0x3d,
+ 0x3d, 0xa9, 0x55, 0x2c, 0xeb, 0x6e, 0xd4, 0x1c, 0x53, 0xcc, 0x44, 0x3a, 0xd0, 0x73, 0x3d, 0x2a,
+ 0x54, 0x98, 0x4d, 0x07, 0x76, 0x34, 0x1c, 0x23, 0x0a, 0x61, 0x59, 0x07, 0xa1, 0xed, 0x3b, 0x03,
+ 0xbd, 0xf6, 0x44, 0x13, 0xb7, 0x29, 0xa1, 0xa8, 0xb1, 0x42, 0xed, 0xdc, 0xee, 0xeb, 0xbd, 0xb2,
+ 0x48, 0xed, 0x1d, 0xbb, 0x8f, 0x02, 0x2e, 0xd0, 0x21, 0xed, 0xe9, 0x5d, 0xb1, 0x08, 0x8d, 0xb4,
+ 0x87, 0x02, 0x4e, 0x86, 0x30, 0x1f, 0xd2, 0x61, 0xc0, 0x69, 0xb5, 0x2c, 0x87, 0x7a, 0x6f, 0x26,
+ 0xb5, 0xa2, 0x64, 0xa5, 0xf6, 0x1d, 0x54, 0x19, 0xa2, 0x20, 0xa8, 0x85, 0xd4, 0xff, 0x26, 0x07,
+ 0x25, 0xa3, 0x7e, 0xb2, 0x0b, 0xa5, 0x31, 0xa3, 0x61, 0xb4, 0x96, 0x9d, 0x59, 0xd1, 0x72, 0x53,
+ 0x60, 0x5f, 0x37, 0xc5, 0x88, 0x89, 0x60, 0x38, 0xb2, 0x19, 0x7b, 0x16, 0x84, 0xdd, 0xf3, 0xed,
+ 0x03, 0x4b, 0x86, 0x7b, 0xba, 0x29, 0x46, 0x4c, 0xea, 0x1f, 0xc0, 0x4a, 0x66, 0x54, 0x67, 0x58,
+ 0x7c, 0xdf, 0x84, 0xc2, 0x38, 0xf4, 0x94, 0xdf, 0x96, 0x55, 0xb0, 0xde, 0xc7, 0xb6, 0x85, 0x12,
+ 0x5a, 0xff, 0x8f, 0x79, 0x58, 0xbc, 0xdb, 0xe9, 0xec, 0x99, 0x32, 0xec, 0x25, 0x5e, 0x93, 0x48,
+ 0xda, 0xf3, 0x97, 0x58, 0xa8, 0xef, 0xc3, 0x1c, 0xf7, 0x8c, 0xab, 0xdd, 0x3e, 0xf7, 0xf6, 0x4d,
+ 0xa7, 0x6d, 0x69, 0x23, 0x90, 0x5b, 0x43, 0x9d, 0xb6, 0x85, 0x82, 0x9f, 0xb0, 0xe9, 0x21, 0xe5,
+ 0x83, 0xa0, 0x9b, 0xdd, 0x01, 0x7f, 0x28, 0xa1, 0xa8, 0xb1, 0x99, 0x52, 0xa9, 0x78, 0xe9, 0xa5,
+ 0xd2, 0xd7, 0x60, 0x41, 0xac, 0xac, 0xc1, 0x58, 0x25, 0x7e, 0x73, 0xb1, 0xa6, 0x3a, 0x0a, 0x8c,
+ 0x06, 0x4f, 0xfa, 0x50, 0x3e, 0xb0, 0x99, 0xeb, 0x34, 0xc7, 0x7c, 0xa0, 0xb3, 0xbf, 0xf3, 0xeb,
+ 0x6b, 0xd3, 0x70, 0x50, 0x39, 0x46, 0xf4, 0x8b, 0x31, 0x6f, 0xf2, 0x7d, 0x58, 0x18, 0x50, 0xbb,
+ 0x2b, 0x14, 0x52, 0x92, 0x0a, 0xc1, 0x57, 0x57, 0x48, 0xc2, 0x00, 0x1b, 0x77, 0x15, 0x53, 0x55,
+ 0xb7, 0xc6, 0x3b, 0x61, 0x0a, 0x8a, 0x46, 0x26, 0x39, 0x82, 0x25, 0x55, 0xdf, 0x6b, 0x4c, 0xb5,
+ 0x2c, 0x3b, 0xf1, 0x6b, 0xe7, 0xdf, 0xda, 0x4d, 0x70, 0xd9, 0xbc, 0x76, 0x7a, 0x52, 0x5b, 0x4a,
+ 0x42, 0x18, 0xa6, 0xc5, 0xac, 0xde, 0x86, 0x4a, 0xb2, 0x87, 0xe7, 0xaa, 0x20, 0x7f, 0x7f, 0x0e,
+ 0xae, 0x3d, 0xd8, 0xb0, 0xcc, 0xf6, 0xe1, 0x5e, 0xe0, 0xb9, 0xce, 0x31, 0xf9, 0x1d, 0x98, 0xf7,
+ 0xec, 0x03, 0xea, 0xb1, 0x6a, 0x4e, 0x0e, 0xe1, 0xc3, 0x57, 0xd7, 0xe3, 0x04, 0xf3, 0x46, 0x5b,
+ 0x72, 0x56, 0xca, 0x8c, 0xac, 0x5b, 0x01, 0x51, 0x8b, 0x25, 0x1f, 0xc1, 0xc2, 0x81, 0xed, 0x1c,
+ 0x06, 0xbd, 0x9e, 0x8e, 0x52, 0x1b, 0xaf, 0x60, 0x30, 0xb2, 0xbd, 0xca, 0xd0, 0xf4, 0x0f, 0x1a,
+ 0xae, 0xc4, 0x82, 0x1b, 0x34, 0x0c, 0x83, 0x70, 0xd7, 0xd7, 0x28, 0x6d, 0xb5, 0xd2, 0x9f, 0x4b,
+ 0x9b, 0x6f, 0xe9, 0x7e, 0xdd, 0xd8, 0x9e, 0x46, 0x84, 0xd3, 0xdb, 0xae, 0x7e, 0x1b, 0x16, 0x13,
+ 0x83, 0x3b, 0xd7, 0x3c, 0xfc, 0x78, 0x1e, 0x2a, 0x0f, 0xec, 0xde, 0xa1, 0x7d, 0xc6, 0xa0, 0xf7,
+ 0x15, 0x28, 0xf2, 0x60, 0xe4, 0x3a, 0x3a, 0x43, 0x88, 0x72, 0xb6, 0x8e, 0x00, 0xa2, 0xc2, 0x89,
+ 0x02, 0x65, 0x64, 0x87, 0x5c, 0x6e, 0x7f, 0xc9, 0x81, 0x15, 0xe3, 0x02, 0x65, 0xcf, 0x20, 0x30,
+ 0xa6, 0xc9, 0x04, 0x95, 0xc2, 0xa5, 0x07, 0x95, 0x0d, 0xa8, 0x84, 0xf4, 0xe9, 0xd8, 0x95, 0x1b,
+ 0xb1, 0x87, 0x4c, 0xa6, 0x00, 0xc5, 0xf8, 0x80, 0x13, 0x13, 0x38, 0x4c, 0x51, 0x8a, 0xc4, 0xc1,
+ 0x09, 0x86, 0xa3, 0x90, 0x32, 0x26, 0xe3, 0x51, 0x29, 0x4e, 0x1c, 0x5a, 0x1a, 0x8e, 0x11, 0x85,
+ 0x48, 0xb4, 0x7a, 0xde, 0x98, 0x0d, 0x76, 0x04, 0x0f, 0x91, 0xcb, 0xca, 0xb0, 0x54, 0x8c, 0x13,
+ 0xad, 0x9d, 0x14, 0x16, 0x33, 0xd4, 0x26, 0xf6, 0x97, 0x2e, 0x38, 0xf6, 0x27, 0x56, 0xb2, 0xf2,
+ 0x25, 0xae, 0x64, 0x4d, 0x58, 0x89, 0x4c, 0xc0, 0xf5, 0xfb, 0x0f, 0xe8, 0x71, 0x15, 0xd2, 0xa5,
+ 0xf0, 0x5e, 0x1a, 0x8d, 0x59, 0x7a, 0xb1, 0x1a, 0x98, 0xed, 0x89, 0xc5, 0xf4, 0x36, 0x80, 0xd9,
+ 0x9a, 0x30, 0x78, 0xf2, 0xeb, 0x50, 0x60, 0x36, 0xf3, 0xaa, 0x95, 0x57, 0x3d, 0xf7, 0x6a, 0x5a,
+ 0x6d, 0xad, 0x3d, 0x99, 0x38, 0x88, 0x7f, 0x94, 0x2c, 0xeb, 0xbb, 0x00, 0xed, 0xa0, 0x6f, 0x3c,
+ 0xa8, 0x09, 0x2b, 0xae, 0xcf, 0x69, 0x78, 0x64, 0x7b, 0x16, 0x75, 0x02, 0xbf, 0xcb, 0xa4, 0x37,
+ 0x15, 0xe2, 0x61, 0xdd, 0x4b, 0xa3, 0x31, 0x4b, 0x5f, 0xff, 0xab, 0x39, 0x58, 0x7c, 0xd4, 0xec,
+ 0x58, 0x67, 0x74, 0xca, 0xc4, 0x66, 0x48, 0xfe, 0x25, 0x9b, 0x21, 0x89, 0xa9, 0x9e, 0x7b, 0x6d,
+ 0xa7, 0x0b, 0x97, 0xef, 0xe0, 0xda, 0x71, 0x8a, 0x17, 0xeb, 0x38, 0xf5, 0x3f, 0x2a, 0xc0, 0xd5,
+ 0xdd, 0x11, 0xf5, 0x3f, 0x1c, 0xb8, 0xec, 0x30, 0x71, 0xca, 0x35, 0x08, 0x18, 0xcf, 0xa6, 0xa1,
+ 0x77, 0x03, 0xc6, 0x51, 0x62, 0x92, 0x56, 0x9b, 0x7f, 0x89, 0xd5, 0xae, 0x43, 0x59, 0x64, 0xae,
+ 0x6c, 0x64, 0x3b, 0x13, 0x7b, 0x3d, 0x8f, 0x0c, 0x02, 0x63, 0x1a, 0x79, 0xe3, 0x62, 0xcc, 0x07,
+ 0x9d, 0xe0, 0x90, 0xfa, 0xe7, 0xab, 0x91, 0xd4, 0x8d, 0x0b, 0xd3, 0x16, 0x63, 0x36, 0xe4, 0x16,
+ 0x80, 0x1d, 0xdf, 0xfe, 0x50, 0xf5, 0x51, 0xa4, 0xf1, 0x66, 0x7c, 0xf7, 0x23, 0x41, 0x95, 0x34,
+ 0xb4, 0xf9, 0xd7, 0x66, 0x68, 0x0b, 0x97, 0x7e, 0x8c, 0x85, 0x50, 0x49, 0xd6, 0xf4, 0x67, 0xd8,
+ 0x1a, 0x37, 0x55, 0x4b, 0xfe, 0x45, 0x55, 0x4b, 0xfd, 0xaf, 0x17, 0x60, 0x69, 0x6f, 0xec, 0x31,
+ 0x3b, 0xbc, 0xc8, 0x45, 0xfa, 0x35, 0x5f, 0x4d, 0x48, 0x1a, 0x48, 0xe1, 0x12, 0x0d, 0x64, 0x04,
+ 0xd7, 0xb9, 0xc7, 0x3a, 0xe1, 0x98, 0xf1, 0x16, 0x0d, 0x39, 0xd3, 0xbb, 0x09, 0xc5, 0x73, 0x1f,
+ 0x1b, 0x77, 0xda, 0x56, 0x96, 0x0b, 0x4e, 0x63, 0x4d, 0x0e, 0x60, 0x95, 0x7b, 0xac, 0xe9, 0x79,
+ 0xc1, 0xb3, 0x7b, 0xbe, 0xca, 0xa0, 0x5b, 0x81, 0xef, 0x53, 0xe9, 0x2b, 0x3a, 0x69, 0xa8, 0xeb,
+ 0xfe, 0xae, 0x76, 0xda, 0xd6, 0x0b, 0x28, 0xf1, 0xe7, 0x70, 0x21, 0x0f, 0xe5, 0xa8, 0x1e, 0xdb,
+ 0x9e, 0xdb, 0xb5, 0x39, 0x15, 0xa1, 0x46, 0xda, 0xd4, 0x82, 0x64, 0xfe, 0x65, 0xcd, 0x5c, 0x74,
+ 0x39, 0x4b, 0x82, 0xd3, 0xda, 0xfd, 0x6f, 0xe5, 0x19, 0x5d, 0x58, 0x89, 0x82, 0x8a, 0xd6, 0x7b,
+ 0xf9, 0xdc, 0x07, 0xe8, 0xcd, 0x34, 0x07, 0xcc, 0xb2, 0x24, 0xdf, 0x87, 0x6b, 0x4e, 0xa4, 0x19,
+ 0x9d, 0x29, 0xcb, 0xc4, 0x62, 0x96, 0x6c, 0xfe, 0xc6, 0xe9, 0x49, 0xed, 0x5a, 0x2b, 0xcb, 0x16,
+ 0x27, 0x25, 0xd5, 0x7f, 0x2f, 0x07, 0x65, 0xb4, 0x39, 0x6d, 0xbb, 0x43, 0x97, 0x93, 0x5b, 0x50,
+ 0x18, 0xfb, 0xae, 0x59, 0x0c, 0xd6, 0x8c, 0x77, 0xef, 0xfb, 0x2e, 0x7f, 0x7e, 0x52, 0x5b, 0x8e,
+ 0x08, 0xa9, 0x80, 0xa0, 0xa4, 0x15, 0x09, 0x84, 0xcc, 0xf8, 0x18, 0x67, 0x7b, 0x34, 0x14, 0x08,
+ 0xe9, 0xc8, 0xc5, 0x38, 0x81, 0xc0, 0x34, 0x1a, 0xb3, 0xf4, 0xf5, 0x1f, 0xe7, 0x61, 0xde, 0x92,
+ 0x4e, 0x42, 0x3e, 0x86, 0xd2, 0x90, 0x72, 0x5b, 0xee, 0x0b, 0xab, 0xad, 0x9c, 0x77, 0xce, 0x76,
+ 0x04, 0xb2, 0x2b, 0x33, 0x86, 0x87, 0x94, 0xdb, 0xb1, 0x2f, 0xc7, 0x30, 0x8c, 0xb8, 0x92, 0x9e,
+ 0x3e, 0xb2, 0xcd, 0xcf, 0xba, 0x91, 0xae, 0x7a, 0x6c, 0x8d, 0xa8, 0x33, 0xf5, 0x94, 0xd6, 0x87,
+ 0x79, 0xc6, 0x6d, 0x3e, 0x66, 0xb3, 0x5f, 0x20, 0xd2, 0x92, 0x24, 0xb7, 0xc4, 0xc6, 0xb0, 0xfc,
+ 0x47, 0x2d, 0xa5, 0xfe, 0x2f, 0x39, 0x00, 0x45, 0xd8, 0x76, 0x19, 0x27, 0xbf, 0x35, 0xa1, 0xc8,
+ 0xc6, 0xd9, 0x14, 0x29, 0x5a, 0x4b, 0x35, 0x46, 0xa5, 0x81, 0x81, 0x24, 0x94, 0x48, 0xa1, 0xe8,
+ 0x72, 0x3a, 0x34, 0x7b, 0xca, 0xef, 0xcf, 0x3a, 0xb6, 0x38, 0xea, 0xdf, 0x13, 0x6c, 0x51, 0x71,
+ 0xaf, 0xff, 0x45, 0xc1, 0x8c, 0x49, 0x28, 0x96, 0xfc, 0x30, 0x07, 0x95, 0xae, 0xd9, 0x59, 0x77,
+ 0xa9, 0xa9, 0xbb, 0xef, 0x5d, 0xd8, 0x21, 0x4d, 0x5c, 0x44, 0x6d, 0x25, 0xc4, 0x60, 0x4a, 0x28,
+ 0x09, 0xa0, 0xc4, 0x55, 0x04, 0x37, 0xc3, 0x6f, 0xce, 0xbc, 0x16, 0x24, 0xce, 0x73, 0x35, 0x6b,
+ 0x8c, 0x84, 0x10, 0x2f, 0x71, 0xfa, 0x3b, 0xf3, 0x9e, 0xb5, 0x39, 0x2f, 0x56, 0x5b, 0x95, 0x93,
+ 0xa7, 0xc7, 0xe4, 0x3e, 0x10, 0x5d, 0xb7, 0xef, 0xd8, 0xae, 0x47, 0xbb, 0x18, 0x8c, 0x7d, 0xb5,
+ 0xcd, 0x56, 0x8a, 0xaf, 0x47, 0x6c, 0x4f, 0x50, 0xe0, 0x94, 0x56, 0xa2, 0x52, 0x95, 0xfd, 0xd9,
+ 0x1c, 0xb3, 0x44, 0x32, 0x16, 0x29, 0x79, 0x3b, 0x81, 0xc3, 0x14, 0x25, 0x79, 0x1b, 0x4a, 0x21,
+ 0x1d, 0x79, 0xae, 0x63, 0xab, 0x4a, 0xb5, 0x68, 0x2e, 0x70, 0x29, 0x18, 0x46, 0xd8, 0x7a, 0x00,
+ 0x95, 0xa4, 0x7f, 0x90, 0x8f, 0x22, 0xbf, 0x53, 0x66, 0xff, 0xad, 0xf3, 0xd7, 0x4e, 0x3f, 0xdf,
+ 0xd1, 0xfe, 0x21, 0x0f, 0x15, 0xcb, 0xb3, 0x9d, 0x28, 0x85, 0x4e, 0xe7, 0x26, 0xb9, 0xd7, 0x50,
+ 0x2e, 0x00, 0x93, 0xfd, 0x91, 0x59, 0x74, 0xfe, 0xdc, 0xf7, 0x64, 0xac, 0xa8, 0x31, 0x26, 0x18,
+ 0x89, 0xbc, 0xdf, 0x19, 0xd8, 0xbe, 0x4f, 0x3d, 0x9d, 0xca, 0x47, 0x69, 0x4a, 0x4b, 0x81, 0xd1,
+ 0xe0, 0x05, 0xe9, 0x90, 0x32, 0x66, 0xf7, 0xcd, 0x39, 0x7a, 0x44, 0xfa, 0x50, 0x81, 0xd1, 0xe0,
+ 0xeb, 0xff, 0x3d, 0x07, 0xc4, 0xe2, 0xb6, 0xdf, 0xb5, 0xc3, 0xee, 0x83, 0x0d, 0xeb, 0x75, 0x5d,
+ 0x9a, 0x7d, 0x34, 0x79, 0x69, 0xf6, 0x9d, 0x69, 0x97, 0x66, 0xbf, 0xfc, 0x60, 0x7c, 0x40, 0x43,
+ 0x9f, 0x72, 0xca, 0xcc, 0x06, 0xdd, 0xff, 0xc5, 0xab, 0xb3, 0xa4, 0x07, 0x4b, 0x23, 0x9b, 0x3b,
+ 0x03, 0x8b, 0x87, 0x36, 0xa7, 0xfd, 0x63, 0x3d, 0x0f, 0xef, 0xeb, 0x66, 0x4b, 0x7b, 0x49, 0xe4,
+ 0xf3, 0x93, 0xda, 0x2f, 0xbe, 0xe8, 0xc6, 0x3d, 0x3f, 0x1e, 0x51, 0xd6, 0x90, 0xe4, 0xf2, 0x2e,
+ 0x43, 0x9a, 0xad, 0x28, 0xae, 0x3c, 0xf7, 0x88, 0xaa, 0x95, 0x55, 0xfa, 0x73, 0x29, 0xee, 0x5b,
+ 0x3b, 0xc2, 0x60, 0x82, 0xaa, 0xbe, 0x0e, 0x15, 0xe5, 0x42, 0x7a, 0xdf, 0xb4, 0x06, 0x45, 0x5b,
+ 0x64, 0x86, 0xd2, 0x55, 0x8a, 0xea, 0xf0, 0x4c, 0xa6, 0x8a, 0xa8, 0xe0, 0xf5, 0x3f, 0x28, 0x41,
+ 0x14, 0x99, 0x88, 0x33, 0xb1, 0x90, 0x9d, 0xff, 0x16, 0xe8, 0x43, 0xcd, 0x40, 0x05, 0x11, 0xf3,
+ 0x97, 0x58, 0xcf, 0xf4, 0x9d, 0x30, 0xd7, 0xa1, 0x4d, 0xc7, 0x09, 0xc6, 0xfa, 0xb6, 0x42, 0x7e,
+ 0xf2, 0x4e, 0x58, 0x9a, 0x02, 0xa7, 0xb4, 0x22, 0xf7, 0xe5, 0x7d, 0x5b, 0x6e, 0x0b, 0x9d, 0xea,
+ 0x78, 0xfd, 0xd6, 0x0b, 0xee, 0xdb, 0x2a, 0xa2, 0xe8, 0x92, 0xad, 0xfa, 0xc5, 0xb8, 0x39, 0xd9,
+ 0x86, 0x85, 0xa3, 0xc0, 0x1b, 0x0f, 0xa9, 0xd9, 0x86, 0x58, 0x9d, 0xc6, 0xe9, 0xb1, 0x24, 0x49,
+ 0xd4, 0xe5, 0xaa, 0x09, 0x9a, 0xb6, 0x84, 0xc2, 0x8a, 0x4c, 0xc2, 0x5d, 0x7e, 0xac, 0x4f, 0xe1,
+ 0x75, 0x09, 0xf1, 0xd5, 0x69, 0xec, 0xf6, 0x82, 0xae, 0x95, 0xa6, 0xd6, 0x97, 0x41, 0xd3, 0x40,
+ 0xcc, 0xf2, 0x24, 0x3f, 0xca, 0x41, 0xc5, 0x0f, 0xba, 0xd4, 0x84, 0x17, 0x5d, 0x4b, 0x77, 0x66,
+ 0x5f, 0xad, 0x1a, 0x8f, 0x12, 0x6c, 0xd5, 0xa6, 0x78, 0xb4, 0x8a, 0x24, 0x51, 0x98, 0x92, 0x4f,
+ 0xf6, 0x61, 0x91, 0x07, 0x9e, 0xf6, 0x51, 0x53, 0x60, 0xaf, 0x4d, 0x1b, 0x73, 0x27, 0x22, 0x8b,
+ 0xef, 0x0c, 0xc5, 0x30, 0x86, 0x49, 0x3e, 0xc4, 0x87, 0xab, 0xee, 0xd0, 0xee, 0xd3, 0xbd, 0xb1,
+ 0xe7, 0xa9, 0x98, 0x6a, 0x8e, 0x52, 0xa6, 0x5e, 0xac, 0x16, 0x81, 0xc8, 0xd3, 0x7e, 0x41, 0x7b,
+ 0x34, 0xa4, 0xbe, 0x43, 0xa3, 0x5b, 0x65, 0x57, 0xef, 0x65, 0x38, 0xe1, 0x04, 0x6f, 0x72, 0x07,
+ 0xae, 0x8d, 0x42, 0x37, 0x90, 0xaa, 0xf6, 0x6c, 0xa6, 0xd6, 0xd2, 0xb2, 0x34, 0xce, 0x2f, 0x69,
+ 0x36, 0xd7, 0xf6, 0xb2, 0x04, 0x38, 0xd9, 0x46, 0xac, 0xaa, 0x06, 0x28, 0x6b, 0x0c, 0xbd, 0xaa,
+ 0x9a, 0xb6, 0x18, 0x61, 0xc9, 0x0e, 0x94, 0xec, 0x5e, 0xcf, 0xf5, 0x05, 0xe5, 0xa2, 0x34, 0x95,
+ 0x37, 0xa7, 0x0d, 0xad, 0xa9, 0x69, 0x14, 0x1f, 0xf3, 0x87, 0x51, 0xdb, 0xd5, 0xef, 0xc2, 0xb5,
+ 0x89, 0xa9, 0x3b, 0xd7, 0x96, 0xbf, 0x05, 0x10, 0xdf, 0x58, 0x21, 0x5f, 0x81, 0x22, 0xe3, 0x76,
+ 0x68, 0x2a, 0x94, 0x28, 0x6b, 0xb4, 0x04, 0x10, 0x15, 0x8e, 0xdc, 0x84, 0x02, 0xe3, 0xc1, 0x28,
+ 0xbb, 0x47, 0x61, 0xf1, 0x60, 0x84, 0x12, 0x53, 0xff, 0xac, 0x00, 0x0b, 0x66, 0xe5, 0x61, 0x89,
+ 0xec, 0x2a, 0x37, 0xeb, 0xd1, 0xb5, 0x66, 0xfa, 0xd2, 0x24, 0x2b, 0xbd, 0x5c, 0xe4, 0x2f, 0x7d,
+ 0xb9, 0x38, 0x84, 0xf9, 0x91, 0x0c, 0xc6, 0x3a, 0x40, 0xdd, 0x99, 0x5d, 0xb6, 0x64, 0xa7, 0xd6,
+ 0x5a, 0xf5, 0x8d, 0x5a, 0x04, 0x79, 0x0a, 0x4b, 0x21, 0xe5, 0xe1, 0x71, 0x6a, 0x6d, 0x9a, 0xa5,
+ 0xbc, 0x95, 0x87, 0x7d, 0x98, 0x64, 0x89, 0x69, 0x09, 0x64, 0x04, 0xe5, 0xd0, 0x14, 0xab, 0x3a,
+ 0xd4, 0xb5, 0x5e, 0x7d, 0x88, 0x51, 0xdd, 0xab, 0x22, 0x75, 0xf4, 0x8b, 0xb1, 0x90, 0xfa, 0x7f,
+ 0xe5, 0xe0, 0x6a, 0x76, 0x1a, 0xc8, 0x21, 0xcc, 0xb1, 0xd0, 0xd1, 0x66, 0xb5, 0x77, 0x71, 0xf3,
+ 0xab, 0x92, 0x19, 0xb5, 0x5f, 0x61, 0x85, 0x0e, 0x0a, 0x29, 0xc2, 0xec, 0xbb, 0x94, 0xf1, 0xac,
+ 0xd9, 0x6f, 0x51, 0xc6, 0x51, 0x62, 0x48, 0x3b, 0x99, 0xf4, 0xa8, 0x9c, 0xae, 0x31, 0x2d, 0xe9,
+ 0xf9, 0x52, 0x56, 0xde, 0xb4, 0x94, 0xa7, 0xfe, 0xaf, 0x79, 0xf8, 0xe2, 0xf4, 0x8e, 0x91, 0xef,
+ 0xc0, 0x72, 0x54, 0x32, 0x1d, 0x27, 0x1e, 0xe1, 0x45, 0x27, 0x47, 0x5b, 0x29, 0x2c, 0x66, 0xa8,
+ 0x45, 0x96, 0xa1, 0x2f, 0x89, 0x99, 0x97, 0x78, 0x89, 0x2d, 0xdc, 0x56, 0x84, 0xc1, 0x04, 0x15,
+ 0x69, 0xc2, 0x8a, 0xfe, 0xeb, 0x24, 0x8b, 0xa5, 0xc4, 0xf9, 0x4c, 0x2b, 0x8d, 0xc6, 0x2c, 0xbd,
+ 0x48, 0x63, 0x45, 0x36, 0x60, 0x9e, 0x4a, 0x24, 0xd2, 0xd8, 0x2d, 0x05, 0x46, 0x83, 0x17, 0x95,
+ 0x8d, 0xf8, 0xec, 0xa4, 0x6f, 0xe5, 0xc6, 0xe5, 0x63, 0x02, 0x87, 0x29, 0xca, 0xf8, 0xba, 0xb0,
+ 0xba, 0x8d, 0x33, 0x71, 0x5d, 0xb8, 0xfe, 0xd3, 0x1c, 0x2c, 0xa5, 0x9c, 0x8a, 0xf4, 0x60, 0xee,
+ 0x70, 0xc3, 0xd4, 0x33, 0x0f, 0x2e, 0xf0, 0x94, 0x59, 0x59, 0xd0, 0x83, 0x0d, 0x86, 0x42, 0x00,
+ 0x79, 0x12, 0x95, 0x4e, 0x33, 0x5f, 0xff, 0x4b, 0x26, 0x7c, 0x3a, 0x01, 0x4f, 0x57, 0x51, 0xff,
+ 0x54, 0x81, 0x95, 0x4c, 0xb4, 0x3c, 0xc3, 0x95, 0x18, 0x65, 0x18, 0xfa, 0xa9, 0xc2, 0x14, 0xc3,
+ 0x30, 0x8f, 0x18, 0x12, 0x54, 0xa4, 0xaf, 0xb4, 0xa7, 0x02, 0x5d, 0x7b, 0xa6, 0x21, 0x65, 0xaa,
+ 0x96, 0x8c, 0xfa, 0x7e, 0x98, 0x83, 0x8a, 0x9d, 0x78, 0x63, 0xa7, 0xe3, 0xdc, 0xc3, 0x59, 0x4a,
+ 0x99, 0x89, 0xe7, 0x85, 0xea, 0x72, 0x58, 0x12, 0x81, 0x29, 0xa1, 0xc4, 0x81, 0xc2, 0x80, 0x73,
+ 0xf3, 0xd2, 0x6b, 0xfb, 0x42, 0xee, 0x76, 0xa8, 0x33, 0x44, 0x01, 0x40, 0xc9, 0x9c, 0x3c, 0x83,
+ 0xb2, 0xfd, 0x8c, 0xa9, 0x77, 0xb7, 0xfa, 0x09, 0xd8, 0x2c, 0x15, 0x5b, 0xe6, 0x09, 0xaf, 0x3e,
+ 0xdc, 0x31, 0x50, 0x8c, 0x65, 0x91, 0x10, 0xe6, 0x1d, 0xf9, 0x54, 0x42, 0x5f, 0x91, 0xb9, 0x73,
+ 0x41, 0x4f, 0x2e, 0xd4, 0x9a, 0x92, 0x02, 0xa1, 0x96, 0x44, 0xfa, 0x50, 0x3c, 0xb4, 0x7b, 0x87,
+ 0xb6, 0xde, 0x61, 0x9e, 0xc1, 0x2b, 0x92, 0x77, 0x17, 0x94, 0xe7, 0x4b, 0x08, 0x2a, 0xfe, 0x62,
+ 0xea, 0x7c, 0x9b, 0x33, 0xbd, 0xcd, 0x3c, 0xc3, 0xd4, 0x25, 0x4e, 0x63, 0xd5, 0xd4, 0x09, 0x00,
+ 0x4a, 0xe6, 0x62, 0x34, 0xb2, 0xc8, 0xd7, 0x9b, 0xcc, 0xb3, 0xf8, 0x78, 0x62, 0x13, 0x44, 0x8d,
+ 0x46, 0x42, 0x50, 0xf1, 0x17, 0x36, 0x12, 0x98, 0xd3, 0x46, 0x9d, 0x43, 0xce, 0x60, 0x23, 0xd9,
+ 0x83, 0x4b, 0x65, 0x23, 0x11, 0x14, 0x63, 0x59, 0xe4, 0x23, 0x98, 0xf3, 0x82, 0xbe, 0x3e, 0x3a,
+ 0x9f, 0x61, 0x83, 0x37, 0x3e, 0x25, 0x57, 0x8e, 0xde, 0x0e, 0xfa, 0x28, 0x38, 0x93, 0x3f, 0xcc,
+ 0xc1, 0xb2, 0x9d, 0x7a, 0x33, 0x58, 0x5d, 0x9a, 0xf5, 0xa6, 0xfa, 0xd4, 0x37, 0x88, 0xea, 0xc9,
+ 0x72, 0x1a, 0x85, 0x19, 0xd1, 0x32, 0x97, 0x93, 0xe7, 0x6d, 0xd5, 0xe5, 0x59, 0x5d, 0x22, 0x75,
+ 0x6e, 0xa7, 0x73, 0x39, 0x09, 0x42, 0x2d, 0x82, 0xfc, 0x49, 0x4e, 0x2e, 0xb3, 0xc9, 0xc7, 0x62,
+ 0xd5, 0x95, 0x99, 0x1f, 0x3f, 0x4d, 0x7f, 0xe0, 0x96, 0x5a, 0xb9, 0x93, 0x04, 0x98, 0xed, 0x42,
+ 0xdd, 0x81, 0xc5, 0xc4, 0x03, 0xd8, 0x33, 0x9c, 0x63, 0xde, 0x02, 0x38, 0xa2, 0xa1, 0xdb, 0x3b,
+ 0x6e, 0xd1, 0x90, 0xeb, 0x77, 0x68, 0xd1, 0x42, 0xf2, 0x38, 0xc2, 0x60, 0x82, 0x6a, 0xb3, 0xf1,
+ 0xe9, 0xe7, 0x6b, 0x57, 0x3e, 0xfb, 0x7c, 0xed, 0xca, 0x4f, 0x3e, 0x5f, 0xbb, 0xf2, 0x83, 0xd3,
+ 0xb5, 0xdc, 0xa7, 0xa7, 0x6b, 0xb9, 0xcf, 0x4e, 0xd7, 0x72, 0x3f, 0x39, 0x5d, 0xcb, 0xfd, 0xfb,
+ 0xe9, 0x5a, 0xee, 0x8f, 0x7f, 0xba, 0x76, 0xe5, 0x37, 0x4a, 0x66, 0x58, 0xff, 0x13, 0x00, 0x00,
+ 0xff, 0xff, 0xfa, 0x8c, 0xad, 0x5b, 0x55, 0x42, 0x00, 0x00,
}
func (m *AWSLambdaTrigger) Marshal() (dAtA []byte, err error) {
@@ -2199,6 +2232,18 @@ func (m *EventDependency) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.Transform != nil {
+ {
+ size, err := m.Transform.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
+ }
if m.Filters != nil {
{
size, err := m.Filters.MarshalToSizedBuffer(dAtA[:i])
@@ -2304,6 +2349,39 @@ func (m *EventDependencyFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *EventDependencyTransformer) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventDependencyTransformer) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventDependencyTransformer) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i -= len(m.Script)
+ copy(dAtA[i:], m.Script)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Script)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(m.JQ)
+ copy(dAtA[i:], m.JQ)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.JQ)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *ExprFilter) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -4521,6 +4599,10 @@ func (m *EventDependency) Size() (n int) {
l = m.Filters.Size()
n += 1 + l + sovGenerated(uint64(l))
}
+ if m.Transform != nil {
+ l = m.Transform.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
return n
}
@@ -4553,6 +4635,19 @@ func (m *EventDependencyFilter) Size() (n int) {
return n
}
+func (m *EventDependencyTransformer) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.JQ)
+ n += 1 + l + sovGenerated(uint64(l))
+ l = len(m.Script)
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
func (m *ExprFilter) Size() (n int) {
if m == nil {
return 0
@@ -5443,6 +5538,7 @@ func (this *EventDependency) String() string {
`EventSourceName:` + fmt.Sprintf("%v", this.EventSourceName) + `,`,
`EventName:` + fmt.Sprintf("%v", this.EventName) + `,`,
`Filters:` + strings.Replace(this.Filters.String(), "EventDependencyFilter", "EventDependencyFilter", 1) + `,`,
+ `Transform:` + strings.Replace(this.Transform.String(), "EventDependencyTransformer", "EventDependencyTransformer", 1) + `,`,
`}`,
}, "")
return s
@@ -5470,6 +5566,17 @@ func (this *EventDependencyFilter) String() string {
}, "")
return s
}
+func (this *EventDependencyTransformer) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&EventDependencyTransformer{`,
+ `JQ:` + fmt.Sprintf("%v", this.JQ) + `,`,
+ `Script:` + fmt.Sprintf("%v", this.Script) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *ExprFilter) String() string {
if this == nil {
return "nil"
@@ -8369,6 +8476,42 @@ func (m *EventDependency) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Transform", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Transform == nil {
+ m.Transform = &EventDependencyTransformer{}
+ }
+ if err := m.Transform.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -8580,6 +8723,120 @@ func (m *EventDependencyFilter) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EventDependencyTransformer) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EventDependencyTransformer: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EventDependencyTransformer: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field JQ", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.JQ = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Script", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Script = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ExprFilter) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/pkg/apis/sensor/v1alpha1/generated.proto b/pkg/apis/sensor/v1alpha1/generated.proto
index 5b7ba7d719..63ca2f9a0f 100644
--- a/pkg/apis/sensor/v1alpha1/generated.proto
+++ b/pkg/apis/sensor/v1alpha1/generated.proto
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -249,6 +249,9 @@ message EventDependency {
// Filters and rules governing toleration of success and constraints on the context and data of an event
optional EventDependencyFilter filters = 4;
+
+ // Transform transforms the event data
+ optional EventDependencyTransformer transform = 5;
}
// EventDependencyFilter defines filters and constraints for a event.
@@ -266,6 +269,17 @@ message EventDependencyFilter {
repeated ExprFilter exprs = 4;
}
+// EventDependencyTransformer transforms the event
+message EventDependencyTransformer {
+ // JQ holds the jq command applied for transformation
+ // +optional
+ optional string jq = 1;
+
+ // Script refers to a Lua script used to transform the event
+ // +optional
+ optional string script = 2;
+}
+
message ExprFilter {
// Expr refers to the expression that determines the outcome of the filter.
optional string expr = 1;
diff --git a/pkg/apis/sensor/v1alpha1/openapi_generated.go b/pkg/apis/sensor/v1alpha1/openapi_generated.go
index 2e5512e9b7..ab7c5300ef 100644
--- a/pkg/apis/sensor/v1alpha1/openapi_generated.go
+++ b/pkg/apis/sensor/v1alpha1/openapi_generated.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -30,47 +30,48 @@ import (
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
return map[string]common.OpenAPIDefinition{
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.AWSLambdaTrigger": schema_pkg_apis_sensor_v1alpha1_AWSLambdaTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ArgoWorkflowTrigger": schema_pkg_apis_sensor_v1alpha1_ArgoWorkflowTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ArtifactLocation": schema_pkg_apis_sensor_v1alpha1_ArtifactLocation(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.AzureEventHubsTrigger": schema_pkg_apis_sensor_v1alpha1_AzureEventHubsTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ConditionsResetByTime": schema_pkg_apis_sensor_v1alpha1_ConditionsResetByTime(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ConditionsResetCriteria": schema_pkg_apis_sensor_v1alpha1_ConditionsResetCriteria(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.CustomTrigger": schema_pkg_apis_sensor_v1alpha1_CustomTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.DataFilter": schema_pkg_apis_sensor_v1alpha1_DataFilter(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Event": schema_pkg_apis_sensor_v1alpha1_Event(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventContext": schema_pkg_apis_sensor_v1alpha1_EventContext(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependency": schema_pkg_apis_sensor_v1alpha1_EventDependency(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyFilter": schema_pkg_apis_sensor_v1alpha1_EventDependencyFilter(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ExprFilter": schema_pkg_apis_sensor_v1alpha1_ExprFilter(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.FileArtifact": schema_pkg_apis_sensor_v1alpha1_FileArtifact(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.GitArtifact": schema_pkg_apis_sensor_v1alpha1_GitArtifact(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.GitCreds": schema_pkg_apis_sensor_v1alpha1_GitCreds(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.GitRemoteConfig": schema_pkg_apis_sensor_v1alpha1_GitRemoteConfig(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.HTTPTrigger": schema_pkg_apis_sensor_v1alpha1_HTTPTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.K8SResourcePolicy": schema_pkg_apis_sensor_v1alpha1_K8SResourcePolicy(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.KafkaTrigger": schema_pkg_apis_sensor_v1alpha1_KafkaTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.LogTrigger": schema_pkg_apis_sensor_v1alpha1_LogTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.NATSTrigger": schema_pkg_apis_sensor_v1alpha1_NATSTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.OpenWhiskTrigger": schema_pkg_apis_sensor_v1alpha1_OpenWhiskTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.PayloadField": schema_pkg_apis_sensor_v1alpha1_PayloadField(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.PulsarTrigger": schema_pkg_apis_sensor_v1alpha1_PulsarTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.RateLimit": schema_pkg_apis_sensor_v1alpha1_RateLimit(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Sensor": schema_pkg_apis_sensor_v1alpha1_Sensor(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SensorList": schema_pkg_apis_sensor_v1alpha1_SensorList(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SensorSpec": schema_pkg_apis_sensor_v1alpha1_SensorSpec(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SensorStatus": schema_pkg_apis_sensor_v1alpha1_SensorStatus(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SlackTrigger": schema_pkg_apis_sensor_v1alpha1_SlackTrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.StandardK8STrigger": schema_pkg_apis_sensor_v1alpha1_StandardK8STrigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.StatusPolicy": schema_pkg_apis_sensor_v1alpha1_StatusPolicy(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Template": schema_pkg_apis_sensor_v1alpha1_Template(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TimeFilter": schema_pkg_apis_sensor_v1alpha1_TimeFilter(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Trigger": schema_pkg_apis_sensor_v1alpha1_Trigger(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerParameter": schema_pkg_apis_sensor_v1alpha1_TriggerParameter(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerParameterSource": schema_pkg_apis_sensor_v1alpha1_TriggerParameterSource(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerPolicy": schema_pkg_apis_sensor_v1alpha1_TriggerPolicy(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerTemplate": schema_pkg_apis_sensor_v1alpha1_TriggerTemplate(ref),
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.URLArtifact": schema_pkg_apis_sensor_v1alpha1_URLArtifact(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.AWSLambdaTrigger": schema_pkg_apis_sensor_v1alpha1_AWSLambdaTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ArgoWorkflowTrigger": schema_pkg_apis_sensor_v1alpha1_ArgoWorkflowTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ArtifactLocation": schema_pkg_apis_sensor_v1alpha1_ArtifactLocation(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.AzureEventHubsTrigger": schema_pkg_apis_sensor_v1alpha1_AzureEventHubsTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ConditionsResetByTime": schema_pkg_apis_sensor_v1alpha1_ConditionsResetByTime(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ConditionsResetCriteria": schema_pkg_apis_sensor_v1alpha1_ConditionsResetCriteria(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.CustomTrigger": schema_pkg_apis_sensor_v1alpha1_CustomTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.DataFilter": schema_pkg_apis_sensor_v1alpha1_DataFilter(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Event": schema_pkg_apis_sensor_v1alpha1_Event(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventContext": schema_pkg_apis_sensor_v1alpha1_EventContext(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependency": schema_pkg_apis_sensor_v1alpha1_EventDependency(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyFilter": schema_pkg_apis_sensor_v1alpha1_EventDependencyFilter(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyTransformer": schema_pkg_apis_sensor_v1alpha1_EventDependencyTransformer(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.ExprFilter": schema_pkg_apis_sensor_v1alpha1_ExprFilter(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.FileArtifact": schema_pkg_apis_sensor_v1alpha1_FileArtifact(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.GitArtifact": schema_pkg_apis_sensor_v1alpha1_GitArtifact(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.GitCreds": schema_pkg_apis_sensor_v1alpha1_GitCreds(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.GitRemoteConfig": schema_pkg_apis_sensor_v1alpha1_GitRemoteConfig(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.HTTPTrigger": schema_pkg_apis_sensor_v1alpha1_HTTPTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.K8SResourcePolicy": schema_pkg_apis_sensor_v1alpha1_K8SResourcePolicy(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.KafkaTrigger": schema_pkg_apis_sensor_v1alpha1_KafkaTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.LogTrigger": schema_pkg_apis_sensor_v1alpha1_LogTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.NATSTrigger": schema_pkg_apis_sensor_v1alpha1_NATSTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.OpenWhiskTrigger": schema_pkg_apis_sensor_v1alpha1_OpenWhiskTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.PayloadField": schema_pkg_apis_sensor_v1alpha1_PayloadField(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.PulsarTrigger": schema_pkg_apis_sensor_v1alpha1_PulsarTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.RateLimit": schema_pkg_apis_sensor_v1alpha1_RateLimit(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Sensor": schema_pkg_apis_sensor_v1alpha1_Sensor(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SensorList": schema_pkg_apis_sensor_v1alpha1_SensorList(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SensorSpec": schema_pkg_apis_sensor_v1alpha1_SensorSpec(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SensorStatus": schema_pkg_apis_sensor_v1alpha1_SensorStatus(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.SlackTrigger": schema_pkg_apis_sensor_v1alpha1_SlackTrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.StandardK8STrigger": schema_pkg_apis_sensor_v1alpha1_StandardK8STrigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.StatusPolicy": schema_pkg_apis_sensor_v1alpha1_StatusPolicy(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Template": schema_pkg_apis_sensor_v1alpha1_Template(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TimeFilter": schema_pkg_apis_sensor_v1alpha1_TimeFilter(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.Trigger": schema_pkg_apis_sensor_v1alpha1_Trigger(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerParameter": schema_pkg_apis_sensor_v1alpha1_TriggerParameter(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerParameterSource": schema_pkg_apis_sensor_v1alpha1_TriggerParameterSource(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerPolicy": schema_pkg_apis_sensor_v1alpha1_TriggerPolicy(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.TriggerTemplate": schema_pkg_apis_sensor_v1alpha1_TriggerTemplate(ref),
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.URLArtifact": schema_pkg_apis_sensor_v1alpha1_URLArtifact(ref),
}
}
@@ -660,12 +661,18 @@ func schema_pkg_apis_sensor_v1alpha1_EventDependency(ref common.ReferenceCallbac
Ref: ref("github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyFilter"),
},
},
+ "transform": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Transform transforms the event data",
+ Ref: ref("github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyTransformer"),
+ },
+ },
},
Required: []string{"name", "eventSourceName", "eventName"},
},
},
Dependencies: []string{
- "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyFilter"},
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyFilter", "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1.EventDependencyTransformer"},
}
}
@@ -724,6 +731,33 @@ func schema_pkg_apis_sensor_v1alpha1_EventDependencyFilter(ref common.ReferenceC
}
}
+func schema_pkg_apis_sensor_v1alpha1_EventDependencyTransformer(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventDependencyTransformer transforms the event",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "jq": {
+ SchemaProps: spec.SchemaProps{
+ Description: "JQ holds the jq command applied for transformation",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "script": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Script refers to a Lua script used to transform the event",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_pkg_apis_sensor_v1alpha1_ExprFilter(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
diff --git a/pkg/apis/sensor/v1alpha1/types.go b/pkg/apis/sensor/v1alpha1/types.go
index e05c44621b..ae93a7892c 100644
--- a/pkg/apis/sensor/v1alpha1/types.go
+++ b/pkg/apis/sensor/v1alpha1/types.go
@@ -186,6 +186,18 @@ type EventDependency struct {
EventName string `json:"eventName" protobuf:"bytes,3,name=eventName"`
// Filters and rules governing toleration of success and constraints on the context and data of an event
Filters *EventDependencyFilter `json:"filters,omitempty" protobuf:"bytes,4,opt,name=filters"`
+ // Transform transforms the event data
+ Transform *EventDependencyTransformer `json:"transform,omitempty" protobuf:"bytes,5,opt,name=transform"`
+}
+
+// EventDependencyTransformer transforms the event
+type EventDependencyTransformer struct {
+ // JQ holds the jq command applied for transformation
+ // +optional
+ JQ string `json:"jq,omitempty" protobuf:"bytes,1,opt,name=jq"`
+ // Script refers to a Lua script used to transform the event
+ // +optional
+ Script string `json:"script,omitempty" protobuf:"bytes,2,opt,name=script"`
}
// EventDependencyFilter defines filters and constraints for a event.
diff --git a/pkg/apis/sensor/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/sensor/v1alpha1/zz_generated.deepcopy.go
index b4a08d4bf9..84f1290ca7 100644
--- a/pkg/apis/sensor/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/sensor/v1alpha1/zz_generated.deepcopy.go
@@ -2,7 +2,7 @@
// +build !ignore_autogenerated
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -342,6 +342,11 @@ func (in *EventDependency) DeepCopyInto(out *EventDependency) {
*out = new(EventDependencyFilter)
(*in).DeepCopyInto(*out)
}
+ if in.Transform != nil {
+ in, out := &in.Transform, &out.Transform
+ *out = new(EventDependencyTransformer)
+ **out = **in
+ }
return
}
@@ -395,6 +400,22 @@ func (in *EventDependencyFilter) DeepCopy() *EventDependencyFilter {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EventDependencyTransformer) DeepCopyInto(out *EventDependencyTransformer) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventDependencyTransformer.
+func (in *EventDependencyTransformer) DeepCopy() *EventDependencyTransformer {
+ if in == nil {
+ return nil
+ }
+ out := new(EventDependencyTransformer)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExprFilter) DeepCopyInto(out *ExprFilter) {
*out = *in
diff --git a/pkg/client/eventbus/clientset/versioned/clientset.go b/pkg/client/eventbus/clientset/versioned/clientset.go
index c8e47572fc..c0209e617b 100644
--- a/pkg/client/eventbus/clientset/versioned/clientset.go
+++ b/pkg/client/eventbus/clientset/versioned/clientset.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/doc.go b/pkg/client/eventbus/clientset/versioned/doc.go
index d4d9e0efaf..6e064c137a 100644
--- a/pkg/client/eventbus/clientset/versioned/doc.go
+++ b/pkg/client/eventbus/clientset/versioned/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/fake/clientset_generated.go b/pkg/client/eventbus/clientset/versioned/fake/clientset_generated.go
index 537b3741fa..b652fc9d85 100644
--- a/pkg/client/eventbus/clientset/versioned/fake/clientset_generated.go
+++ b/pkg/client/eventbus/clientset/versioned/fake/clientset_generated.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/fake/doc.go b/pkg/client/eventbus/clientset/versioned/fake/doc.go
index 364034b345..e0c04494c2 100644
--- a/pkg/client/eventbus/clientset/versioned/fake/doc.go
+++ b/pkg/client/eventbus/clientset/versioned/fake/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/fake/register.go b/pkg/client/eventbus/clientset/versioned/fake/register.go
index 741fa545d2..224717b2df 100644
--- a/pkg/client/eventbus/clientset/versioned/fake/register.go
+++ b/pkg/client/eventbus/clientset/versioned/fake/register.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/scheme/doc.go b/pkg/client/eventbus/clientset/versioned/scheme/doc.go
index 766973c41f..682557074b 100644
--- a/pkg/client/eventbus/clientset/versioned/scheme/doc.go
+++ b/pkg/client/eventbus/clientset/versioned/scheme/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/scheme/register.go b/pkg/client/eventbus/clientset/versioned/scheme/register.go
index 15a6faf551..4c2272c7b7 100644
--- a/pkg/client/eventbus/clientset/versioned/scheme/register.go
+++ b/pkg/client/eventbus/clientset/versioned/scheme/register.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/doc.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/doc.go
index 46ca232c1e..e4d79ea8e9 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/doc.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus.go
index 0bb7e57160..35b6c7b845 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus_client.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus_client.go
index 36c8ba169c..4de021c2d5 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus_client.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/eventbus_client.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/doc.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/doc.go
index 9a152b87de..fbac3b1655 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/doc.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus.go
index a8e2481123..5797f84cab 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus_client.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus_client.go
index 1c717379b7..7e54431970 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus_client.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/fake/fake_eventbus_client.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/generated_expansion.go b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/generated_expansion.go
index e8ff4a463b..32a985403a 100644
--- a/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/generated_expansion.go
+++ b/pkg/client/eventbus/clientset/versioned/typed/eventbus/v1alpha1/generated_expansion.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/informers/externalversions/eventbus/interface.go b/pkg/client/eventbus/informers/externalversions/eventbus/interface.go
index 660b7993c5..54fc21d877 100644
--- a/pkg/client/eventbus/informers/externalversions/eventbus/interface.go
+++ b/pkg/client/eventbus/informers/externalversions/eventbus/interface.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/eventbus.go b/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/eventbus.go
index 3641f478fc..4fa2350204 100644
--- a/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/eventbus.go
+++ b/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/eventbus.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/interface.go b/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/interface.go
index 867344b645..586b687598 100644
--- a/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/interface.go
+++ b/pkg/client/eventbus/informers/externalversions/eventbus/v1alpha1/interface.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/informers/externalversions/factory.go b/pkg/client/eventbus/informers/externalversions/factory.go
index c54537392f..b5ef39c0eb 100644
--- a/pkg/client/eventbus/informers/externalversions/factory.go
+++ b/pkg/client/eventbus/informers/externalversions/factory.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/informers/externalversions/generic.go b/pkg/client/eventbus/informers/externalversions/generic.go
index 84bd05cd5d..3b990c09be 100644
--- a/pkg/client/eventbus/informers/externalversions/generic.go
+++ b/pkg/client/eventbus/informers/externalversions/generic.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/eventbus/informers/externalversions/internalinterfaces/factory_interfaces.go
index 73418cc67f..002582e777 100644
--- a/pkg/client/eventbus/informers/externalversions/internalinterfaces/factory_interfaces.go
+++ b/pkg/client/eventbus/informers/externalversions/internalinterfaces/factory_interfaces.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/listers/eventbus/v1alpha1/eventbus.go b/pkg/client/eventbus/listers/eventbus/v1alpha1/eventbus.go
index f40c96b717..6b789ec6ff 100644
--- a/pkg/client/eventbus/listers/eventbus/v1alpha1/eventbus.go
+++ b/pkg/client/eventbus/listers/eventbus/v1alpha1/eventbus.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventbus/listers/eventbus/v1alpha1/expansion_generated.go b/pkg/client/eventbus/listers/eventbus/v1alpha1/expansion_generated.go
index 6cef60f460..d2e4c6bb39 100644
--- a/pkg/client/eventbus/listers/eventbus/v1alpha1/expansion_generated.go
+++ b/pkg/client/eventbus/listers/eventbus/v1alpha1/expansion_generated.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/clientset.go b/pkg/client/eventsource/clientset/versioned/clientset.go
index 4d8b602ee9..13eeeff9f2 100644
--- a/pkg/client/eventsource/clientset/versioned/clientset.go
+++ b/pkg/client/eventsource/clientset/versioned/clientset.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/doc.go b/pkg/client/eventsource/clientset/versioned/doc.go
index d4d9e0efaf..6e064c137a 100644
--- a/pkg/client/eventsource/clientset/versioned/doc.go
+++ b/pkg/client/eventsource/clientset/versioned/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/fake/clientset_generated.go b/pkg/client/eventsource/clientset/versioned/fake/clientset_generated.go
index 87f1fe43d2..19a2c92dc6 100644
--- a/pkg/client/eventsource/clientset/versioned/fake/clientset_generated.go
+++ b/pkg/client/eventsource/clientset/versioned/fake/clientset_generated.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/fake/doc.go b/pkg/client/eventsource/clientset/versioned/fake/doc.go
index 364034b345..e0c04494c2 100644
--- a/pkg/client/eventsource/clientset/versioned/fake/doc.go
+++ b/pkg/client/eventsource/clientset/versioned/fake/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/fake/register.go b/pkg/client/eventsource/clientset/versioned/fake/register.go
index 70bf34eff8..6131399848 100644
--- a/pkg/client/eventsource/clientset/versioned/fake/register.go
+++ b/pkg/client/eventsource/clientset/versioned/fake/register.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/scheme/doc.go b/pkg/client/eventsource/clientset/versioned/scheme/doc.go
index 766973c41f..682557074b 100644
--- a/pkg/client/eventsource/clientset/versioned/scheme/doc.go
+++ b/pkg/client/eventsource/clientset/versioned/scheme/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/scheme/register.go b/pkg/client/eventsource/clientset/versioned/scheme/register.go
index 4ee66ea518..2355602791 100644
--- a/pkg/client/eventsource/clientset/versioned/scheme/register.go
+++ b/pkg/client/eventsource/clientset/versioned/scheme/register.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/doc.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/doc.go
index 46ca232c1e..e4d79ea8e9 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/doc.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource.go
index 43fa59df1c..6cdb34b348 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource_client.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource_client.go
index f194261b7d..b8c89ed268 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource_client.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/eventsource_client.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/doc.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/doc.go
index 9a152b87de..fbac3b1655 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/doc.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource.go
index dec3376eb1..243c8826d5 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource_client.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource_client.go
index dea31e43fb..fef393f35b 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource_client.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/fake/fake_eventsource_client.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/generated_expansion.go b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/generated_expansion.go
index 149b5ddb28..2b920f1c69 100644
--- a/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/generated_expansion.go
+++ b/pkg/client/eventsource/clientset/versioned/typed/eventsource/v1alpha1/generated_expansion.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/informers/externalversions/eventsource/interface.go b/pkg/client/eventsource/informers/externalversions/eventsource/interface.go
index ab21abc16a..95b3990c5c 100644
--- a/pkg/client/eventsource/informers/externalversions/eventsource/interface.go
+++ b/pkg/client/eventsource/informers/externalversions/eventsource/interface.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/eventsource.go b/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/eventsource.go
index dbe1f5fb61..c0051759a4 100644
--- a/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/eventsource.go
+++ b/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/eventsource.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/interface.go b/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/interface.go
index c1c894db76..8ab84f1684 100644
--- a/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/interface.go
+++ b/pkg/client/eventsource/informers/externalversions/eventsource/v1alpha1/interface.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/informers/externalversions/factory.go b/pkg/client/eventsource/informers/externalversions/factory.go
index 24c6f3bd85..9a6da205de 100644
--- a/pkg/client/eventsource/informers/externalversions/factory.go
+++ b/pkg/client/eventsource/informers/externalversions/factory.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/informers/externalversions/generic.go b/pkg/client/eventsource/informers/externalversions/generic.go
index bda1f51444..2d4a5a7c7a 100644
--- a/pkg/client/eventsource/informers/externalversions/generic.go
+++ b/pkg/client/eventsource/informers/externalversions/generic.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/eventsource/informers/externalversions/internalinterfaces/factory_interfaces.go
index aa6520b4bd..421757af00 100644
--- a/pkg/client/eventsource/informers/externalversions/internalinterfaces/factory_interfaces.go
+++ b/pkg/client/eventsource/informers/externalversions/internalinterfaces/factory_interfaces.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/listers/eventsource/v1alpha1/eventsource.go b/pkg/client/eventsource/listers/eventsource/v1alpha1/eventsource.go
index 19f7855e12..c2c5ef8108 100644
--- a/pkg/client/eventsource/listers/eventsource/v1alpha1/eventsource.go
+++ b/pkg/client/eventsource/listers/eventsource/v1alpha1/eventsource.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/eventsource/listers/eventsource/v1alpha1/expansion_generated.go b/pkg/client/eventsource/listers/eventsource/v1alpha1/expansion_generated.go
index b10c055aa2..e5dc800832 100644
--- a/pkg/client/eventsource/listers/eventsource/v1alpha1/expansion_generated.go
+++ b/pkg/client/eventsource/listers/eventsource/v1alpha1/expansion_generated.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/clientset.go b/pkg/client/sensor/clientset/versioned/clientset.go
index 65374ec48c..cac2237db9 100644
--- a/pkg/client/sensor/clientset/versioned/clientset.go
+++ b/pkg/client/sensor/clientset/versioned/clientset.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/doc.go b/pkg/client/sensor/clientset/versioned/doc.go
index d4d9e0efaf..6e064c137a 100644
--- a/pkg/client/sensor/clientset/versioned/doc.go
+++ b/pkg/client/sensor/clientset/versioned/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/fake/clientset_generated.go b/pkg/client/sensor/clientset/versioned/fake/clientset_generated.go
index 42272873f2..575298f158 100644
--- a/pkg/client/sensor/clientset/versioned/fake/clientset_generated.go
+++ b/pkg/client/sensor/clientset/versioned/fake/clientset_generated.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/fake/doc.go b/pkg/client/sensor/clientset/versioned/fake/doc.go
index 364034b345..e0c04494c2 100644
--- a/pkg/client/sensor/clientset/versioned/fake/doc.go
+++ b/pkg/client/sensor/clientset/versioned/fake/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/fake/register.go b/pkg/client/sensor/clientset/versioned/fake/register.go
index ff3a549616..808eb06f72 100644
--- a/pkg/client/sensor/clientset/versioned/fake/register.go
+++ b/pkg/client/sensor/clientset/versioned/fake/register.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/scheme/doc.go b/pkg/client/sensor/clientset/versioned/scheme/doc.go
index 766973c41f..682557074b 100644
--- a/pkg/client/sensor/clientset/versioned/scheme/doc.go
+++ b/pkg/client/sensor/clientset/versioned/scheme/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/scheme/register.go b/pkg/client/sensor/clientset/versioned/scheme/register.go
index 046539db29..a49eedbace 100644
--- a/pkg/client/sensor/clientset/versioned/scheme/register.go
+++ b/pkg/client/sensor/clientset/versioned/scheme/register.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/doc.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/doc.go
index 46ca232c1e..e4d79ea8e9 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/doc.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/doc.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/doc.go
index 9a152b87de..fbac3b1655 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/doc.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/doc.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor.go
index b9df72ae33..6ba4673fef 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor_client.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor_client.go
index 29cb2ca5fc..eba3a92836 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor_client.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/fake/fake_sensor_client.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/generated_expansion.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/generated_expansion.go
index b49f34463a..97830d783c 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/generated_expansion.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/generated_expansion.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor.go
index 503a72c507..ef762fefed 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor_client.go b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor_client.go
index a68d027cae..011c321c45 100644
--- a/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor_client.go
+++ b/pkg/client/sensor/clientset/versioned/typed/sensor/v1alpha1/sensor_client.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/informers/externalversions/factory.go b/pkg/client/sensor/informers/externalversions/factory.go
index f2a8a74adb..43818199a8 100644
--- a/pkg/client/sensor/informers/externalversions/factory.go
+++ b/pkg/client/sensor/informers/externalversions/factory.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/informers/externalversions/generic.go b/pkg/client/sensor/informers/externalversions/generic.go
index c0a5e22403..f384a25a6f 100644
--- a/pkg/client/sensor/informers/externalversions/generic.go
+++ b/pkg/client/sensor/informers/externalversions/generic.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/sensor/informers/externalversions/internalinterfaces/factory_interfaces.go
index 89c64fd70c..e14626906f 100644
--- a/pkg/client/sensor/informers/externalversions/internalinterfaces/factory_interfaces.go
+++ b/pkg/client/sensor/informers/externalversions/internalinterfaces/factory_interfaces.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/informers/externalversions/sensor/interface.go b/pkg/client/sensor/informers/externalversions/sensor/interface.go
index d958b095ec..2bd1080ad2 100644
--- a/pkg/client/sensor/informers/externalversions/sensor/interface.go
+++ b/pkg/client/sensor/informers/externalversions/sensor/interface.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/interface.go b/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/interface.go
index 724ebf827f..cccbbdf436 100644
--- a/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/interface.go
+++ b/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/interface.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/sensor.go b/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/sensor.go
index 7ecdd39744..68d35d7132 100644
--- a/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/sensor.go
+++ b/pkg/client/sensor/informers/externalversions/sensor/v1alpha1/sensor.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/listers/sensor/v1alpha1/expansion_generated.go b/pkg/client/sensor/listers/sensor/v1alpha1/expansion_generated.go
index 5ce1a6153b..49964bfc2c 100644
--- a/pkg/client/sensor/listers/sensor/v1alpha1/expansion_generated.go
+++ b/pkg/client/sensor/listers/sensor/v1alpha1/expansion_generated.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/pkg/client/sensor/listers/sensor/v1alpha1/sensor.go b/pkg/client/sensor/listers/sensor/v1alpha1/sensor.go
index 2b376a6b1e..a3972faf47 100644
--- a/pkg/client/sensor/listers/sensor/v1alpha1/sensor.go
+++ b/pkg/client/sensor/listers/sensor/v1alpha1/sensor.go
@@ -1,5 +1,5 @@
/*
-Copyright 2020 BlackRock, Inc.
+Copyright 2021 BlackRock, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/sensors/dependencies/transform.go b/sensors/dependencies/transform.go
new file mode 100644
index 0000000000..da754adc13
--- /dev/null
+++ b/sensors/dependencies/transform.go
@@ -0,0 +1,199 @@
+package dependencies
+
+import (
+ "encoding/json"
+ "fmt"
+ "time"
+
+ "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1"
+ cloudevents "github.com/cloudevents/sdk-go/v2"
+ "github.com/itchyny/gojq"
+ "github.com/tidwall/gjson"
+ lua "github.com/yuin/gopher-lua"
+)
+
+func ApplyTransform(event *cloudevents.Event, transform *v1alpha1.EventDependencyTransformer) (*cloudevents.Event, error) {
+ if transform == nil {
+ return event, nil
+ }
+ if transform.JQ != "" {
+ return applyJQTransform(event, transform.JQ)
+ }
+ if transform.Script != "" {
+ return applyScriptTransform(event, transform.Script)
+ }
+ return event, nil
+}
+
+func applyJQTransform(event *cloudevents.Event, command string) (*cloudevents.Event, error) {
+ if event == nil {
+ return nil, fmt.Errorf("nil Event")
+ }
+ payload := event.Data()
+ if payload == nil {
+ return event, nil
+ }
+ var js *json.RawMessage
+ if err := json.Unmarshal(payload, &js); err != nil {
+ return nil, err
+ }
+ var jsData []byte
+ jsData, err := json.Marshal(js)
+ if err != nil {
+ return nil, err
+ }
+ query, err := gojq.Parse(command)
+ if err != nil {
+ return nil, err
+ }
+ var temp map[string]interface{}
+ if err = json.Unmarshal(jsData, &temp); err != nil {
+ return nil, err
+ }
+ iter := query.Run(temp)
+ v, ok := iter.Next()
+ if !ok {
+ return nil, fmt.Errorf("no output available from the jq command execution")
+ }
+ switch v.(type) {
+ case map[string]interface{}:
+ resultContent, err := json.Marshal(v)
+ if err != nil {
+ return nil, err
+ }
+ if !gjson.ValidBytes(resultContent) {
+ return nil, fmt.Errorf("jq transformation output is not a JSON object")
+ }
+ if err = event.SetData(cloudevents.ApplicationJSON, resultContent); err != nil {
+ return nil, err
+ }
+ return event, nil
+ default:
+ return nil, fmt.Errorf("jq transformation output must be a JSON object")
+ }
+}
+
+func applyScriptTransform(event *cloudevents.Event, script string) (*cloudevents.Event, error) {
+ l := lua.NewState()
+ defer l.Close()
+ payload := event.Data()
+ if payload == nil {
+ return event, nil
+ }
+ var js *json.RawMessage
+ if err := json.Unmarshal(payload, &js); err != nil {
+ return nil, err
+ }
+ var jsData []byte
+ jsData, err := json.Marshal(js)
+ if err != nil {
+ return nil, err
+ }
+ var payloadJson map[string]interface{}
+ if err = json.Unmarshal(jsData, &payloadJson); err != nil {
+ return nil, err
+ }
+ lEvent := mapToTable(payloadJson)
+ l.SetGlobal("event", lEvent)
+ if err = l.DoString(script); err != nil {
+ return nil, err
+ }
+ lv := l.Get(-1)
+ tbl, ok := lv.(*lua.LTable)
+ if !ok {
+ return nil, fmt.Errorf("transformation script output type is not of lua table")
+ }
+ result := toGoValue(tbl)
+ resultJson, err := json.Marshal(result)
+ if err != nil {
+ return nil, err
+ }
+ if !gjson.Valid(string(resultJson)) {
+ return nil, fmt.Errorf("script transformation output is not a JSON object")
+ }
+ if err := event.SetData(cloudevents.ApplicationJSON, resultJson); err != nil {
+ return nil, err
+ }
+ return event, nil
+}
+
+// MapToTable converts a Go map to a lua table
+func mapToTable(m map[string]interface{}) *lua.LTable {
+ resultTable := &lua.LTable{}
+ for key, element := range m {
+ switch t := element.(type) {
+ case float64:
+ resultTable.RawSetString(key, lua.LNumber(t))
+ case int64:
+ resultTable.RawSetString(key, lua.LNumber(t))
+ case string:
+ resultTable.RawSetString(key, lua.LString(t))
+ case bool:
+ resultTable.RawSetString(key, lua.LBool(t))
+ case []byte:
+ resultTable.RawSetString(key, lua.LString(string(t)))
+ case map[string]interface{}:
+ table := mapToTable(element.(map[string]interface{}))
+ resultTable.RawSetString(key, table)
+ case time.Time:
+ resultTable.RawSetString(key, lua.LNumber(t.Unix()))
+ case []map[string]interface{}:
+ sliceTable := &lua.LTable{}
+ for _, s := range element.([]map[string]interface{}) {
+ table := mapToTable(s)
+ sliceTable.Append(table)
+ }
+ resultTable.RawSetString(key, sliceTable)
+ case []interface{}:
+ sliceTable := &lua.LTable{}
+ for _, s := range element.([]interface{}) {
+ switch tt := s.(type) {
+ case map[string]interface{}:
+ t := mapToTable(s.(map[string]interface{}))
+ sliceTable.Append(t)
+ case float64:
+ sliceTable.Append(lua.LNumber(tt))
+ case string:
+ sliceTable.Append(lua.LString(tt))
+ case bool:
+ sliceTable.Append(lua.LBool(tt))
+ }
+ }
+ resultTable.RawSetString(key, sliceTable)
+ default:
+ }
+ }
+ return resultTable
+}
+
+// toGoValue converts the given LValue to a Go object.
+func toGoValue(lv lua.LValue) interface{} {
+ switch v := lv.(type) {
+ case *lua.LNilType:
+ return nil
+ case lua.LBool:
+ return bool(v)
+ case lua.LString:
+ return string(v)
+ case lua.LNumber:
+ return float64(v)
+ case *lua.LTable:
+ maxn := v.MaxN()
+ if maxn == 0 { // table
+ ret := make(map[string]interface{})
+ v.ForEach(func(key, value lua.LValue) {
+ keystr := key.String()
+ ret[keystr] = toGoValue(value)
+ })
+ return ret
+ } else { // array
+ ret := make([]interface{}, 0, maxn)
+ for i := 1; i <= maxn; i++ {
+ ret = append(ret, toGoValue(v.RawGetInt(i)))
+ }
+ return ret
+ }
+ default:
+ return v
+ }
+}
diff --git a/sensors/dependencies/transform_test.go b/sensors/dependencies/transform_test.go
new file mode 100644
index 0000000000..bd0ddb4792
--- /dev/null
+++ b/sensors/dependencies/transform_test.go
@@ -0,0 +1,119 @@
+package dependencies
+
+import (
+ "testing"
+
+ cloudevents "github.com/cloudevents/sdk-go/v2"
+ "github.com/cloudevents/sdk-go/v2/types"
+ "github.com/stretchr/testify/assert"
+)
+
+func strptr(s string) *string {
+ return &s
+}
+
+func TestApplyJQTransform(t *testing.T) {
+ tests := []struct {
+ event *cloudevents.Event
+ result *cloudevents.Event
+ command string
+ hasError bool
+ }{
+ {
+ event: &cloudevents.Event{
+ Context: &cloudevents.EventContextV1{
+ ID: "123",
+ Source: types.URIRef{},
+ DataContentType: strptr(cloudevents.ApplicationJSON),
+ Subject: strptr("hello"),
+ Time: &types.Timestamp{},
+ },
+ DataEncoded: []byte(`{"a":1,"b":"2"}`),
+ },
+ result: &cloudevents.Event{
+ Context: &cloudevents.EventContextV1{
+ ID: "123",
+ Source: types.URIRef{},
+ DataContentType: strptr(cloudevents.ApplicationJSON),
+ Subject: strptr("hello"),
+ Time: &types.Timestamp{},
+ },
+ DataEncoded: []byte(`{"a":2,"b":"22"}`),
+ },
+ hasError: false,
+ command: ".a += 1 | .b *= 2",
+ },
+ }
+ for _, tt := range tests {
+ result, err := applyJQTransform(tt.event, tt.command)
+ if tt.hasError {
+ assert.NotNil(t, err)
+ } else {
+ assert.Nil(t, err)
+ }
+ assert.Equal(t, tt.result.Data(), result.Data())
+ }
+}
+
+func TestApplyScriptTransform(t *testing.T) {
+ tests := []struct {
+ event *cloudevents.Event
+ result *cloudevents.Event
+ script string
+ hasError bool
+ }{
+ {
+ event: &cloudevents.Event{
+ Context: &cloudevents.EventContextV1{
+ ID: "123",
+ Source: types.URIRef{},
+ DataContentType: strptr(cloudevents.ApplicationJSON),
+ Subject: strptr("hello"),
+ Time: &types.Timestamp{},
+ },
+ DataEncoded: []byte(`{"a":1,"b":"2","c":{"d":[3]}}`),
+ },
+ result: &cloudevents.Event{
+ Context: &cloudevents.EventContextV1{
+ ID: "123",
+ Source: types.URIRef{},
+ DataContentType: strptr(cloudevents.ApplicationJSON),
+ Subject: strptr("hello"),
+ Time: &types.Timestamp{},
+ },
+ DataEncoded: []byte(`{"a":1,"b":"2","c":{"d":[4]}}`),
+ },
+ hasError: false,
+ script: `
+event.c.d[1]=4
+return event
+`,
+ },
+ {
+ event: &cloudevents.Event{
+ Context: &cloudevents.EventContextV1{
+ ID: "123",
+ Source: types.URIRef{},
+ DataContentType: strptr(cloudevents.ApplicationJSON),
+ Subject: strptr("hello"),
+ Time: &types.Timestamp{},
+ },
+ DataEncoded: []byte(`{"a":1,"b":"2","c":{"d":[3]}}`),
+ },
+ result: nil,
+ hasError: true,
+ script: `
+return "hello"
+`,
+ },
+ }
+ for _, tt := range tests {
+ result, err := applyScriptTransform(tt.event, tt.script)
+ if tt.hasError {
+ assert.NotNil(t, err)
+ } else {
+ assert.Nil(t, err)
+ assert.Equal(t, tt.result.Data(), result.Data())
+ }
+ }
+}
diff --git a/sensors/listener.go b/sensors/listener.go
index 90a7641068..9a914e37fb 100644
--- a/sensors/listener.go
+++ b/sensors/listener.go
@@ -27,13 +27,6 @@ import (
"github.com/Knetic/govaluate"
"github.com/antonmedv/expr"
- cloudevents "github.com/cloudevents/sdk-go/v2"
- "github.com/pkg/errors"
- cronlib "github.com/robfig/cron/v3"
- "go.uber.org/ratelimit"
- "go.uber.org/zap"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
"github.com/argoproj/argo-events/common"
"github.com/argoproj/argo-events/common/leaderelection"
"github.com/argoproj/argo-events/common/logging"
@@ -43,6 +36,12 @@ import (
"github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1"
sensordependencies "github.com/argoproj/argo-events/sensors/dependencies"
sensortriggers "github.com/argoproj/argo-events/sensors/triggers"
+ cloudevents "github.com/cloudevents/sdk-go/v2"
+ "github.com/pkg/errors"
+ cronlib "github.com/robfig/cron/v3"
+ "go.uber.org/ratelimit"
+ "go.uber.org/zap"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
var rateLimiters = make(map[string]ratelimit.Limiter)
@@ -166,6 +165,17 @@ func (sensorCtx *SensorContext) listenEvents(ctx context.Context) error {
}
defer conn.Close()
+ transformFunc := func(depName string, event cloudevents.Event) (*cloudevents.Event, error) {
+ dep, ok := depMapping[depName]
+ if !ok {
+ return nil, fmt.Errorf("dependency %s not found", dep.Name)
+ }
+ if dep.Transform == nil {
+ return &event, nil
+ }
+ return sensordependencies.ApplyTransform(&event, dep.Transform)
+ }
+
filterFunc := func(depName string, event cloudevents.Event) bool {
dep, ok := depMapping[depName]
if !ok {
@@ -203,7 +213,7 @@ func (sensorCtx *SensorContext) listenEvents(ctx context.Context) error {
logger.Infof("started subscribing to events for trigger %s with client %s", trigger.Template.Name, clientID)
- err = ebDriver.SubscribeEventSources(ctx, conn, group, closeSubCh, resetConditionsCh, depExpression, deps, filterFunc, actionFunc)
+ err = ebDriver.SubscribeEventSources(ctx, conn, group, closeSubCh, resetConditionsCh, depExpression, deps, transformFunc, filterFunc, actionFunc)
if err != nil {
logger.Errorw("failed to subscribe to eventbus", zap.Any("clientID", clientID), zap.Error(err))
return