MessageTransform

All supported message transforms types.

JSON representation
{
  "enabled": boolean,
  "disabled": boolean,

  // Union field transform can be only one of the following:
  "javascriptUdf": {
    object (JavaScriptUDF)
  }
  // End of list of possible types for union field transform.
}
Fields
enabled
(deprecated)

boolean

Optional. This field is deprecated, use the disabled field to disable transforms.

disabled

boolean

Optional. If true, the transform is disabled and will not be applied to messages. Defaults to false.

Union field transform. The type of transform to apply to messages. transform can be only one of the following:
javascriptUdf

object (JavaScriptUDF)

Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's are specified on a resource, each must have a unique functionName.

JavaScriptUDF

User-defined JavaScript function that can transform or filter a Pub/Sub message.

JSON representation
{
  "functionName": string,
  "code": string
}
Fields
functionName

string

Required. Name of the JavasScript function that should applied to Pub/Sub messages.

code

string

Required. JavaScript code that contains a function functionName with the below signature:

  /**
  * Transforms a Pub/Sub message.

  * @return {(Object<string, (string | Object<string, string>)>|null)} - To
  * filter a message, return `null`. To transform a message return a map
  * with the following keys:
  *   - (required) 'data' : {string}
  *   - (optional) 'attributes' : {Object<string, string>}
  * Returning empty `attributes` will remove all attributes from the
  * message.
  *
  * @param  {(Object<string, (string | Object<string, string>)>} Pub/Sub
  * message. Keys:
  *   - (required) 'data' : {string}
  *   - (required) 'attributes' : {Object<string, string>}
  *
  * @param  {Object<string, any>} metadata - Pub/Sub message metadata.
  * Keys:
  *   - (optional) 'messageId'  : {string}
  *   - (optional) 'publishTime': {string} YYYY-MM-DDTHH:MM:SSZ format
  *   - (optional) 'orderingKey': {string}
  */

  function <functionName>(message, metadata) {
  }