{
  "name": "Bulk Delete Entities in Datastore [Deprecated]",
  "description": "A pipeline which reads in Entities (via a GQL query) from Datastore, optionally passes in the JSON encoded Entities to a JavaScript UDF, and then deletes all matching Entities in the selected target project.",
  "mainClass": "com.google.cloud.teleport.templates.DatastoreToDatastoreDelete",
  "parameters": [
    {
      "name": "datastoreReadGqlQuery",
      "label": "GQL Query",
      "helpText": "A GQL (https://cloud.google.com/datastore/docs/reference/gql_reference) query that specifies which entities to grab. For example, `SELECT * FROM MyKind`.",
      "regexes": [
        "^.+$"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "TEXT"
    },
    {
      "name": "datastoreReadProjectId",
      "label": "Project ID",
      "helpText": "The ID of the Google Cloud project that contains the Datastore instance that you want to read data from.",
      "regexes": [
        "[a-z0-9\\-\\.\\:]+"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "TEXT"
    },
    {
      "name": "datastoreReadNamespace",
      "label": "Namespace",
      "helpText": "The namespace of the requested entities. To use the default namespace, leave this parameter blank.",
      "isOptional": true,
      "regexes": [
        "^[0-9A-Za-z._-]{0,100}$"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "TEXT"
    },
    {
      "name": "javascriptTextTransformGcsPath",
      "label": "JavaScript UDF path in Cloud Storage",
      "helpText": "The Cloud Storage URI of the .js file that defines the JavaScript user-defined function (UDF) to use. For example, `gs://my-bucket/my-udfs/my_file.js`.",
      "isOptional": true,
      "regexes": [
        "^gs:\\/\\/[^\\n\\r]+$"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "JAVASCRIPT_UDF_FILE"
    },
    {
      "name": "javascriptTextTransformFunctionName",
      "label": "JavaScript UDF name",
      "helpText": "The name of the JavaScript user-defined function (UDF) to use. For example, if your JavaScript function code is `myTransform(inJson) { /*...do stuff...*/ }`, then the function name is `myTransform`. For sample JavaScript UDFs, see UDF Examples (https://github.com/GoogleCloudPlatform/DataflowTemplates#udf-examples).",
      "isOptional": true,
      "regexes": [
        "[a-zA-Z0-9_]+"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "TEXT"
    },
    {
      "name": "datastoreDeleteProjectId",
      "label": "Delete all matching entities from the GQL Query present in this Datastore Project Id of",
      "helpText": "Google Cloud Project Id of where to delete the datastore entities",
      "regexes": [
        "[a-z0-9\\-\\.\\:]+"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "TEXT"
    },
    {
      "name": "datastoreHintNumWorkers",
      "label": "Expected number of workers",
      "helpText": "Hint for the expected number of workers in the Datastore ramp-up throttling step. Defaults to: 500.",
      "isOptional": true,
      "regexes": [
        "^-?[0-9]+$"
      ],
      "parentTriggerValues": [
        ""
      ],
      "paramType": "NUMBER",
      "defaultValue": "500"
    }
  ],
  "category": {
    "name": "legacy",
    "displayName": "Legacy Templates"
  },
  "internalName": "Datastore_to_Datastore_Delete",
  "module": "v1",
  "documentationLink": "https://cloud.google.com/dataflow/docs/guides/templates/provided/datastore-bulk-delete",
  "requirements": [
    "Datastore must be set up in the project prior to running the template.",
    "If reading and deleting from separate Datastore instances, the Dataflow \u003ca href\u003d\"https://cloud.google.com/dataflow/docs/concepts/security-and-permissions#worker-service-account\"\u003eWorker Service Account\u003c/a\u003e must have permission to read from one instance and delete from the other."
  ],
  "additionalDocumentation": [],
  "googleReleased": true,
  "preview": false,
  "udfSupport": true,
  "flexTemplate": false,
  "hidden": false,
  "streaming": false,
  "supportsAtLeastOnce": false,
  "supportsExactlyOnce": true,
  "defaultStreamingMode": "UNSPECIFIED"
}