Google Cloud Dataflow Template

Metadata describing a Dataflow template, including its name, description, parameters, and streaming capability. Templates define reusable pipeline structures that can be launched with different runtime parameters.

Apache BeamBatch ProcessingBig DataData ProcessingETLStream Processing

Properties

Name Type Description
name string Required. The name of the template.
description string Optional. A description of the template.
parameters array The parameters for the template, defining inputs that can be configured at launch time.
streaming boolean If true, this template processes unbounded data streams.
supportsAtLeastOnce boolean If true, this template supports at-least-once processing.
supportsExactlyOnce boolean If true, this template supports exactly-once processing.
defaultStreamingMode string The default streaming mode for the template.
templateType string The type of the template.
View JSON Schema on GitHub

JSON Schema

google-cloud-dataflow-template-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-search/google-cloud-dataflow/json-schema/google-cloud-dataflow-template-schema.json",
  "title": "Google Cloud Dataflow Template",
  "description": "Metadata describing a Dataflow template, including its name, description, parameters, and streaming capability. Templates define reusable pipeline structures that can be launched with different runtime parameters.",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Required. The name of the template."
    },
    "description": {
      "type": "string",
      "description": "Optional. A description of the template."
    },
    "parameters": {
      "type": "array",
      "description": "The parameters for the template, defining inputs that can be configured at launch time.",
      "items": {
        "$ref": "#/$defs/ParameterMetadata"
      }
    },
    "streaming": {
      "type": "boolean",
      "description": "If true, this template processes unbounded data streams."
    },
    "supportsAtLeastOnce": {
      "type": "boolean",
      "description": "If true, this template supports at-least-once processing."
    },
    "supportsExactlyOnce": {
      "type": "boolean",
      "description": "If true, this template supports exactly-once processing."
    },
    "defaultStreamingMode": {
      "type": "string",
      "description": "The default streaming mode for the template."
    },
    "templateType": {
      "type": "string",
      "description": "The type of the template.",
      "enum": [
        "UNKNOWN",
        "LEGACY",
        "FLEX"
      ]
    }
  },
  "required": ["name"],
  "$defs": {
    "ParameterMetadata": {
      "type": "object",
      "description": "Metadata for a specific parameter used by a template.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Required. The name of the parameter."
        },
        "label": {
          "type": "string",
          "description": "Required. The label to display for the parameter."
        },
        "helpText": {
          "type": "string",
          "description": "Required. Help text to display for the parameter."
        },
        "isOptional": {
          "type": "boolean",
          "description": "Optional. Whether the parameter is optional. Defaults to false."
        },
        "regexes": {
          "type": "array",
          "description": "Optional. Regular expressions used to validate the parameter value.",
          "items": {
            "type": "string"
          }
        },
        "paramType": {
          "type": "string",
          "description": "The type of the parameter.",
          "enum": [
            "DEFAULT",
            "TEXT",
            "GCS_READ_BUCKET",
            "GCS_WRITE_BUCKET",
            "GCS_READ_FILE",
            "GCS_WRITE_FILE",
            "GCS_READ_FOLDER",
            "GCS_WRITE_FOLDER",
            "PUBSUB_TOPIC",
            "PUBSUB_SUBSCRIPTION",
            "BIGQUERY_TABLE",
            "JAVASCRIPT_UDF_FILE",
            "SERVICE_ACCOUNT",
            "MACHINE_TYPE",
            "KMS_KEY_NAME",
            "WORKER_REGION",
            "WORKER_ZONE",
            "BOOLEAN",
            "ENUM",
            "NUMBER",
            "KAFKA_TOPIC",
            "KAFKA_READ_TOPIC",
            "KAFKA_WRITE_TOPIC"
          ]
        }
      },
      "required": ["name", "label", "helpText"]
    }
  }
}