:tocdepth: 3

base/protocols/redis/spicy-events.zeek
======================================
.. zeek:namespace:: Redis

Events and records generated by the Redis analyzer.

:Namespace: Redis

Summary
~~~~~~~
Types
#####
===================================================== ========================================
:zeek:type:`Redis::AuthCommand`: :zeek:type:`record`  The Redis AUTH command.
:zeek:type:`Redis::Command`: :zeek:type:`record`      A generic Redis command from the client.
:zeek:type:`Redis::HelloCommand`: :zeek:type:`record` The Redis HELLO command (handshake).
:zeek:type:`Redis::ReplyData`: :zeek:type:`record`    A generic Redis reply from the client.
:zeek:type:`Redis::SetCommand`: :zeek:type:`record`   The Redis SET command.
===================================================== ========================================

Events
######
=================================================== =======================================================================
:zeek:id:`Redis::auth_command`: :zeek:type:`event`  Generated for Redis AUTH commands sent to the Redis server.
:zeek:id:`Redis::command`: :zeek:type:`event`       Generated for every command sent by the client to the Redis server.
:zeek:id:`Redis::error`: :zeek:type:`event`         Generated for every error response sent by the Redis server to the
                                                    client.
:zeek:id:`Redis::get_command`: :zeek:type:`event`   Generated for Redis GET commands sent to the Redis server.
:zeek:id:`Redis::hello_command`: :zeek:type:`event` Generated for Redis HELLO commands sent to the Redis server.
:zeek:id:`Redis::reply`: :zeek:type:`event`         Generated for every successful response sent by the Redis server to the
                                                    client.
:zeek:id:`Redis::server_push`: :zeek:type:`event`   Generated for out-of-band data, outside of the request-response
                                                    model.
:zeek:id:`Redis::set_command`: :zeek:type:`event`   Generated for Redis SET commands sent to the Redis server.
=================================================== =======================================================================


Detailed Interface
~~~~~~~~~~~~~~~~~~
Types
#####
.. zeek:type:: Redis::AuthCommand
   :source-code: base/protocols/redis/spicy-events.zeek 33 38

   :Type: :zeek:type:`record`


   .. zeek:field:: username :zeek:type:`string` :zeek:attr:`&optional`

      The username getting authenticated.


   .. zeek:field:: password :zeek:type:`string`

      The password authenticated with.


   The Redis AUTH command.

.. zeek:type:: Redis::Command
   :source-code: base/protocols/redis/spicy-events.zeek 47 59

   :Type: :zeek:type:`record`


   .. zeek:field:: raw :zeek:type:`vector` of :zeek:type:`string`

      The raw command, exactly as parsed


   .. zeek:field:: name :zeek:type:`string` :zeek:attr:`&log`

      The first element of the command. Some commands are two strings, meaning
      this is inaccurate for those cases.


   .. zeek:field:: key :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`

      The key, if this command is known to have a key


   .. zeek:field:: value :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`

      The value, if this command is known to have a value


   .. zeek:field:: known :zeek:type:`Redis::RedisCommand` :zeek:attr:`&optional`

      The command in an enum if it was known


   A generic Redis command from the client.

.. zeek:type:: Redis::HelloCommand
   :source-code: base/protocols/redis/spicy-events.zeek 41 44

   :Type: :zeek:type:`record`


   .. zeek:field:: requested_resp_version :zeek:type:`string` :zeek:attr:`&optional`

      The sent requested RESP version, such as "2" or "3"


   The Redis HELLO command (handshake).

.. zeek:type:: Redis::ReplyData
   :source-code: base/protocols/redis/spicy-events.zeek 62 69

   :Type: :zeek:type:`record`


   .. zeek:field:: attributes :zeek:type:`string` :zeek:attr:`&optional`

      The RESP3 attributes applied to this, if any


   .. zeek:field:: value :zeek:type:`string` :zeek:attr:`&log`

      The string version of the reply data


   .. zeek:field:: min_protocol_version :zeek:type:`count`

      The minimum RESP version that supports this reply type


   A generic Redis reply from the client.

