Transform

Modifies or restructures payload content.

Use the Transform policy to modify or restructure a payload by setting, renaming, or computing values based on runtime data.

For more information on the policy parameter descriptions, see DataPower Nano Gateway documentation.

Example of a Transform policy in code view.

kind: Transform
apiVersion: api.ibm.com/v1
metadata:
  name: "transform-request"
  version: 1.0
  namespace: sample
spec:
  messageBody:
    messageName: 'request'
    jsonataTransforms:
      - capture: "$.books[0].author"
        transform: "$variable('my-author-var')"
      - capture: "$.books[0].title"
        transform: "$variable('my-title-var')"
      - capture: "$.books[0].price"
        transform: "$variable('my-price-var')"
---
apiVersion: api.ibm.com/v1
kind: Transform
metadata:
  name: "transform-request"
  version: 1.0
  namespace: sample
spec:
  variable:
    name: "my-author-var"
    jsonataTransforms:
      - capture: "$.books[0].author"
        transform: "$variable('my-author-var')"
      - capture: "$.books[0].title"
        transform: "$variable('my-title-var')"
---
apiVersion: api.ibm.com/v1
kind: Transform
metadata:
  name: "transform-request"
  version: 1.0
  namespace: sample
spec:
  distributedVariable:
    expireIn: 5 # in seconds
    name: "my-author-var"
    jsonataTransforms:
      - capture: "$.books[0].author"
        transform: "$variable('my-author-var')"
---
apiVersion: api.ibm.com/v1
kind: Transform
metadata:
  name: "transform-request"
  version: 1.0
  namespace: sample
spec:
  messageHeader:
    messageName: "my-message-name"
    jsonataTransforms:
      - headerNames:
          - "Content-Type"
          - "Content-Length"
        transform: "$variable('my-author-var')"
---
apiVersion: api.ibm.com/v1
kind: Transform
metadata:
  name: "transform-request"
  version: 1.0
  namespace: sample
spec:
  messageUriQuery:
    messageName: "my-message-name"
    jsonataTransforms:
      - queryNames:
          - "author"
          - "title"
        action: "add" # add | update | set
        transform: "$variable('my-author-var')"
---
apiVersion: api.ibm.com/v1
kind: Transform
metadata:
  name: "transform-request"
  version: 1.0
  namespace: sample
spec:
  messageUriPath:
    messageName: "my-message-name"
    jsonataTransforms: "$variable('custom-uri-path')"
---
kind: Transform
apiVersion: api.ibm.com/v1
metadata:
  name: "transform-request"
  namespace: sample
  version: 1.0
spec:
  telemetry:
    keys:
      keyLiterals:
        - "sample-telemetry-key"
    span: "rootSpan"
    # # (2/3) policySpan
    # span:
    #   policySpan: ""
    # # (3/3) httpSpan
    # span:
    #  httpSpan: ""
    jsonataTransforms:
      - capture: "doc.key.password"
        transform: "$variable('my-password-var')"