UNPKG

n8n-nodes-ionos

Version:

n8n nodes for IONOS DNS, Domain, SSL/Certificate management, Cloud AI, Cloud Infrastructure, Container Registry, Database as a Service, CDN, VPN Gateway, Activity Log, Billing, Logging, Monitoring, Object Storage Management, Network File Storage, Identity

1,377 lines (1,376 loc) 108 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IonosCloudDbaas = void 0; class IonosCloudDbaas { description = { displayName: 'IONOS Cloud DBaaS', name: 'ionosCloudDbaas', icon: 'file:ionos.svg', group: ['transform'], version: 1, subtitle: '={{ $parameter["operation"] + ": " + $parameter["resource"] }}', description: 'Manage IONOS Cloud Database as a Service (PostgreSQL, MongoDB, MariaDB, Redis). Developped with Love by Ascenzia (ascenzia.fr)', defaults: { name: 'IONOS Cloud DBaaS', }, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'ionosCloud', required: true, }, ], properties: [ { displayName: 'Database Type', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'PostgreSQL', value: 'postgresql', description: 'Manage PostgreSQL database clusters', }, { name: 'MongoDB', value: 'mongodb', description: 'Manage MongoDB database clusters', }, { name: 'MariaDB', value: 'mariadb', description: 'Manage MariaDB database clusters', }, { name: 'Redis', value: 'redis', description: 'Manage Redis In-Memory database replica sets', }, ], default: 'postgresql', }, { displayName: 'Resource', name: 'postgresqlResource', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['postgresql'], }, }, options: [ { name: 'Cluster', value: 'cluster', description: 'Manage PostgreSQL clusters', }, { name: 'User', value: 'user', description: 'Manage PostgreSQL users', }, { name: 'Database', value: 'database', description: 'Manage PostgreSQL databases', }, { name: 'Backup', value: 'backup', description: 'Manage PostgreSQL backups', }, { name: 'Log', value: 'log', description: 'Get PostgreSQL logs', }, ], default: 'cluster', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['cluster'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a PostgreSQL cluster', action: 'Create a PostgreSQL cluster', }, { name: 'Get', value: 'get', description: 'Get a PostgreSQL cluster', action: 'Get a PostgreSQL cluster', }, { name: 'Get Many', value: 'getMany', description: 'Get many PostgreSQL clusters', action: 'Get many PostgreSQL clusters', }, { name: 'Update', value: 'update', description: 'Update a PostgreSQL cluster', action: 'Update a PostgreSQL cluster', }, { name: 'Delete', value: 'delete', description: 'Delete a PostgreSQL cluster', action: 'Delete a PostgreSQL cluster', }, { name: 'Restore', value: 'restore', description: 'Restore PostgreSQL cluster from backup', action: 'Restore PostgreSQL cluster from backup', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['user'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a PostgreSQL user', action: 'Create a PostgreSQL user', }, { name: 'Get', value: 'get', description: 'Get a PostgreSQL user', action: 'Get a PostgreSQL user', }, { name: 'Get Many', value: 'getMany', description: 'Get many PostgreSQL users', action: 'Get many PostgreSQL users', }, { name: 'Update', value: 'update', description: 'Update a PostgreSQL user', action: 'Update a PostgreSQL user', }, { name: 'Delete', value: 'delete', description: 'Delete a PostgreSQL user', action: 'Delete a PostgreSQL user', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['database'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a PostgreSQL database', action: 'Create a PostgreSQL database', }, { name: 'Get', value: 'get', description: 'Get a PostgreSQL database', action: 'Get a PostgreSQL database', }, { name: 'Get Many', value: 'getMany', description: 'Get many PostgreSQL databases', action: 'Get many PostgreSQL databases', }, { name: 'Delete', value: 'delete', description: 'Delete a PostgreSQL database', action: 'Delete a PostgreSQL database', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['backup'], }, }, options: [ { name: 'Get', value: 'get', description: 'Get a PostgreSQL backup', action: 'Get a PostgreSQL backup', }, { name: 'Get Many', value: 'getMany', description: 'Get many PostgreSQL backups', action: 'Get many PostgreSQL backups', }, ], default: 'getMany', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['log'], }, }, options: [ { name: 'Get', value: 'get', description: 'Get PostgreSQL logs', action: 'Get PostgreSQL logs', }, ], default: 'get', }, { displayName: 'Resource', name: 'mongodbResource', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mongodb'], }, }, options: [ { name: 'Cluster', value: 'cluster', description: 'Manage MongoDB clusters', }, { name: 'User', value: 'user', description: 'Manage MongoDB users', }, { name: 'Snapshot', value: 'snapshot', description: 'Manage MongoDB snapshots', }, { name: 'Template', value: 'template', description: 'Get MongoDB templates', }, { name: 'Log', value: 'log', description: 'Get MongoDB logs', }, ], default: 'cluster', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['cluster'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a MongoDB cluster', action: 'Create a MongoDB cluster', }, { name: 'Get', value: 'get', description: 'Get a MongoDB cluster', action: 'Get a MongoDB cluster', }, { name: 'Get Many', value: 'getMany', description: 'Get many MongoDB clusters', action: 'Get many MongoDB clusters', }, { name: 'Update', value: 'update', description: 'Update a MongoDB cluster', action: 'Update a MongoDB cluster', }, { name: 'Delete', value: 'delete', description: 'Delete a MongoDB cluster', action: 'Delete a MongoDB cluster', }, { name: 'Restore', value: 'restore', description: 'Restore MongoDB cluster from snapshot', action: 'Restore MongoDB cluster from snapshot', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['user'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a MongoDB user', action: 'Create a MongoDB user', }, { name: 'Get', value: 'get', description: 'Get a MongoDB user', action: 'Get a MongoDB user', }, { name: 'Get Many', value: 'getMany', description: 'Get many MongoDB users', action: 'Get many MongoDB users', }, { name: 'Update', value: 'update', description: 'Update a MongoDB user', action: 'Update a MongoDB user', }, { name: 'Delete', value: 'delete', description: 'Delete a MongoDB user', action: 'Delete a MongoDB user', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['snapshot'], }, }, options: [ { name: 'Get Many', value: 'getMany', description: 'Get many MongoDB snapshots', action: 'Get many MongoDB snapshots', }, ], default: 'getMany', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['template'], }, }, options: [ { name: 'Get Many', value: 'getMany', description: 'Get many MongoDB templates', action: 'Get many MongoDB templates', }, ], default: 'getMany', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['log'], }, }, options: [ { name: 'Get', value: 'get', description: 'Get MongoDB logs', action: 'Get MongoDB logs', }, ], default: 'get', }, { displayName: 'Resource', name: 'mariadbResource', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mariadb'], }, }, options: [ { name: 'Cluster', value: 'cluster', description: 'Manage MariaDB clusters', }, { name: 'Backup', value: 'backup', description: 'Manage MariaDB backups', }, ], default: 'cluster', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['cluster'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a MariaDB cluster', action: 'Create a MariaDB cluster', }, { name: 'Get', value: 'get', description: 'Get a MariaDB cluster', action: 'Get a MariaDB cluster', }, { name: 'Get Many', value: 'getMany', description: 'Get many MariaDB clusters', action: 'Get many MariaDB clusters', }, { name: 'Update', value: 'update', description: 'Update a MariaDB cluster', action: 'Update a MariaDB cluster', }, { name: 'Delete', value: 'delete', description: 'Delete a MariaDB cluster', action: 'Delete a MariaDB cluster', }, { name: 'Restore', value: 'restore', description: 'Restore MariaDB cluster from backup', action: 'Restore MariaDB cluster from backup', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['backup'], }, }, options: [ { name: 'Get', value: 'get', description: 'Get a MariaDB backup', action: 'Get a MariaDB backup', }, { name: 'Get Many', value: 'getMany', description: 'Get many MariaDB backups', action: 'Get many MariaDB backups', }, ], default: 'getMany', }, { displayName: 'Resource', name: 'redisResource', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['redis'], }, }, options: [ { name: 'ReplicaSet', value: 'replicaset', description: 'Manage Redis replica sets', }, { name: 'Snapshot', value: 'snapshot', description: 'Manage Redis snapshots', }, ], default: 'replicaset', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['redis'], redisResource: ['replicaset'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a Redis replica set', action: 'Create a Redis replica set', }, { name: 'Get', value: 'get', description: 'Get a Redis replica set', action: 'Get a Redis replica set', }, { name: 'Get Many', value: 'getMany', description: 'Get many Redis replica sets', action: 'Get many Redis replica sets', }, { name: 'Delete', value: 'delete', action: 'Delete a Redis replica set', }, ], default: 'create', }, { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['redis'], redisResource: ['snapshot'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a Redis snapshot', action: 'Create a Redis snapshot', }, { name: 'Get', value: 'get', description: 'Get a Redis snapshot', action: 'Get a Redis snapshot', }, { name: 'Get Many', value: 'getMany', description: 'Get many Redis snapshots', action: 'Get many Redis snapshots', }, { name: 'Delete', value: 'delete', description: 'Delete a Redis snapshot', action: 'Delete a Redis snapshot', }, { name: 'Restore', value: 'restore', description: 'Restore Redis replica set from snapshot', action: 'Restore Redis replica set from snapshot', }, ], default: 'create', }, { displayName: 'Cluster ID', name: 'clusterId', type: 'string', required: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['cluster'], operation: ['get', 'update', 'delete', 'restore'], }, }, default: '', description: 'The unique ID of the PostgreSQL cluster', }, { displayName: 'Cluster ID', name: 'clusterId', type: 'string', required: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['cluster'], operation: ['get', 'update', 'delete', 'restore'], }, }, default: '', description: 'The unique ID of the MongoDB cluster', }, { displayName: 'Cluster ID', name: 'clusterId', type: 'string', required: true, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['cluster'], operation: ['get', 'update', 'delete', 'restore'], }, }, default: '', description: 'The unique ID of the MariaDB cluster', }, { displayName: 'Cluster ID', name: 'clusterId', type: 'string', required: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['user', 'database', 'backup', 'log'], }, }, default: '', description: 'The unique ID of the PostgreSQL cluster', }, { displayName: 'Cluster ID', name: 'clusterId', type: 'string', required: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['user', 'database'], }, }, default: '', description: 'The unique ID of the MongoDB cluster', }, { displayName: 'ReplicaSet ID', name: 'replicasetId', type: 'string', required: true, displayOptions: { show: { resource: ['redis'], redisResource: ['replicaset'], operation: ['get', 'delete'], }, }, default: '', description: 'The unique ID of the replica set', }, { displayName: 'Snapshot ID', name: 'snapshotId', type: 'string', required: true, displayOptions: { show: { resource: ['redis'], redisResource: ['snapshot'], operation: ['get', 'delete', 'restore'], }, }, default: '', description: 'The unique ID of the snapshot', }, { displayName: 'Backup ID', name: 'backupId', type: 'string', required: true, displayOptions: { show: { postgresqlResource: ['backup'], operation: ['get'], }, }, default: '', description: 'The unique ID of the backup', }, { displayName: 'Backup ID', name: 'backupId', type: 'string', required: true, displayOptions: { show: { mariadbResource: ['backup'], operation: ['get'], }, }, default: '', description: 'The unique ID of the backup', }, { displayName: 'Username', name: 'username', type: 'string', required: true, displayOptions: { show: { postgresqlResource: ['user'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The username', }, { displayName: 'New Password', name: 'password', type: 'string', typeOptions: { password: true, }, required: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['user'], operation: ['update'], }, }, default: '', description: 'The new password for the PostgreSQL user (10-63 characters)', }, { displayName: 'Username', name: 'username', type: 'string', required: true, displayOptions: { show: { mongodbResource: ['user'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The username', }, { displayName: 'New Password', name: 'password', type: 'string', typeOptions: { password: true, }, required: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['user'], operation: ['update'], }, }, default: '', description: 'The new password for the MongoDB user (10-63 characters)', }, { displayName: 'Database Name', name: 'databaseName', type: 'string', required: true, displayOptions: { show: { postgresqlResource: ['database'], operation: ['get', 'delete'], }, }, default: '', description: 'The database name', }, { displayName: 'Display Name', name: 'displayName', type: 'string', required: true, displayOptions: { show: { operation: ['create'], }, hide: { postgresqlResource: ['user', 'database', 'backup', 'log'], mongodbResource: ['user', 'database'], mariadbResource: ['backup'], }, }, default: '', description: 'The display name of the cluster/replica set', }, { displayName: 'PostgreSQL Version', name: 'postgresVersion', type: 'string', required: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['cluster'], operation: ['create'], }, }, default: '15', description: 'The PostgreSQL version (e.g., 12, 13, 14, 15, 16)', }, { displayName: 'MongoDB Version', name: 'mongoVersion', type: 'string', required: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['cluster'], operation: ['create'], }, }, default: '6.0', description: 'The MongoDB version (e.g., 5.0, 6.0, 7.0)', }, { displayName: 'Template ID', name: 'templateId', type: 'string', required: true, displayOptions: { show: { resource: ['mongodb'], mongodbResource: ['cluster'], operation: ['create'], }, }, default: '', placeholder: 'e.g., 6b78d3d3-3381-4493-8c04-76f4f034d20e', description: 'The unique ID of the template which specifies cores, storage size, and memory. Use /templates to get available templates.', }, { displayName: 'MariaDB Version', name: 'mariadbVersion', type: 'string', required: true, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['cluster'], operation: ['create'], }, }, default: '10.6', description: 'The MariaDB version (e.g., 10.6, 10.11)', }, { displayName: 'Redis Version', name: 'redisVersion', type: 'string', required: true, displayOptions: { show: { resource: ['redis'], redisResource: ['replicaset'], operation: ['create'], }, }, default: '7.2', description: 'The Redis version (e.g., 7.0, 7.2)', }, { displayName: 'Instances', name: 'instances', type: 'number', required: true, displayOptions: { show: { operation: ['create'], }, hide: { resource: ['redis'], postgresqlResource: ['user', 'database', 'backup', 'log'], mongodbResource: ['user', 'database'], mariadbResource: ['backup'], }, }, default: 1, typeOptions: { minValue: 1, maxValue: 5, }, description: 'The number of instances in the cluster (1-5)', }, { displayName: 'Replicas', name: 'replicas', type: 'number', required: true, displayOptions: { show: { resource: ['redis'], redisResource: ['replicaset'], operation: ['create'], }, }, default: 1, typeOptions: { minValue: 1, maxValue: 5, }, description: 'The number of replicas (1 = standalone, >1 = leader-follower)', }, { displayName: 'Cores', name: 'cores', type: 'number', displayOptions: { show: { operation: ['create'], }, }, default: 4, description: 'The number of CPU cores (not used for MongoDB - templates control resources)', }, { displayName: 'RAM (MB)', name: 'ram', type: 'number', required: true, displayOptions: { show: { operation: ['create'], }, hide: { resource: ['mariadb', 'redis'], postgresqlResource: ['user', 'database', 'backup', 'log'], mongodbResource: ['user', 'database', 'cluster'], }, }, typeOptions: { minValue: 1024, }, default: 4096, description: 'The amount of RAM in MB', }, { displayName: 'RAM (MB)', name: 'ram', type: 'number', required: true, displayOptions: { show: { operation: ['create'], resource: ['mariadb'], mariadbResource: ['cluster'], }, }, typeOptions: { minValue: 1024, }, default: 4096, description: 'The amount of RAM in MB', }, { displayName: 'RAM (MB)', name: 'ram', type: 'number', required: true, displayOptions: { show: { operation: ['create'], resource: ['redis'], redisResource: ['replicaset'], }, }, typeOptions: { minValue: 256, maxValue: 256, }, default: 256, description: 'The amount of RAM in MB (fixed at 256 MB for Redis)', }, { displayName: 'Storage Size (MB)', name: 'storageSize', type: 'number', required: true, displayOptions: { show: { operation: ['create'], }, hide: { resource: ['redis', 'mariadb'], postgresqlResource: ['user', 'database', 'backup', 'log'], mongodbResource: ['user', 'database', 'cluster'], }, }, typeOptions: { minValue: 5120, }, default: 20480, description: 'The storage size in MB', }, { displayName: 'Storage Size (MB)', name: 'storageSize', type: 'number', required: true, displayOptions: { show: { operation: ['create'], resource: ['mariadb'], mariadbResource: ['cluster'], }, }, typeOptions: { minValue: 10240, }, default: 10240, description: 'The storage size in MB (min 10 GB / 10240 MB)', }, { displayName: 'Location', name: 'location', type: 'options', required: true, displayOptions: { show: { operation: ['create', 'get', 'getMany', 'update', 'delete'], }, hide: { postgresqlResource: ['user', 'database', 'backup', 'log'], mongodbResource: ['user', 'database'], mariadbResource: ['backup'], }, }, options: [ { name: 'Frankfurt, Germany (de/fra)', value: 'de/fra', }, { name: 'Frankfurt 2, Germany (de/fra/2)', value: 'de/fra/2', }, { name: 'Berlin, Germany (de/txl)', value: 'de/txl', }, { name: 'Logroño, Spain (es/vit)', value: 'es/vit', }, { name: 'Paris, France (fr/par)', value: 'fr/par', }, { name: 'Birmingham, UK (gb/bhx)', value: 'gb/bhx', }, { name: 'London, UK (gb/lhr)', value: 'gb/lhr', }, { name: 'Newark, USA (us/ewr)', value: 'us/ewr', }, { name: 'Las Vegas, USA (us/las)', value: 'us/las', }, { name: 'Lenexa, USA (us/mci)', value: 'us/mci', }, ], default: 'de/fra', description: 'The location/region for the database', }, { displayName: 'Storage Type', name: 'storageType', type: 'options', required: true, displayOptions: { show: { operation: ['create'], }, hide: { resource: ['mariadb', 'redis'], postgresqlResource: ['user', 'database', 'backup', 'log'], mongodbResource: ['user', 'database', 'cluster'], }, }, options: [ { name: 'HDD', value: 'HDD', }, { name: 'SSD Standard', value: 'SSD Standard', }, { name: 'SSD Premium', value: 'SSD Premium', }, ], default: 'SSD Standard', description: 'The storage type for the database cluster', }, { displayName: 'Username', name: 'credentialsUsername', type: 'string', required: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['cluster'], operation: ['create'], }, }, default: '', placeholder: 'admin', description: 'The initial username for database access', }, { displayName: 'Password', name: 'credentialsPassword', type: 'string', required: true, typeOptions: { password: true, }, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['cluster'], operation: ['create'], }, }, default: '', description: 'The initial password for database access (min 10 characters)', }, { displayName: 'Username', name: 'credentialsUsername', type: 'string', required: true, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['cluster'], operation: ['create'], }, }, default: '', placeholder: 'admin', description: 'The initial username for database access', }, { displayName: 'Password', name: 'credentialsPassword', type: 'string', required: true, typeOptions: { password: true, }, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['cluster'], operation: ['create'], }, }, default: '', description: 'The initial password for database access (min 10 characters)', }, { displayName: 'Username', name: 'credentialsUsername', type: 'string', required: true, displayOptions: { show: { resource: ['redis'], redisResource: ['replicaset'], operation: ['create'], }, }, default: '', description: 'The initial username for database access', }, { displayName: 'Password', name: 'credentialsPassword', type: 'string', typeOptions: { password: true, }, required: true, displayOptions: { show: { resource: ['redis'], redisResource: ['replicaset'], operation: ['create'], }, }, default: '', description: 'The initial password for database access (min 10 characters)', }, { displayName: 'Synchronization Mode', name: 'synchronizationMode', type: 'options', required: true, displayOptions: { show: { resource: ['postgresql'], postgresqlResource: ['cluster'], operation: ['create'], }, }, options: [ { name: 'Asynchronous', value: 'ASYNCHRONOUS', description: 'Asynchronous replication - faster but may lose data on failure', }, { name: 'Synchronous', value: 'SYNCHRONOUS', description: 'Synchronous replication - balanced performance and durability', }, { name: 'Strictly Synchronous', value: 'STRICTLY_SYNCHRONOUS', description: 'Strictly synchronous - highest durability but slower', }, ], default: 'ASYNCHRONOUS', description: 'The synchronization mode for PostgreSQL replication', }, { displayName: 'Synchronization Mode', name: 'synchronizationMode', type: 'options', required: true, displayOptions: { show: { resource: ['mariadb'], mariadbResource: ['cluster'], operation: ['create'], }, }, options: [ { name: 'Asynchronous',