.. zeek:type:: Redis::SetCommand
   :source-code: base/protocols/redis/spicy-events.zeek 7 30

   :Type: :zeek:type:`record`


   .. zeek:field:: key :zeek:type:`string` :zeek:attr:`&log`

      The key the SET command is setting.


   .. zeek:field:: value :zeek:type:`string` :zeek:attr:`&log`

      The value the SET command is setting key to.


   .. zeek:field:: nx :zeek:type:`bool`

      If NX is set -- only set the key if it does not exist.


   .. zeek:field:: xx :zeek:type:`bool`

      If XX is set -- only set the key if it already exists.


   .. zeek:field:: get :zeek:type:`bool`

      If GET is set -- return the old string stored at key.


   .. zeek:field:: ex :zeek:type:`count` :zeek:attr:`&optional`

      EX option -- set the specified expire time, in seconds.


   .. zeek:field:: px :zeek:type:`count` :zeek:attr:`&optional`

      PX option -- set the specified expire time, in milliseconds.


   .. zeek:field:: exat :zeek:type:`count` :zeek:attr:`&optional`

      EXAT option-- set the specified Unix time at which the key will
      expire, in seconds.


   .. zeek:field:: pxat :zeek:type:`count` :zeek:attr:`&optional`

      PXAT option -- set the specified Unix time at which the key will
      expire, in milliseconds.


   .. zeek:field:: keep_ttl :zeek:type:`bool`

      If KEEPTTL is set -- retain the time to live associated with the key.


   The Redis SET command.

Events
######
.. zeek:id:: Redis::auth_command
   :source-code: base/protocols/redis/spicy-events.zeek 91 91

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, command: :zeek:type:`Redis::AuthCommand`)

   Generated for Redis AUTH commands sent to the Redis server.


   :param c: The connection.


   :param command: The AUTH command sent to the server and its data.

.. zeek:id:: Redis::command
   :source-code: base/protocols/redis/main.zeek 165 245

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, cmd: :zeek:type:`Redis::Command`)

   Generated for every command sent by the client to the Redis server.


   :param c: The connection.


   :param cmd: The command sent to the server.

.. zeek:id:: Redis::error
   :source-code: base/protocols/redis/main.zeek 332 344

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, data: :zeek:type:`Redis::ReplyData`)

   Generated for every error response sent by the Redis server to the
   client.


   :param c: The connection.


   :param data: The server data sent to the client.

.. zeek:id:: Redis::get_command
   :source-code: base/protocols/redis/spicy-events.zeek 84 84

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, key: :zeek:type:`string`)

   Generated for Redis GET commands sent to the Redis server.


   :param c: The connection.


   :param command: The GET command sent to the server and its data.

.. zeek:id:: Redis::hello_command
   :source-code: base/protocols/redis/main.zeek 156 163

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, command: :zeek:type:`Redis::HelloCommand`)

   Generated for Redis HELLO commands sent to the Redis server.


   :param c: The connection.


   :param command: The HELLO command sent to the server and its data.

.. zeek:id:: Redis::reply
   :source-code: base/protocols/redis/main.zeek 301 330

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, data: :zeek:type:`Redis::ReplyData`)

   Generated for every successful response sent by the Redis server to the
   client. For RESP2, this includes "push" messages, which are out of band.
   These will also raise a server_push event. RESP3 push messages will only
   raise a server_push event.


   :param c: The connection.


   :param data: The server data sent to the client.

   .. zeek:see:: Redis::server_push

.. zeek:id:: Redis::server_push
   :source-code: base/protocols/redis/spicy-events.zeek 133 133

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, data: :zeek:type:`Redis::ReplyData`)

   Generated for out-of-band data, outside of the request-response
   model.


   :param c: The connection.


   :param data: The server data sent to the client.

.. zeek:id:: Redis::set_command
   :source-code: base/protocols/redis/spicy-events.zeek 77 77

   :Type: :zeek:type:`event` (c: :zeek:type:`connection`, command: :zeek:type:`Redis::SetCommand`)

   Generated for Redis SET commands sent to the Redis server.


   :param c: The connection.


   :param command: The SET command sent to the server and its data.


