{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob",
  "definitions": {
    "strmprivacy.api.entities.v1.ConsentLevelExtractor": {
      "type": "object",
      "properties": {
        "field": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevelExtractor/definitions/field"
        },
        "fieldPatterns": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevelExtractor/definitions/field_patterns"
        }
      },
      "patternProperties": {
        "^field_patterns$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevelExtractor/definitions/field_patterns"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "field": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string field = 1;",
          "default": ""
        },
        "field_patterns": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevels"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "strmprivacy.api.entities.v1.ConsentLevels",
                "default": {
                  
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "map<string, strmprivacy.api.entities.v1.ConsentLevels> field_patterns = 2;",
          "default": {
            
          }
        }
      }
    },
    "strmprivacy.api.entities.v1.DataType": {
      "type": "object",
      "properties": {
        "csv": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataType/definitions/csv"
        },
        "database": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataType/definitions/database"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "csv": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.CsvConfig"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.CsvConfig csv = 1;",
          "default": {
            
          }
        },
        "database": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DatabaseConfig"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DatabaseConfig database = 2;",
          "default": {
            
          }
        }
      }
    },
    "strmprivacy.api.entities.v1.BatchJob": {
      "type": "object",
      "properties": {
        "consent": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/consent"
        },
        "derivedData": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/derived_data"
        },
        "encryptedData": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/encrypted_data"
        },
        "encryption": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/encryption"
        },
        "encryptionKeysData": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/encryption_keys_data"
        },
        "eventContractRef": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/event_contract_ref"
        },
        "policyId": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/policy_id"
        },
        "ref": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/ref"
        },
        "sourceData": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/source_data"
        },
        "states": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/states"
        }
      },
      "patternProperties": {
        "^derived_data$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/derived_data"
        },
        "^encrypted_data$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/encrypted_data"
        },
        "^encryption_keys_data$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/encryption_keys_data"
        },
        "^event_contract_ref$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/event_contract_ref"
        },
        "^policy_id$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/policy_id"
        },
        "^source_data$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJob/definitions/source_data"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "consent": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentConfig"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.ConsentConfig consent = 4;",
          "default": {
            
          }
        },
        "derived_data": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData",
                "title": "strmprivacy.api.entities.v1.DerivedData",
                "default": {
                  
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated strmprivacy.api.entities.v1.DerivedData derived_data = 9;",
          "default": [
            {
              
            }
          ]
        },
        "encrypted_data": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptedData"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.EncryptedData encrypted_data = 7;",
          "default": {
            
          }
        },
        "encryption": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionConfig"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.EncryptionConfig encryption = 5;",
          "default": {
            
          }
        },
        "encryption_keys_data": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionKeysData"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.EncryptionKeysData encryption_keys_data = 8;",
          "default": {
            
          }
        },
        "event_contract_ref": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.EventContractRef"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.EventContractRef event_contract_ref = 6;",
          "default": {
            
          }
        },
        "policy_id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string policy_id = 10;",
          "default": ""
        },
        "ref": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobRef"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.BatchJobRef ref = 1;",
          "default": {
            
          }
        },
        "source_data": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DataConnectorAndType source_data = 3;",
          "default": {
            
          }
        },
        "states": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobState",
                "title": "strmprivacy.api.entities.v1.BatchJobState",
                "default": {
                  
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated strmprivacy.api.entities.v1.BatchJobState states = 2;",
          "default": [
            {
              
            }
          ]
        }
      },
      "description": "********************************\nBatch Jobs\nCurrently we only support:\n- CSV as DataFormat type\n- a clean database for every batch job\n- CSV files with a header row, because the header is needed to get the field names\n*******************************"
    },
    "strmprivacy.api.entities.v1.ConsentLevels": {
      "type": "object",
      "properties": {
        "consentLevels": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevels/definitions/consent_levels"
        }
      },
      "patternProperties": {
        "^consent_levels$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevels/definitions/consent_levels"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "consent_levels": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ],
                "title": "int32"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated int32 consent_levels = 1;",
          "default": null
        }
      }
    },
    "strmprivacy.api.entities.v1.EncryptionKeysData": {
      "type": "object",
      "properties": {
        "target": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionKeysData/definitions/target"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "target": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DataConnectorAndType target = 1;",
          "default": {
            
          }
        }
      }
    },
    "strmprivacy.api.entities.v1.BatchJobRef": {
      "type": "object",
      "properties": {
        "billingId": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobRef/definitions/billing_id"
        },
        "id": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobRef/definitions/id"
        },
        "projectId": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobRef/definitions/project_id"
        }
      },
      "patternProperties": {
        "^billing_id$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobRef/definitions/billing_id"
        },
        "^project_id$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobRef/definitions/project_id"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "billing_id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string billing_id = 1;",
          "default": "",
          "deprecationMessage": "Field \"billing_id\" is marked as deprecated"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string id = 2;",
          "description": "the UUIDv4 of the job, generated upon creation",
          "default": ""
        },
        "project_id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string project_id = 3;",
          "description": "the UUIDv4 of the STRM Privacy project",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.DerivedData": {
      "type": "object",
      "properties": {
        "consentLevelType": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/consent_level_type"
        },
        "consentLevels": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/consent_levels"
        },
        "maskedFields": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/masked_fields"
        },
        "target": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/target"
        }
      },
      "patternProperties": {
        "^consent_level_type$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/consent_level_type"
        },
        "^consent_levels$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/consent_levels"
        },
        "^masked_fields$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DerivedData/definitions/masked_fields"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "consent_level_type": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevelType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.ConsentLevelType consent_level_type = 3;",
          "default": "CONSENT_LEVEL_TYPE_UNSPECIFIED"
        },
        "consent_levels": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ],
                "title": "int32"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated int32 consent_levels = 2;",
          "default": null
        },
        "masked_fields": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.MaskedFields masked_fields = 4;",
          "default": {
            
          }
        },
        "target": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DataConnectorAndType target = 1;",
          "default": {
            
          }
        }
      }
    },
    "google.protobuf.Timestamp": {
      "type": "string",
      "format": "date-time",
      "default": ""
    },
    "strmprivacy.api.entities.v1.BatchJobState": {
      "type": "object",
      "properties": {
        "message": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobState/definitions/message"
        },
        "state": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobState/definitions/state"
        },
        "stateTime": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobState/definitions/state_time"
        }
      },
      "patternProperties": {
        "^state_time$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobState/definitions/state_time"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "message": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string message = 3;",
          "default": ""
        },
        "state": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.BatchJobStateType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.BatchJobStateType state = 2;",
          "default": "BATCH_JOB_STATE_TYPE_UNSPECIFIED"
        },
        "state_time": {
          "oneOf": [
            {
              "$ref": "#/definitions/google.protobuf.Timestamp"
            },
            {
              "type": "null"
            }
          ],
          "title": "google.protobuf.Timestamp state_time = 1;"
        }
      }
    },
    "strmprivacy.api.entities.v1.CsvConfig": {
      "type": "object",
      "properties": {
        "charset": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.CsvConfig/definitions/charset"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "charset": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string charset = 1;",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.DatabaseConfig": {
      "type": "object",
      "properties": {
        "columns": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DatabaseConfig/definitions/columns"
        },
        "schema": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DatabaseConfig/definitions/schema"
        },
        "table": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DatabaseConfig/definitions/table"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "columns": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string",
                "title": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated string columns = 3;",
          "default": null
        },
        "schema": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string schema = 1;",
          "default": ""
        },
        "table": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string table = 2;",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.EventContractRef": {
      "type": "object",
      "properties": {
        "handle": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EventContractRef/definitions/handle"
        },
        "name": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EventContractRef/definitions/name"
        },
        "version": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EventContractRef/definitions/version"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "handle": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string handle = 1;",
          "description": "constraint: handle should already exist",
          "default": ""
        },
        "name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string name = 2;",
          "description": "constraints: generic name constraint, unique within handle",
          "default": ""
        },
        "version": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string version = 3;",
          "description": "constraints: semantic version, e.g. 1.12.3",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.ConsentLevelType": {
      "enum": [
        "CONSENT_LEVEL_TYPE_UNSPECIFIED",
        0,
        "CUMULATIVE",
        1,
        "GRANULAR",
        2
      ],
      "description": "Consent level is meant to interpret the consent-levels of an event for decryption purposes only.\n\nCumulative means that the highest consent-level in an event must be greater than or equal to the single requested level\nfor the decrypted stream.\n\nGranular means that the set of consent-levels in an event must enclose the set of requested event levels for the\ndecrypted stream.",
      "markdownEnumDescriptions": [
        "(or 0) ",
        "(or \"CONSENT_LEVEL_TYPE_UNSPECIFIED\") ",
        "(or 1) ",
        "(or \"CUMULATIVE\") ",
        "(or 2) ",
        "(or \"GRANULAR\") "
      ]
    },
    "strmprivacy.api.entities.v1.DataConnectorAndType": {
      "type": "object",
      "properties": {
        "dataConnectorRef": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/data_connector_ref"
        },
        "dataType": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/data_type"
        },
        "fileName": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/file_name"
        },
        "pathPrefix": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/path_prefix"
        }
      },
      "patternProperties": {
        "^data_connector_ref$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/data_connector_ref"
        },
        "^data_type$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/data_type"
        },
        "^file_name$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/file_name"
        },
        "^path_prefix$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType/definitions/path_prefix"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "data_connector_ref": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorRef"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DataConnectorRef data_connector_ref = 1;",
          "default": {
            
          }
        },
        "data_type": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DataType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DataType data_type = 4;",
          "default": {
            
          }
        },
        "file_name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string file_name = 3;",
          "description": "(-- api-linter: core::0122::name-suffix=disabled\n     aip.dev/not-precedent: We think file_name is a better name. --)",
          "default": ""
        },
        "path_prefix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string path_prefix = 2;",
          "description": "If omitted, files are read from the root of the bucket.",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.MaskedFields.PatternList": {
      "type": "object",
      "properties": {
        "fieldPatterns": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields.PatternList/definitions/field_patterns"
        }
      },
      "patternProperties": {
        "^field_patterns$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields.PatternList/definitions/field_patterns"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "field_patterns": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "type": "string",
                "title": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated string field_patterns = 1;",
          "default": null
        }
      }
    },
    "strmprivacy.api.entities.v1.DataConnectorRef": {
      "type": "object",
      "properties": {
        "billingId": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorRef/definitions/billing_id"
        },
        "name": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorRef/definitions/name"
        },
        "projectId": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorRef/definitions/project_id"
        }
      },
      "patternProperties": {
        "^billing_id$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorRef/definitions/billing_id"
        },
        "^project_id$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorRef/definitions/project_id"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "billing_id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string billing_id = 1;",
          "default": "",
          "deprecationMessage": "Field \"billing_id\" is marked as deprecated"
        },
        "name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string name = 2;",
          "default": ""
        },
        "project_id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string project_id = 3;",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.EncryptionConfig": {
      "type": "object",
      "properties": {
        "batchJobGroupId": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionConfig/definitions/batch_job_group_id"
        },
        "timestampConfig": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionConfig/definitions/timestamp_config"
        }
      },
      "patternProperties": {
        "^batch_job_group_id$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionConfig/definitions/batch_job_group_id"
        },
        "^timestamp_config$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptionConfig/definitions/timestamp_config"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "batch_job_group_id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string batch_job_group_id = 2;",
          "default": ""
        },
        "timestamp_config": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.TimestampConfig"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.TimestampConfig timestamp_config = 1;",
          "default": {
            
          }
        }
      }
    },
    "strmprivacy.api.entities.v1.BatchJobStateType": {
      "enum": [
        "BATCH_JOB_STATE_TYPE_UNSPECIFIED",
        0,
        "PENDING",
        1,
        "STARTED",
        2,
        "ERROR_STARTING",
        3,
        "RUNNING",
        4,
        "FINISHED",
        5,
        "ERROR",
        6
      ],
      "markdownEnumDescriptions": [
        "(or 0) ",
        "(or \"BATCH_JOB_STATE_TYPE_UNSPECIFIED\") ",
        "(or 1) ",
        "(or \"PENDING\") ",
        "(or 2) ",
        "(or \"STARTED\") ",
        "(or 3) ",
        "(or \"ERROR_STARTING\") ",
        "(or 4) ",
        "(or \"RUNNING\") ",
        "(or 5) ",
        "(or \"FINISHED\") ",
        "(or 6) ",
        "(or \"ERROR\") "
      ]
    },
    "strmprivacy.api.entities.v1.ConsentConfig": {
      "type": "object",
      "properties": {
        "consentLevelExtractor": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentConfig/definitions/consent_level_extractor"
        },
        "defaultConsentLevels": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentConfig/definitions/default_consent_levels"
        }
      },
      "patternProperties": {
        "^consent_level_extractor$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentConfig/definitions/consent_level_extractor"
        },
        "^default_consent_levels$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentConfig/definitions/default_consent_levels"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "consent_level_extractor": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.ConsentLevelExtractor"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.ConsentLevelExtractor consent_level_extractor = 2;",
          "default": {
            
          }
        },
        "default_consent_levels": {
          "oneOf": [
            {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ],
                "title": "int32"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "repeated int32 default_consent_levels = 1;",
          "default": null
        }
      }
    },
    "strmprivacy.api.entities.v1.MaskedFields": {
      "type": "object",
      "properties": {
        "fieldPatterns": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields/definitions/field_patterns"
        },
        "hashType": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields/definitions/hash_type"
        },
        "seed": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields/definitions/seed"
        }
      },
      "patternProperties": {
        "^field_patterns$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields/definitions/field_patterns"
        },
        "^hash_type$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields/definitions/hash_type"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "field_patterns": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/strmprivacy.api.entities.v1.MaskedFields.PatternList"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "strmprivacy.api.entities.v1.MaskedFields.PatternList",
                "default": {
                  
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "map<string, strmprivacy.api.entities.v1.MaskedFields.PatternList> field_patterns = 3;",
          "description": "map of event-contract-ref vs field patterns\n\nconstraints:\n data-contract-refs should be existing data contracts\n field_patterns should be valid values (checked by events-core)\n the field_patterns list should have no duplicates.",
          "default": {
            
          }
        },
        "hash_type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string hash_type = 1;",
          "description": "Default Murmurhash3 if empty",
          "default": ""
        },
        "seed": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string seed = 2;",
          "description": "hashing seed",
          "default": ""
        }
      }
    },
    "strmprivacy.api.entities.v1.TimestampConfig": {
      "type": "object",
      "properties": {
        "defaultTimeZone": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.TimestampConfig/definitions/default_time_zone"
        },
        "field": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.TimestampConfig/definitions/field"
        },
        "format": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.TimestampConfig/definitions/format"
        }
      },
      "patternProperties": {
        "^default_time_zone$": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.TimestampConfig/definitions/default_time_zone"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "default_time_zone": {
          "oneOf": [
            {
              "$ref": "#/definitions/google.type.TimeZone"
            },
            {
              "type": "null"
            }
          ],
          "title": "google.type.TimeZone default_time_zone = 3;",
          "default": {
            
          }
        },
        "field": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string field = 1;",
          "description": "generic field name",
          "default": ""
        },
        "format": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string format = 2;",
          "description": "Java Time Format template, see https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html",
          "default": ""
        }
      }
    },
    "google.type.TimeZone": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/google.type.TimeZone/definitions/id"
        },
        "version": {
          "$ref": "#/definitions/google.type.TimeZone/definitions/version"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string id = 1;",
          "description": "IANA Time Zone Database time zone, e.g. \"America/New_York\".",
          "default": ""
        },
        "version": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "string version = 2;",
          "description": "Optional. IANA Time Zone Database version number, e.g. \"2019a\".",
          "default": ""
        }
      },
      "description": "Represents a time zone from the\n [IANA Time Zone Database](https://www.iana.org/time-zones)."
    },
    "strmprivacy.api.entities.v1.EncryptedData": {
      "type": "object",
      "properties": {
        "target": {
          "$ref": "#/definitions/strmprivacy.api.entities.v1.EncryptedData/definitions/target"
        }
      },
      "additionalProperties": {
        "title": "Unknown field"
      },
      "definitions": {
        "target": {
          "oneOf": [
            {
              "$ref": "#/definitions/strmprivacy.api.entities.v1.DataConnectorAndType"
            },
            {
              "type": "null"
            }
          ],
          "title": "strmprivacy.api.entities.v1.DataConnectorAndType target = 1;",
          "default": {
            
          }
        }
      }
    }
  },
  "title": "strmprivacy.api.entities.v1.BatchJob"
}