320 lines
11 KiB
JSON
320 lines
11 KiB
JSON
{
|
|
"apiVersion": "camel.apache.org/v1",
|
|
"kind": "Kamelet",
|
|
"metadata": {
|
|
"name": "google-sheets-sink",
|
|
"annotations": {
|
|
"camel.apache.org/kamelet.support.level": "Stable",
|
|
"camel.apache.org/catalog.version": "4.22.1",
|
|
"camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA2NCA4OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjQgODg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMERDNTRDO30KCS5zdDF7ZmlsbDojMDg5NjJEO30KCS5zdDJ7ZmlsbDojRkRGRkZGO30KPC9zdHlsZT4KPGcgaWQ9IkxheWVyXzQiPgoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU4LDg4SDZjLTMuMywwLTYtMi43LTYtNlY2YzAtMy4zLDIuNy02LDYtNmgzNmwyMiwyMnY2MEM2NCw4NS4zLDYxLjMsODgsNTgsODh6Ii8+Cgk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDIsMGwyMiwyMkg0MlYweiIvPgoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEyLDM0LjV2MjhoNDB2LTI4SDEyeiBNMTcsMzkuNWgxMi41VjQ2SDE3VjM5LjV6IE0xNyw1MWgxMi41djYuNUgxN1Y1MXogTTQ3LDU3LjVIMzQuNVY1MUg0N1Y1Ny41eiBNNDcsNDYKCQlIMzQuNXYtNi41SDQ3VjQ2eiIvPgo8L2c+Cjwvc3ZnPgo=",
|
|
"camel.apache.org/provider": "Apache Software Foundation",
|
|
"camel.apache.org/kamelet.group": "Google Sheets",
|
|
"camel.apache.org/kamelet.namespace": "GCP"
|
|
},
|
|
"labels": {
|
|
"camel.apache.org/kamelet.type": "sink"
|
|
}
|
|
},
|
|
"spec": {
|
|
"definition": {
|
|
"title": "Google Sheets Sink",
|
|
"description": "Send data to Google Sheets and update/append values on a spreadsheet.",
|
|
"required": [
|
|
"spreadsheetId",
|
|
"clientId",
|
|
"accessToken",
|
|
"refreshToken",
|
|
"clientSecret"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"spreadsheetId": {
|
|
"title": "Spreadsheet ID",
|
|
"description": "The Spreadsheet ID to be used as identifier",
|
|
"type": "string"
|
|
},
|
|
"clientId": {
|
|
"title": "Client Id",
|
|
"description": "Client ID of the sheets application",
|
|
"type": "string",
|
|
"format": "password",
|
|
"x-descriptors": [
|
|
"urn:camel:group:credentials"
|
|
]
|
|
},
|
|
"clientSecret": {
|
|
"title": "Client Secret",
|
|
"description": "Client Secret of the sheets application",
|
|
"type": "string",
|
|
"format": "password",
|
|
"x-descriptors": [
|
|
"urn:camel:group:credentials"
|
|
]
|
|
},
|
|
"accessToken": {
|
|
"title": "Access Token",
|
|
"description": "OAuth 2 access token for google sheets application. This typically expires after an hour so refreshToken is recommended for long term usage.",
|
|
"type": "string",
|
|
"format": "password",
|
|
"x-descriptors": [
|
|
"urn:camel:group:credentials"
|
|
]
|
|
},
|
|
"refreshToken": {
|
|
"title": "Refresh Token",
|
|
"description": "OAuth 2 refresh token for google sheets application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
|
|
"type": "string",
|
|
"format": "password",
|
|
"x-descriptors": [
|
|
"urn:camel:group:credentials"
|
|
]
|
|
},
|
|
"applicationName": {
|
|
"title": "Application Name",
|
|
"description": "Google Sheets application name",
|
|
"type": "string"
|
|
},
|
|
"operation": {
|
|
"title": "Operation Mode",
|
|
"description": "Operation to execute (update or append)",
|
|
"type": "string",
|
|
"enum": [
|
|
"update",
|
|
"append"
|
|
],
|
|
"default": "append",
|
|
"example": "append"
|
|
},
|
|
"range": {
|
|
"title": "Cells Range",
|
|
"description": "The cell range of rows and columns to write data to.",
|
|
"type": "string",
|
|
"example": "A1:B3"
|
|
},
|
|
"majorDimension": {
|
|
"title": "Major Dimension",
|
|
"description": "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
|
|
"type": "string",
|
|
"enum": [
|
|
"COLUMNS",
|
|
"ROWS"
|
|
],
|
|
"default": "ROWS",
|
|
"example": "ROWS"
|
|
},
|
|
"columnNames": {
|
|
"title": "Column Names",
|
|
"description": "Optional custom column names that map to cell coordinates based on their position.",
|
|
"type": "string",
|
|
"default": "A"
|
|
},
|
|
"valueInputOption": {
|
|
"title": "Value Input Option",
|
|
"description": "Controls how the entered values should be be interpreted when adding them.",
|
|
"type": "string",
|
|
"enum": [
|
|
"USER_ENTERED",
|
|
"RAW"
|
|
],
|
|
"default": "USER_ENTERED",
|
|
"example": "USER_ENTERED"
|
|
}
|
|
}
|
|
},
|
|
"dataTypes": {
|
|
"in": {
|
|
"default": "json-struct",
|
|
"types": {
|
|
"json-struct": {
|
|
"format": "google-sheets:application-x-struct",
|
|
"description": "Special Json representation of Google Sheets ValueRange object with just row and column values as a generic JsonNode.",
|
|
"headers": {
|
|
"CamelGoogleSheets.range": {
|
|
"title": "Range",
|
|
"description": "Cells range to write data to.",
|
|
"default": "A:A",
|
|
"type": "string"
|
|
},
|
|
"CamelGoogleSheets.spreadsheetId": {
|
|
"title": "Spreadsheet id",
|
|
"description": "The Spreadsheet ID to be used as identifier.",
|
|
"type": "string"
|
|
},
|
|
"CamelGoogleSheets.majorDimension": {
|
|
"title": "Major dimension",
|
|
"description": "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
|
|
"default": "ROWS",
|
|
"type": "string"
|
|
},
|
|
"CamelGoogleSheets.columnNames": {
|
|
"title": "Column Names",
|
|
"description": "Optional custom column names that map to cell coordinates based on their position.",
|
|
"default": "A",
|
|
"type": "string"
|
|
},
|
|
"CamelGoogleSheets.valueInputOption": {
|
|
"title": "Value Input Option",
|
|
"description": "Controls how the entered values should be be interpreted when adding them.",
|
|
"default": "USER_ENTERED",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"mediaType": "application/json"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dependencies": [
|
|
"camel:core",
|
|
"camel:jackson",
|
|
"camel:kamelet",
|
|
"camel:google-sheets"
|
|
],
|
|
"template": {
|
|
"from": {
|
|
"uri": "kamelet:source",
|
|
"steps": [
|
|
{
|
|
"setHeader": {
|
|
"name": "CamelGoogleSheets.spreadsheetId",
|
|
"simple": "{{spreadsheetId}}"
|
|
}
|
|
},
|
|
{
|
|
"setHeader": {
|
|
"name": "CamelGoogleSheets.range",
|
|
"simple": "{{?range}}"
|
|
}
|
|
},
|
|
{
|
|
"setHeader": {
|
|
"name": "CamelGoogleSheets.majorDimension",
|
|
"simple": "{{?majorDimension}}"
|
|
}
|
|
},
|
|
{
|
|
"setHeader": {
|
|
"name": "CamelGoogleSheets.columnNames",
|
|
"simple": "{{?columnNames}}"
|
|
}
|
|
},
|
|
{
|
|
"setHeader": {
|
|
"name": "CamelGoogleSheets.valueInputOption",
|
|
"simple": "{{?valueInputOption}}"
|
|
}
|
|
},
|
|
{
|
|
"transformDataType": {
|
|
"toType": "google-sheets:application-x-struct"
|
|
}
|
|
},
|
|
{
|
|
"to": {
|
|
"uri": "google-sheets:data/{{operation}}",
|
|
"parameters": {
|
|
"spreadsheetId": "{{spreadsheetId}}",
|
|
"clientId": "{{clientId}}",
|
|
"accessToken": "{{accessToken}}",
|
|
"refreshToken": "{{refreshToken}}",
|
|
"clientSecret": "{{clientSecret}}",
|
|
"applicationName": "{{?applicationName}}",
|
|
"range": "{{?range}}"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"propertiesSchema": {
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "Google Sheets Sink",
|
|
"description": "Send data to Google Sheets and update/append values on a spreadsheet.",
|
|
"required": [
|
|
"spreadsheetId",
|
|
"clientId",
|
|
"accessToken",
|
|
"refreshToken",
|
|
"clientSecret"
|
|
],
|
|
"properties": {
|
|
"spreadsheetId": {
|
|
"type": "string",
|
|
"title": "Spreadsheet ID",
|
|
"description": "The Spreadsheet ID to be used as identifier"
|
|
},
|
|
"clientId": {
|
|
"type": "string",
|
|
"title": "Client Id",
|
|
"description": "Client ID of the sheets application",
|
|
"format": "password"
|
|
},
|
|
"clientSecret": {
|
|
"type": "string",
|
|
"title": "Client Secret",
|
|
"description": "Client Secret of the sheets application",
|
|
"format": "password"
|
|
},
|
|
"accessToken": {
|
|
"type": "string",
|
|
"title": "Access Token",
|
|
"description": "OAuth 2 access token for google sheets application. This typically expires after an hour so refreshToken is recommended for long term usage.",
|
|
"format": "password"
|
|
},
|
|
"refreshToken": {
|
|
"type": "string",
|
|
"title": "Refresh Token",
|
|
"description": "OAuth 2 refresh token for google sheets application. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
|
|
"format": "password"
|
|
},
|
|
"applicationName": {
|
|
"type": "string",
|
|
"title": "Application Name",
|
|
"description": "Google Sheets application name"
|
|
},
|
|
"operation": {
|
|
"type": "string",
|
|
"title": "Operation Mode",
|
|
"description": "Operation to execute (update or append)",
|
|
"enum": [
|
|
"update",
|
|
"append"
|
|
],
|
|
"default": "append"
|
|
},
|
|
"range": {
|
|
"type": "string",
|
|
"title": "Cells Range",
|
|
"description": "The cell range of rows and columns to write data to."
|
|
},
|
|
"majorDimension": {
|
|
"type": "string",
|
|
"title": "Major Dimension",
|
|
"description": "Specifies the major dimension that the given values should use (ROWS or COLUMNS).",
|
|
"enum": [
|
|
"COLUMNS",
|
|
"ROWS"
|
|
],
|
|
"default": "ROWS"
|
|
},
|
|
"columnNames": {
|
|
"type": "string",
|
|
"title": "Column Names",
|
|
"description": "Optional custom column names that map to cell coordinates based on their position.",
|
|
"default": "A"
|
|
},
|
|
"valueInputOption": {
|
|
"type": "string",
|
|
"title": "Value Input Option",
|
|
"description": "Controls how the entered values should be be interpreted when adding them.",
|
|
"enum": [
|
|
"USER_ENTERED",
|
|
"RAW"
|
|
],
|
|
"default": "USER_ENTERED"
|
|
}
|
|
}
|
|
}
|
|
} |