@klardaten/n8n-nodes-datevconnect 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +7 -10
  2. package/dist/credentials/DatevConnectApi.credentials.js +68 -95
  3. package/dist/nodes/Accounting/Accounting.config.js +1373 -0
  4. package/dist/nodes/Accounting/Accounting.node.js +180 -5153
  5. package/dist/nodes/Accounting/handlers/AccountPostingResourceHandler.js +40 -0
  6. package/dist/nodes/Accounting/handlers/AccountingSequenceResourceHandler.js +72 -0
  7. package/dist/nodes/Accounting/handlers/AccountingStatisticsResourceHandler.js +38 -0
  8. package/dist/nodes/Accounting/handlers/AccountingSumsAndBalancesResourceHandler.js +52 -0
  9. package/dist/nodes/Accounting/handlers/AccountingTransactionKeysResourceHandler.js +53 -0
  10. package/dist/nodes/Accounting/handlers/AccountsPayableResourceHandler.js +67 -0
  11. package/dist/nodes/Accounting/handlers/AccountsReceivableResourceHandler.js +48 -0
  12. package/dist/nodes/Accounting/handlers/BaseResourceHandler.js +148 -0
  13. package/dist/nodes/Accounting/handlers/BusinessPartnersResourceHandler.js +207 -0
  14. package/dist/nodes/Accounting/handlers/ClientResourceHandler.js +52 -0
  15. package/dist/nodes/Accounting/handlers/CostCenterPropertiesResourceHandler.js +55 -0
  16. package/dist/nodes/Accounting/handlers/CostCentersUnitsResourceHandler.js +55 -0
  17. package/dist/nodes/Accounting/handlers/CostSequencesResourceHandler.js +88 -0
  18. package/dist/nodes/Accounting/handlers/CostSystemsResourceHandler.js +62 -0
  19. package/dist/nodes/Accounting/handlers/FiscalYearResourceHandler.js +49 -0
  20. package/dist/nodes/Accounting/handlers/GeneralLedgerAccountsResourceHandler.js +67 -0
  21. package/dist/nodes/Accounting/handlers/InternalCostServicesResourceHandler.js +40 -0
  22. package/dist/nodes/Accounting/handlers/PostingProposalsResourceHandler.js +98 -0
  23. package/dist/nodes/Accounting/handlers/StocktakingDataResourceHandler.js +57 -0
  24. package/dist/nodes/Accounting/handlers/TermsOfPaymentResourceHandler.js +69 -0
  25. package/dist/nodes/Accounting/handlers/VariousAddressesResourceHandler.js +56 -0
  26. package/dist/nodes/Accounting/handlers/index.js +45 -0
  27. package/dist/nodes/Accounting/types.js +5 -0
  28. package/dist/nodes/DocumentManagement/DocumentManagement.config.js +598 -0
  29. package/dist/nodes/DocumentManagement/DocumentManagement.node.js +96 -3513
  30. package/dist/nodes/DocumentManagement/handlers/BaseResourceHandler.js +121 -0
  31. package/dist/nodes/DocumentManagement/handlers/DocumentFileResourceHandler.js +126 -0
  32. package/dist/nodes/DocumentManagement/handlers/DocumentResourceHandler.js +184 -0
  33. package/dist/nodes/DocumentManagement/handlers/DocumentStateResourceHandler.js +58 -0
  34. package/dist/nodes/DocumentManagement/handlers/DomainResourceHandler.js +32 -0
  35. package/dist/nodes/DocumentManagement/handlers/IndividualPropertyResourceHandler.js +32 -0
  36. package/dist/nodes/DocumentManagement/handlers/IndividualReference1ResourceHandler.js +49 -0
  37. package/dist/nodes/DocumentManagement/handlers/IndividualReference2ResourceHandler.js +49 -0
  38. package/dist/nodes/DocumentManagement/handlers/InfoResourceHandler.js +30 -0
  39. package/dist/nodes/DocumentManagement/handlers/PropertyTemplateResourceHandler.js +34 -0
  40. package/dist/nodes/DocumentManagement/handlers/SecureAreaResourceHandler.js +32 -0
  41. package/dist/nodes/DocumentManagement/types.js +2 -0
  42. package/dist/nodes/DocumentManagement/utils.js +116 -0
  43. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.config.js +368 -0
  44. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.js +77 -2774
  45. package/dist/nodes/IdentityAndAccessManagement/handlers/BaseResourceHandler.js +87 -0
  46. package/dist/nodes/IdentityAndAccessManagement/handlers/CurrentUserResourceHandler.js +17 -0
  47. package/dist/nodes/IdentityAndAccessManagement/handlers/GroupResourceHandler.js +63 -0
  48. package/dist/nodes/IdentityAndAccessManagement/handlers/ResourceTypeResourceHandler.js +17 -0
  49. package/dist/nodes/IdentityAndAccessManagement/handlers/SchemaResourceHandler.js +30 -0
  50. package/dist/nodes/IdentityAndAccessManagement/handlers/ServiceProviderConfigResourceHandler.js +17 -0
  51. package/dist/nodes/IdentityAndAccessManagement/handlers/UserResourceHandler.js +73 -0
  52. package/dist/nodes/IdentityAndAccessManagement/types.js +2 -0
  53. package/dist/nodes/IdentityAndAccessManagement/utils.js +89 -0
  54. package/dist/nodes/MasterData/MasterData.config.js +902 -0
  55. package/dist/nodes/MasterData/MasterData.node.js +107 -3561
  56. package/dist/nodes/MasterData/handlers/AddresseeResourceHandler.js +98 -0
  57. package/dist/nodes/MasterData/handlers/AreaOfResponsibilityResourceHandler.js +42 -0
  58. package/dist/nodes/MasterData/handlers/BankResourceHandler.js +42 -0
  59. package/dist/nodes/MasterData/handlers/BaseResourceHandler.js +91 -0
  60. package/dist/nodes/MasterData/handlers/ClientCategoryTypeResourceHandler.js +78 -0
  61. package/dist/nodes/MasterData/handlers/ClientGroupTypeResourceHandler.js +78 -0
  62. package/dist/nodes/MasterData/handlers/ClientResourceHandler.js +183 -0
  63. package/dist/nodes/MasterData/handlers/CorporateStructureResourceHandler.js +68 -0
  64. package/dist/nodes/MasterData/handlers/CountryCodeResourceHandler.js +42 -0
  65. package/dist/nodes/MasterData/handlers/EmployeeResourceHandler.js +78 -0
  66. package/dist/nodes/MasterData/handlers/LegalFormResourceHandler.js +42 -0
  67. package/dist/nodes/MasterData/handlers/RelationshipResourceHandler.js +54 -0
  68. package/dist/nodes/MasterData/handlers/TaxAuthorityResourceHandler.js +42 -0
  69. package/dist/nodes/MasterData/types.js +2 -0
  70. package/dist/nodes/MasterData/utils.js +92 -0
  71. package/dist/src/services/accountingClient.js +766 -0
  72. package/dist/src/services/datevConnectClient.js +1809 -0
  73. package/dist/src/services/documentManagementClient.js +546 -0
  74. package/dist/src/services/identityAndAccessManagementClient.js +293 -0
  75. package/package.json +38 -39
  76. package/dist/nodes/Accounting/Accounting.node.json +0 -25
  77. package/dist/nodes/DocumentManagement/DocumentManagement.node.json +0 -25
  78. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.json +0 -25
  79. package/dist/nodes/MasterData/MasterData.node.json +0 -25
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfoResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const documentManagementClient_1 = require("../../../src/services/documentManagementClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for info operations
9
+ */
10
+ class InfoResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async executeOperation(operation, authContext, sendSuccess) {
12
+ this.validateRequestContext(authContext);
13
+ switch (operation) {
14
+ case "get":
15
+ await this.getInfo(authContext, sendSuccess);
16
+ break;
17
+ default:
18
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for info`);
19
+ }
20
+ }
21
+ async getInfo(authContext, sendSuccess) {
22
+ const response = await documentManagementClient_1.DocumentManagementClient.fetchInfo({
23
+ host: authContext.host,
24
+ token: authContext.token,
25
+ clientInstanceId: authContext.clientInstanceId,
26
+ });
27
+ sendSuccess(response);
28
+ }
29
+ }
30
+ exports.InfoResourceHandler = InfoResourceHandler;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyTemplateResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const documentManagementClient_1 = require("../../../src/services/documentManagementClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for property template operations
9
+ */
10
+ class PropertyTemplateResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async executeOperation(operation, authContext, sendSuccess) {
12
+ this.validateRequestContext(authContext);
13
+ switch (operation) {
14
+ case 'getAll':
15
+ await this.getPropertyTemplates(authContext, sendSuccess);
16
+ break;
17
+ default:
18
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Unsupported operation: ${operation}`, {
19
+ itemIndex: this.itemIndex,
20
+ });
21
+ }
22
+ }
23
+ async getPropertyTemplates(authContext, sendSuccess) {
24
+ const filter = this.getOptionalString('filter');
25
+ const response = await documentManagementClient_1.DocumentManagementClient.fetchPropertyTemplates({
26
+ host: authContext.host,
27
+ token: authContext.token,
28
+ clientInstanceId: authContext.clientInstanceId,
29
+ filter,
30
+ });
31
+ sendSuccess(response);
32
+ }
33
+ }
34
+ exports.PropertyTemplateResourceHandler = PropertyTemplateResourceHandler;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecureAreaResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const documentManagementClient_1 = require("../../../src/services/documentManagementClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for secure area operations
9
+ */
10
+ class SecureAreaResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async executeOperation(operation, authContext, sendSuccess) {
12
+ this.validateRequestContext(authContext);
13
+ switch (operation) {
14
+ case 'getAll':
15
+ await this.getSecureAreas(authContext, sendSuccess);
16
+ break;
17
+ default:
18
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Unsupported operation: ${operation}`, {
19
+ itemIndex: this.itemIndex,
20
+ });
21
+ }
22
+ }
23
+ async getSecureAreas(authContext, sendSuccess) {
24
+ const response = await documentManagementClient_1.DocumentManagementClient.fetchSecureAreas({
25
+ host: authContext.host,
26
+ token: authContext.token,
27
+ clientInstanceId: authContext.clientInstanceId,
28
+ });
29
+ sendSuccess(response);
30
+ }
31
+ }
32
+ exports.SecureAreaResourceHandler = SecureAreaResourceHandler;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toErrorObject = toErrorObject;
4
+ exports.toErrorMessage = toErrorMessage;
5
+ exports.normaliseToObjects = normaliseToObjects;
6
+ exports.parseJsonParameter = parseJsonParameter;
7
+ exports.getOptionalString = getOptionalString;
8
+ exports.getRequiredString = getRequiredString;
9
+ exports.getNumberParameter = getNumberParameter;
10
+ exports.buildQueryParams = buildQueryParams;
11
+ exports.getRequiredJsonData = getRequiredJsonData;
12
+ const n8n_workflow_1 = require("n8n-workflow");
13
+ /**
14
+ * Converts an error to a standardized error object
15
+ */
16
+ function toErrorObject(error) {
17
+ if (error instanceof Error) {
18
+ return { message: error.message };
19
+ }
20
+ if (typeof error === "string") {
21
+ return { message: error };
22
+ }
23
+ if (error && typeof error === "object" && "message" in error) {
24
+ return { message: String(error.message) };
25
+ }
26
+ return { message: "An unknown error occurred" };
27
+ }
28
+ /**
29
+ * Extracts error message from an error object
30
+ */
31
+ function toErrorMessage(error) {
32
+ return toErrorObject(error).message;
33
+ }
34
+ /**
35
+ * Normalizes various data types to an array of objects
36
+ */
37
+ function normaliseToObjects(data) {
38
+ if (data === null || data === undefined) {
39
+ return [];
40
+ }
41
+ if (Array.isArray(data)) {
42
+ return data.map((item) => {
43
+ if (item === null || item === undefined) {
44
+ return {};
45
+ }
46
+ if (typeof item === "object") {
47
+ return item;
48
+ }
49
+ return { value: item };
50
+ });
51
+ }
52
+ if (typeof data === "object") {
53
+ return [data];
54
+ }
55
+ return [{ value: data }];
56
+ }
57
+ /**
58
+ * Parses a JSON parameter with proper error handling
59
+ */
60
+ function parseJsonParameter(value, parameterName, context, itemIndex) {
61
+ if (typeof value === "string") {
62
+ try {
63
+ return JSON.parse(value);
64
+ }
65
+ catch (error) {
66
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Invalid JSON in parameter '${parameterName}': ${toErrorMessage(error)}`, { itemIndex });
67
+ }
68
+ }
69
+ return value;
70
+ }
71
+ /**
72
+ * Gets an optional string parameter
73
+ */
74
+ function getOptionalString(context, parameterName, itemIndex) {
75
+ const value = context.getNodeParameter(parameterName, itemIndex, "");
76
+ return value.trim() || undefined;
77
+ }
78
+ /**
79
+ * Gets a required string parameter
80
+ */
81
+ function getRequiredString(context, parameterName, itemIndex) {
82
+ const value = getOptionalString(context, parameterName, itemIndex);
83
+ if (!value) {
84
+ throw new Error(`Parameter '${parameterName}' is required`);
85
+ }
86
+ return value;
87
+ }
88
+ /**
89
+ * Gets a number parameter with default value
90
+ */
91
+ function getNumberParameter(context, parameterName, itemIndex, defaultValue) {
92
+ const value = context.getNodeParameter(parameterName, itemIndex, defaultValue);
93
+ return value;
94
+ }
95
+ /**
96
+ * Builds query parameters object from optional values
97
+ */
98
+ function buildQueryParams(params) {
99
+ const query = {};
100
+ for (const [key, value] of Object.entries(params)) {
101
+ if (value !== undefined && value !== null && value !== "") {
102
+ query[key] = String(value);
103
+ }
104
+ }
105
+ return query;
106
+ }
107
+ /**
108
+ * Gets required JSON data from parameter
109
+ */
110
+ function getRequiredJsonData(context, parameterName, itemIndex) {
111
+ const rawValue = context.getNodeParameter(parameterName, itemIndex);
112
+ if (!rawValue) {
113
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Parameter '${parameterName}' is required`, { itemIndex });
114
+ }
115
+ return parseJsonParameter(rawValue, parameterName, context, itemIndex);
116
+ }
@@ -0,0 +1,368 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.identityAndAccessManagementNodeDescription = void 0;
4
+ exports.identityAndAccessManagementNodeDescription = {
5
+ displayName: "Klardaten DATEVconnect: Identity & Access",
6
+ name: "identityAndAccessManagement",
7
+ icon: "file:../klardaten.svg",
8
+ group: ["transform"],
9
+ version: 1,
10
+ description: "Work with DATEV Identity and Access Management (SCIM) endpoints",
11
+ defaults: {
12
+ name: "Identity & Access Management",
13
+ },
14
+ inputs: ["main"],
15
+ outputs: ["main"],
16
+ credentials: [
17
+ {
18
+ name: "datevConnectApi",
19
+ required: true,
20
+ },
21
+ ],
22
+ properties: [
23
+ {
24
+ displayName: "Resource",
25
+ name: "resource",
26
+ type: "options",
27
+ noDataExpression: true,
28
+ options: [
29
+ {
30
+ name: "Current User",
31
+ value: "currentUser",
32
+ },
33
+ {
34
+ name: "Group",
35
+ value: "group",
36
+ },
37
+ {
38
+ name: "Resource Type",
39
+ value: "resourceType",
40
+ },
41
+ {
42
+ name: "Schema",
43
+ value: "schema",
44
+ },
45
+ {
46
+ name: "Service Provider Config",
47
+ value: "serviceProviderConfig",
48
+ },
49
+ {
50
+ name: "User",
51
+ value: "user",
52
+ },
53
+ ],
54
+ default: "user",
55
+ },
56
+ // Service Provider Config operations
57
+ {
58
+ displayName: "Operation",
59
+ name: "operation",
60
+ type: "options",
61
+ noDataExpression: true,
62
+ displayOptions: {
63
+ show: {
64
+ resource: ["serviceProviderConfig"],
65
+ },
66
+ },
67
+ options: [
68
+ {
69
+ name: "Get",
70
+ value: "get",
71
+ action: "Get service provider config",
72
+ description: "Retrieve the SCIM service provider configuration",
73
+ },
74
+ ],
75
+ default: "get",
76
+ },
77
+ // Resource Type operations
78
+ {
79
+ displayName: "Operation",
80
+ name: "operation",
81
+ type: "options",
82
+ noDataExpression: true,
83
+ displayOptions: {
84
+ show: {
85
+ resource: ["resourceType"],
86
+ },
87
+ },
88
+ options: [
89
+ {
90
+ name: "Get Many",
91
+ value: "getAll",
92
+ action: "Get many resource types",
93
+ description: "Retrieve the available SCIM resource types",
94
+ },
95
+ ],
96
+ default: "getAll",
97
+ },
98
+ // Schema operations
99
+ {
100
+ displayName: "Operation",
101
+ name: "operation",
102
+ type: "options",
103
+ noDataExpression: true,
104
+ displayOptions: {
105
+ show: {
106
+ resource: ["schema"],
107
+ },
108
+ },
109
+ options: [
110
+ {
111
+ name: "Get Many",
112
+ value: "getAll",
113
+ action: "Get many schemas",
114
+ description: "List the supported SCIM schemas",
115
+ },
116
+ {
117
+ name: "Get",
118
+ value: "get",
119
+ action: "Get schema",
120
+ description: "Retrieve a single SCIM schema by ID",
121
+ },
122
+ ],
123
+ default: "getAll",
124
+ },
125
+ // User operations
126
+ {
127
+ displayName: "Operation",
128
+ name: "operation",
129
+ type: "options",
130
+ noDataExpression: true,
131
+ displayOptions: {
132
+ show: {
133
+ resource: ["user"],
134
+ },
135
+ },
136
+ options: [
137
+ {
138
+ name: "Create",
139
+ value: "create",
140
+ action: "Create a user",
141
+ description: "Create a new DATEV IAM user",
142
+ },
143
+ {
144
+ name: "Delete",
145
+ value: "delete",
146
+ action: "Delete a user",
147
+ description: "Delete a DATEV IAM user",
148
+ },
149
+ {
150
+ name: "Get",
151
+ value: "get",
152
+ action: "Get a user",
153
+ description: "Retrieve a single DATEV IAM user",
154
+ },
155
+ {
156
+ name: "Get Many",
157
+ value: "getAll",
158
+ action: "Get many users",
159
+ description: "List DATEV IAM users",
160
+ },
161
+ {
162
+ name: "Update",
163
+ value: "update",
164
+ action: "Update a user",
165
+ description: "Update an existing DATEV IAM user",
166
+ },
167
+ ],
168
+ default: "getAll",
169
+ },
170
+ // Current user operations
171
+ {
172
+ displayName: "Operation",
173
+ name: "operation",
174
+ type: "options",
175
+ noDataExpression: true,
176
+ displayOptions: {
177
+ show: {
178
+ resource: ["currentUser"],
179
+ },
180
+ },
181
+ options: [
182
+ {
183
+ name: "Get",
184
+ value: "get",
185
+ action: "Get current user",
186
+ description: "Fetch the currently authenticated DATEV IAM user",
187
+ },
188
+ ],
189
+ default: "get",
190
+ },
191
+ // Group operations
192
+ {
193
+ displayName: "Operation",
194
+ name: "operation",
195
+ type: "options",
196
+ noDataExpression: true,
197
+ displayOptions: {
198
+ show: {
199
+ resource: ["group"],
200
+ },
201
+ },
202
+ options: [
203
+ {
204
+ name: "Create",
205
+ value: "create",
206
+ action: "Create a group",
207
+ description: "Create a new DATEV IAM group",
208
+ },
209
+ {
210
+ name: "Delete",
211
+ value: "delete",
212
+ action: "Delete a group",
213
+ description: "Delete a DATEV IAM group",
214
+ },
215
+ {
216
+ name: "Get",
217
+ value: "get",
218
+ action: "Get a group",
219
+ description: "Retrieve a single DATEV IAM group",
220
+ },
221
+ {
222
+ name: "Get Many",
223
+ value: "getAll",
224
+ action: "Get many groups",
225
+ description: "List DATEV IAM groups",
226
+ },
227
+ {
228
+ name: "Update",
229
+ value: "update",
230
+ action: "Update a group",
231
+ description: "Update an existing DATEV IAM group",
232
+ },
233
+ ],
234
+ default: "getAll",
235
+ },
236
+ // Schema parameters
237
+ {
238
+ displayName: "Schema ID",
239
+ name: "schemaId",
240
+ type: "string",
241
+ required: true,
242
+ default: "",
243
+ description: "Full SCIM schema ID (e.g. urn:ietf:params:scim:schemas:core:2.0:User)",
244
+ displayOptions: {
245
+ show: {
246
+ resource: ["schema"],
247
+ operation: ["get"],
248
+ },
249
+ },
250
+ },
251
+ // User parameters
252
+ {
253
+ displayName: "User ID",
254
+ name: "userId",
255
+ type: "string",
256
+ required: true,
257
+ default: "",
258
+ description: "ID of the DATEV IAM user",
259
+ displayOptions: {
260
+ show: {
261
+ resource: ["user"],
262
+ operation: ["get", "update", "delete"],
263
+ },
264
+ },
265
+ },
266
+ {
267
+ displayName: "Filter",
268
+ name: "filter",
269
+ type: "string",
270
+ default: "",
271
+ description: "Optional SCIM filter expression",
272
+ displayOptions: {
273
+ show: {
274
+ resource: ["user"],
275
+ operation: ["getAll"],
276
+ },
277
+ },
278
+ },
279
+ {
280
+ displayName: "Attributes",
281
+ name: "attributes",
282
+ type: "string",
283
+ default: "",
284
+ description: "Optional comma-separated list of SCIM attributes to return",
285
+ displayOptions: {
286
+ show: {
287
+ resource: ["user"],
288
+ operation: ["getAll"],
289
+ },
290
+ },
291
+ },
292
+ {
293
+ displayName: "Start Index",
294
+ name: "startIndex",
295
+ type: "number",
296
+ typeOptions: {
297
+ minValue: 1,
298
+ },
299
+ default: 1,
300
+ description: "1-based index of the first result to return",
301
+ displayOptions: {
302
+ show: {
303
+ resource: ["user"],
304
+ operation: ["getAll"],
305
+ },
306
+ },
307
+ },
308
+ {
309
+ displayName: "Count",
310
+ name: "count",
311
+ type: "number",
312
+ typeOptions: {
313
+ minValue: 1,
314
+ },
315
+ default: 100,
316
+ description: "Maximum number of results to return",
317
+ displayOptions: {
318
+ show: {
319
+ resource: ["user"],
320
+ operation: ["getAll"],
321
+ },
322
+ },
323
+ },
324
+ {
325
+ displayName: "User Data",
326
+ name: "userData",
327
+ type: "json",
328
+ required: true,
329
+ default: "{}",
330
+ description: "Full SCIM user payload",
331
+ displayOptions: {
332
+ show: {
333
+ resource: ["user"],
334
+ operation: ["create", "update"],
335
+ },
336
+ },
337
+ },
338
+ // Group parameters
339
+ {
340
+ displayName: "Group ID",
341
+ name: "groupId",
342
+ type: "string",
343
+ required: true,
344
+ default: "",
345
+ description: "ID of the DATEV IAM group",
346
+ displayOptions: {
347
+ show: {
348
+ resource: ["group"],
349
+ operation: ["get", "update", "delete"],
350
+ },
351
+ },
352
+ },
353
+ {
354
+ displayName: "Group Data",
355
+ name: "groupData",
356
+ type: "json",
357
+ required: true,
358
+ default: "{}",
359
+ description: "Full SCIM group payload",
360
+ displayOptions: {
361
+ show: {
362
+ resource: ["group"],
363
+ operation: ["create", "update"],
364
+ },
365
+ },
366
+ },
367
+ ],
368
+ };