{
"id": "google_cloud_storage",
"schema": {
"type": "object",
"title": "",
"required": ["bucket"],
"properties": {
"type": {
"type": "string",
"enum": ["google_cloud_storage"],
"flag": {
"prefix": "collector",
"modes": ["single", "worker"]
}
},
"outputName": {
"type": "string",
"title": "Auto-populate from",
"description": "Name of the predefined Destination that will be used to auto-populate Collector settings"
},
"bucket": {
"type": "string",
"title": "Bucket name",
"minLength": 1,
"description": "Name of the bucket to collect from. This value can be a constant or a JavaScript expression that can only be evaluated at init time. Example referencing a Global Variable: `myBucket-${C.vars.myVar}`.",
"jsExpression": "warning"
},
"path": {
"type": "string",
"title": "Path",
"description": "The directory from which to collect data. Templating is supported, such as myDir/${datacenter}/${host}/${app}/. Time-based tokens are also supported, such as myOtherDir/${_time:%Y}/${_time:%m}/${_time:%d}/.",
"minLength": 1,
"templated": true
},
"extractors": {
"type": "array",
"uniqueFields": ["key"],
"title": "Path extractors",
"additionalProperties": false,
"items": {
"type": "object",
"required": ["key", "expression"],
"properties": {
"key": {
"type": "string",
"title": "Token",
"description": "A token from the template path, such as epoch"
},
"expression": {
"type": "string",
"title": "Extractor Expression",
"description": "JavaScript expression that receives token under \"value\" variable, and evaluates to populate event fields, such as {date: new Date(+value*1000)}"
}
}
},
"description": "Allows using template tokens as context for expressions that enrich discovery results. For example, given a template /path/${epoch}, an extractor under key \"epoch\" with an expression {date: new Date(+value*1000)}, will enrich discovery results with a human readable \"date\" field."
},
"endpoint": {
"type": "string",
"title": "Endpoint",
"description": "Google Cloud Storage service endpoint. If empty, the endpoint will default to https://storage.googleapis.com."
},
"disableTimeFilter": {
"type": "boolean",
"title": "Disable time filter",
"description": "Used to disable Collector event time filtering when a date range is specified",
"default": false
},
"recurse": {
"type": "boolean",
"title": "Recursive",
"description": "Recurse through subdirectories",
"default": true
},
"maxBatchSize": {
"type": "number",
"title": "Batch size limit (objects)",
"description": "Maximum number of metadata objects to batch before recording as results",
"minimum": 1,
"default": 10
},
"authType": {
"title": "Authentication method",
"type": "string",
"enum": ["auto", "manual", "secret"],
"default": "manual",
"description": "Enter account credentials manually, select a secret that references your credentials, or use Google Application Default Credentials"
},
"parquetChunkSizeMB": {
"type": "number",
"title": "Parquet chunk size limit (MB)",
"description": "Maximum file size for each Parquet chunk",
"default": 5,
"maximum": 100,
"minimum": 1
},
"parquetChunkDownloadTimeout": {
"type": "number",
"title": "Parquet chunk download timeout (seconds)",
"description": "The maximum time allowed for downloading a Parquet chunk. Processing will abort if a chunk cannot be downloaded within the time specified.",
"default": 600,
"maximum": 3600,
"minimum": 1
}
},
"dependencies": {
"authType": {
"oneOf": [
{
"properties": {
"authType": {
"enum": ["auto"]
}
}
},
{
"required": ["serviceAccountCredentials"],
"properties": {
"authType": {
"enum": ["manual"]
},
"serviceAccountCredentials": {
"type": "string",
"title": "Service account credentials",
"description": "Contents of Google Cloud service account credentials (JSON keys) file. To upload a file, click the upload button at this field's upper right.",
"encrypt": true
}
}
},
{
"required": ["textSecret"],
"properties": {
"authType": {
"enum": ["secret"]
},
"textSecret": {
"type": "string",
"secret": {
"type": "text",
"target": "serviceAccountCredentials"
},
"secretRef": true,
"title": "Service account credentials (text secret)",
"description": "Select or create a stored text secret that references your credentials"
}
}
}
]
}
}
}
}