@webda/aws 4.0.0-beta.1 → 4.0.0-beta.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 (126) hide show
  1. package/README.md +64 -7
  2. package/lib/index.d.ts +1 -0
  3. package/lib/index.d.ts.map +1 -0
  4. package/lib/index.js.map +1 -1
  5. package/lib/services/aws-parameters.d.ts +33 -0
  6. package/lib/services/aws-parameters.d.ts.map +1 -0
  7. package/lib/services/aws-parameters.js +18 -0
  8. package/lib/services/aws-parameters.js.map +1 -0
  9. package/lib/services/awscommands.service.d.ts +39 -0
  10. package/lib/services/awscommands.service.d.ts.map +1 -0
  11. package/lib/services/awscommands.service.js +127 -0
  12. package/lib/services/awscommands.service.js.map +1 -0
  13. package/lib/services/cloudwatchlogger.service.d.ts +131 -0
  14. package/lib/services/cloudwatchlogger.service.d.ts.map +1 -0
  15. package/lib/services/{cloudwatchlogger.js → cloudwatchlogger.service.js} +66 -34
  16. package/lib/services/cloudwatchlogger.service.js.map +1 -0
  17. package/lib/services/contributors.d.ts +37 -0
  18. package/lib/services/contributors.d.ts.map +1 -0
  19. package/lib/services/contributors.js +2 -0
  20. package/lib/services/contributors.js.map +1 -0
  21. package/lib/services/dynamodb.service.d.ts +297 -0
  22. package/lib/services/dynamodb.service.d.ts.map +1 -0
  23. package/lib/services/dynamodb.service.js +985 -0
  24. package/lib/services/dynamodb.service.js.map +1 -0
  25. package/lib/services/index.d.ts +12 -31
  26. package/lib/services/index.d.ts.map +1 -0
  27. package/lib/services/index.js +11 -8
  28. package/lib/services/index.js.map +1 -1
  29. package/lib/services/lambdacaller.service.d.ts +81 -0
  30. package/lib/services/lambdacaller.service.d.ts.map +1 -0
  31. package/lib/services/lambdacaller.service.js +75 -0
  32. package/lib/services/lambdacaller.service.js.map +1 -0
  33. package/lib/services/lambdaserver.service.d.ts +127 -0
  34. package/lib/services/lambdaserver.service.d.ts.map +1 -0
  35. package/lib/services/lambdaserver.service.js +294 -0
  36. package/lib/services/lambdaserver.service.js.map +1 -0
  37. package/lib/services/{route53.d.ts → route53.service.d.ts} +21 -11
  38. package/lib/services/route53.service.d.ts.map +1 -0
  39. package/lib/services/{route53.js → route53.service.js} +35 -38
  40. package/lib/services/route53.service.js.map +1 -0
  41. package/lib/services/s3binary.service.d.ts +215 -0
  42. package/lib/services/s3binary.service.d.ts.map +1 -0
  43. package/lib/services/{s3binary.js → s3binary.service.js} +113 -74
  44. package/lib/services/s3binary.service.js.map +1 -0
  45. package/lib/services/secretsmanager.service.d.ts +102 -0
  46. package/lib/services/secretsmanager.service.d.ts.map +1 -0
  47. package/lib/services/{secretsmanager.js → secretsmanager.service.js} +42 -24
  48. package/lib/services/secretsmanager.service.js.map +1 -0
  49. package/lib/services/{sqsqueue.d.ts → sqsqueue.service.d.ts} +60 -34
  50. package/lib/services/sqsqueue.service.d.ts.map +1 -0
  51. package/lib/services/{sqsqueue.js → sqsqueue.service.js} +60 -35
  52. package/lib/services/sqsqueue.service.js.map +1 -0
  53. package/package.json +59 -65
  54. package/webda.module.json +738 -377
  55. package/lib/deployers/cloudformation.d.ts +0 -316
  56. package/lib/deployers/cloudformation.js +0 -837
  57. package/lib/deployers/cloudformation.js.map +0 -1
  58. package/lib/deployers/cloudformation.spec.d.ts +0 -1
  59. package/lib/deployers/cloudformation.spec.js +0 -530
  60. package/lib/deployers/cloudformation.spec.js.map +0 -1
  61. package/lib/deployers/index.d.ts +0 -254
  62. package/lib/deployers/index.js +0 -543
  63. package/lib/deployers/index.js.map +0 -1
  64. package/lib/deployers/index.spec.d.ts +0 -8
  65. package/lib/deployers/index.spec.js +0 -595
  66. package/lib/deployers/index.spec.js.map +0 -1
  67. package/lib/deployers/lambda-entrypoint.d.ts +0 -1
  68. package/lib/deployers/lambda-entrypoint.js +0 -11
  69. package/lib/deployers/lambda-entrypoint.js.map +0 -1
  70. package/lib/deployers/lambdapackager.d.ts +0 -27
  71. package/lib/deployers/lambdapackager.js +0 -26
  72. package/lib/deployers/lambdapackager.js.map +0 -1
  73. package/lib/deployers/lambdapackager.spec.d.ts +0 -1
  74. package/lib/deployers/lambdapackager.spec.js +0 -44
  75. package/lib/deployers/lambdapackager.spec.js.map +0 -1
  76. package/lib/index.spec.d.ts +0 -10
  77. package/lib/index.spec.js +0 -42
  78. package/lib/index.spec.js.map +0 -1
  79. package/lib/services/aws-mixin.d.ts +0 -24
  80. package/lib/services/aws-mixin.js +0 -18
  81. package/lib/services/aws-mixin.js.map +0 -1
  82. package/lib/services/cloudwatchlogger.d.ts +0 -81
  83. package/lib/services/cloudwatchlogger.js.map +0 -1
  84. package/lib/services/cloudwatchlogger.spec.d.ts +0 -1
  85. package/lib/services/cloudwatchlogger.spec.js +0 -104
  86. package/lib/services/cloudwatchlogger.spec.js.map +0 -1
  87. package/lib/services/dynamodb.d.ts +0 -173
  88. package/lib/services/dynamodb.js +0 -711
  89. package/lib/services/dynamodb.js.map +0 -1
  90. package/lib/services/dynamodb.spec.d.ts +0 -23
  91. package/lib/services/dynamodb.spec.js +0 -339
  92. package/lib/services/dynamodb.spec.js.map +0 -1
  93. package/lib/services/lambdacaller.d.ts +0 -68
  94. package/lib/services/lambdacaller.js +0 -63
  95. package/lib/services/lambdacaller.js.map +0 -1
  96. package/lib/services/lambdacaller.spec.d.ts +0 -1
  97. package/lib/services/lambdacaller.spec.js +0 -70
  98. package/lib/services/lambdacaller.spec.js.map +0 -1
  99. package/lib/services/lambdaserver.d.ts +0 -86
  100. package/lib/services/lambdaserver.js +0 -264
  101. package/lib/services/lambdaserver.js.map +0 -1
  102. package/lib/services/lambdaserver.spec.d.ts +0 -1
  103. package/lib/services/lambdaserver.spec.js +0 -417
  104. package/lib/services/lambdaserver.spec.js.map +0 -1
  105. package/lib/services/route53.js.map +0 -1
  106. package/lib/services/route53.spec.d.ts +0 -1
  107. package/lib/services/route53.spec.js +0 -102
  108. package/lib/services/route53.spec.js.map +0 -1
  109. package/lib/services/s3binary.d.ts +0 -162
  110. package/lib/services/s3binary.js.map +0 -1
  111. package/lib/services/s3binary.spec.d.ts +0 -1
  112. package/lib/services/s3binary.spec.js +0 -269
  113. package/lib/services/s3binary.spec.js.map +0 -1
  114. package/lib/services/secretsmanager.d.ts +0 -80
  115. package/lib/services/secretsmanager.js.map +0 -1
  116. package/lib/services/secretsmanager.spec.d.ts +0 -1
  117. package/lib/services/secretsmanager.spec.js +0 -66
  118. package/lib/services/secretsmanager.spec.js.map +0 -1
  119. package/lib/services/sqsqueue.js.map +0 -1
  120. package/lib/services/sqsqueue.spec.d.ts +0 -1
  121. package/lib/services/sqsqueue.spec.js +0 -152
  122. package/lib/services/sqsqueue.spec.js.map +0 -1
  123. package/lib/shell.d.ts +0 -12
  124. package/lib/shell.js +0 -42
  125. package/lib/shell.js.map +0 -1
  126. package/webda.shell.json +0 -11
package/webda.module.json CHANGED
@@ -1,429 +1,790 @@
1
1
  {
2
+ "$schema": "https://webda.io/schemas/webda.module.v4.json",
2
3
  "beans": {},
3
- "deployers": {
4
- "WebdaAWSDeployer/CloudFormation": "lib/deployers/cloudformation:default",
5
- "WebdaAWSDeployer/LambdaPackager": "lib/deployers/lambdapackager:default"
6
- },
4
+ "deployers": {},
7
5
  "moddas": {
8
- "Webda/AWSSecretsManager": "lib/services/secretsmanager:default",
9
- "Webda/CloudWatchLogger": "lib/services/cloudwatchlogger:default",
10
- "Webda/DynamoStore": "lib/services/dynamodb:default",
11
- "Webda/LambdaCaller": "lib/services/lambdacaller:LambdaCaller",
12
- "Webda/S3Binary": "lib/services/s3binary:default",
13
- "Webda/SQSQueue": "lib/services/sqsqueue:default"
14
- },
15
- "models": {
16
- "graph": {},
17
- "tree": {},
18
- "plurals": {},
19
- "list": {},
20
- "reflections": {}
21
- },
22
- "schemas": {
23
- "Webda/AWSSecretsManager": {
24
- "type": "object",
25
- "properties": {
26
- "type": {
27
- "type": "string",
28
- "description": "Type of the service"
29
- },
30
- "url": {
31
- "type": "string",
32
- "description": "URL on which to serve the content"
33
- },
34
- "openapi": {
35
- "type": "object",
36
- "additionalProperties": true
37
- }
6
+ "Webda/AWSCommands": {
7
+ "Import": "lib/services/awscommands.service:AWSCommands",
8
+ "Schema": {
9
+ "$schema": "http://json-schema.org/draft-07/schema#",
10
+ "additionalProperties": false,
11
+ "description": "Interface to specify the Service parameters",
12
+ "properties": {
13
+ "type": {
14
+ "description": "Type of the service",
15
+ "type": "string"
16
+ },
17
+ "openapi": {
18
+ "type": "object",
19
+ "additionalProperties": true
20
+ }
21
+ },
22
+ "required": [
23
+ "type"
24
+ ],
25
+ "type": "object",
26
+ "title": "AWSCommands"
38
27
  },
39
- "required": [
40
- "type"
41
- ],
42
- "description": "Interface to specify the Service parameters",
43
- "$schema": "http://json-schema.org/draft-07/schema#",
44
- "title": "CloudWatchLogger"
45
- },
46
- "Webda/BinaryFile": {
47
- "type": "object",
48
- "properties": {
49
- "hash": {
50
- "type": "string",
51
- "description": "Will be computed by the service\n\nhash of the content"
52
- },
53
- "challenge": {
54
- "type": "string",
55
- "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'"
56
- },
57
- "size": {
58
- "type": "number",
59
- "description": "Size of the binary"
60
- },
61
- "name": {
62
- "type": "string",
63
- "description": "Current name"
28
+ "Configuration": "node_modules/@webda/core/lib/services/serviceparameters:ServiceParameters",
29
+ "commands": {
30
+ "aws route53 export": {
31
+ "description": "Export a Route53 domain to a json file",
32
+ "method": "route53Export",
33
+ "args": {
34
+ "domain": {
35
+ "type": "string",
36
+ "required": true
37
+ },
38
+ "file": {
39
+ "type": "string",
40
+ "required": true
41
+ }
42
+ },
43
+ "requires": [
44
+ "aws-commands"
45
+ ],
46
+ "phase": "resolved"
64
47
  },
65
- "mimetype": {
66
- "type": "string",
67
- "description": "Mimetype of the binary"
48
+ "aws route53 import": {
49
+ "description": "Import a Route53 exported format to Route53",
50
+ "method": "route53Import",
51
+ "args": {
52
+ "file": {
53
+ "type": "string",
54
+ "required": true
55
+ }
56
+ },
57
+ "requires": [
58
+ "aws-commands"
59
+ ],
60
+ "phase": "resolved"
68
61
  },
69
- "metadata": {
70
- "description": "Metadatas stored along with the binary"
62
+ "aws route53 sync": {
63
+ "description": "Sync a Route53 exported format to Route53 (remove all others entries)",
64
+ "method": "route53Sync",
65
+ "args": {
66
+ "file": {
67
+ "type": "string",
68
+ "required": true
69
+ },
70
+ "pretend": {
71
+ "type": "boolean",
72
+ "default": false
73
+ }
74
+ },
75
+ "requires": [
76
+ "aws-commands"
77
+ ],
78
+ "phase": "resolved"
71
79
  },
72
- "originalname": {
73
- "type": "string",
74
- "description": "Original name"
80
+ "aws copyTable": {
81
+ "description": "Copy a DynamoDB table content to another table",
82
+ "method": "copyTable",
83
+ "args": {
84
+ "sourceTable": {
85
+ "type": "string",
86
+ "required": true
87
+ },
88
+ "targetTable": {
89
+ "type": "string",
90
+ "required": true
91
+ }
92
+ },
93
+ "requires": [
94
+ "aws-commands"
95
+ ],
96
+ "phase": "resolved"
75
97
  }
76
- },
77
- "required": [
78
- "mimetype",
79
- "name",
80
- "size"
81
- ],
82
- "description": "Represent a file to store",
83
- "$schema": "http://json-schema.org/draft-07/schema#",
84
- "title": "BinaryFile"
98
+ }
85
99
  },
86
- "Webda/CloudWatchLogger": {
87
- "type": "object",
88
- "properties": {
89
- "type": {
90
- "type": "string",
91
- "description": "Type of the service"
92
- },
93
- "url": {
94
- "type": "string",
95
- "description": "URL on which to serve the content"
96
- },
97
- "openapi": {
98
- "type": "object",
99
- "additionalProperties": true
100
- }
100
+ "Webda/AWSSecretsManager": {
101
+ "Import": "lib/services/secretsmanager.service:default",
102
+ "Schema": {
103
+ "$schema": "http://json-schema.org/draft-07/schema#",
104
+ "additionalProperties": false,
105
+ "definitions": {
106
+ "credentials": {
107
+ "additionalProperties": false,
108
+ "description": "Static credentials, default to the AWS environment variables",
109
+ "properties": {
110
+ "accessKeyId": {
111
+ "type": "string"
112
+ },
113
+ "secretAccessKey": {
114
+ "type": "string"
115
+ },
116
+ "sessionToken": {
117
+ "type": "string"
118
+ }
119
+ },
120
+ "required": [
121
+ "accessKeyId",
122
+ "secretAccessKey"
123
+ ],
124
+ "type": "object"
125
+ }
126
+ },
127
+ "description": "AWS SecretsManager parameters",
128
+ "properties": {
129
+ "credentials": {
130
+ "$ref": "#/definitions/credentials",
131
+ "description": "Static credentials, default to the AWS environment variables"
132
+ },
133
+ "endpoint": {
134
+ "description": "Custom endpoint (localstack, minio, ...)",
135
+ "type": "string"
136
+ },
137
+ "region": {
138
+ "default": "us-east-1",
139
+ "description": "AWS region",
140
+ "type": "string"
141
+ },
142
+ "type": {
143
+ "description": "Type of the service",
144
+ "type": "string"
145
+ },
146
+ "openapi": {
147
+ "type": "object",
148
+ "additionalProperties": true
149
+ }
150
+ },
151
+ "required": [
152
+ "type"
153
+ ],
154
+ "type": "object",
155
+ "title": "AWSSecretsManager"
101
156
  },
102
- "required": [
103
- "type"
104
- ],
105
- "description": "Interface to specify the Service parameters",
106
- "$schema": "http://json-schema.org/draft-07/schema#",
107
- "title": "CloudWatchLogger"
157
+ "Configuration": "lib/services/secretsmanager.service:AWSSecretsManagerParameters"
108
158
  },
109
- "Webda/DynamoStore": {
110
- "type": "object",
111
- "properties": {
112
- "type": {
113
- "type": "string",
114
- "description": "Type of the service"
115
- },
116
- "url": {
117
- "type": "string",
118
- "description": "URL on which to serve the content"
119
- },
120
- "model": {
121
- "type": "string",
122
- "description": "Webda model to use within the Store",
123
- "default": "Webda/CoreModel"
124
- },
125
- "additionalModels": {
126
- "type": "array",
127
- "items": {
159
+ "Webda/CloudWatchLogger": {
160
+ "Import": "lib/services/cloudwatchlogger.service:CloudWatchLogger",
161
+ "Schema": {
162
+ "$schema": "http://json-schema.org/draft-07/schema#",
163
+ "additionalProperties": false,
164
+ "definitions": {
165
+ "credentials": {
166
+ "additionalProperties": false,
167
+ "description": "Static credentials, default to the AWS environment variables",
168
+ "properties": {
169
+ "accessKeyId": {
170
+ "type": "string"
171
+ },
172
+ "secretAccessKey": {
173
+ "type": "string"
174
+ },
175
+ "sessionToken": {
176
+ "type": "string"
177
+ }
178
+ },
179
+ "required": [
180
+ "accessKeyId",
181
+ "secretAccessKey"
182
+ ],
183
+ "type": "object"
184
+ }
185
+ },
186
+ "description": "Send webda log to CloudWatch",
187
+ "properties": {
188
+ "CloudFormation": {
189
+ "description": "CloudFormation customization"
190
+ },
191
+ "CloudFormationSkip": {
192
+ "default": false,
193
+ "description": "Skip CloudFormation on deploy",
194
+ "type": "boolean"
195
+ },
196
+ "credentials": {
197
+ "$ref": "#/definitions/credentials",
198
+ "description": "Static credentials, default to the AWS environment variables"
199
+ },
200
+ "endpoint": {
201
+ "description": "Custom endpoint (localstack, minio, ...)",
128
202
  "type": "string"
129
203
  },
130
- "description": "Additional models\n\nAllow this store to manage other models",
131
- "default": []
132
- },
133
- "asyncDelete": {
134
- "type": "boolean",
135
- "description": "async delete"
136
- },
137
- "expose": {
138
- "$ref": "#/definitions/StoreExposeParameters",
139
- "description": "Expose the service to an urls",
140
- "deprecated": "will probably be removed in 4.0 in favor of Expose annotation"
141
- },
142
- "strict": {
143
- "type": "boolean",
144
- "description": "Allow to load object that does not have the type data\n\nIf set to true, then the Store will only managed the defined _model and no model extending this one",
145
- "default": false
146
- },
147
- "defaultModel": {
148
- "type": "boolean",
149
- "description": "When __type model not found, use the model If strict is setup this parameter is not used",
150
- "default": true
151
- },
152
- "forceModel": {
153
- "type": "boolean",
154
- "description": "If set, Store will ignore the __type",
155
- "default": false
156
- },
157
- "slowQueryThreshold": {
158
- "type": "number",
159
- "description": "Slow query threshold",
160
- "default": 30000
161
- },
162
- "modelAliases": {
163
- "type": "object",
164
- "additionalProperties": {
204
+ "kmsKeyId": {
205
+ "description": "KMS key to use when creating the log group",
165
206
  "type": "string"
166
207
  },
167
- "description": "Model Aliases to allow easier rename of Model"
168
- },
169
- "noCache": {
170
- "type": "boolean",
171
- "description": "Disable default memory cache"
172
- },
173
- "openapi": {
174
- "type": "object",
175
- "additionalProperties": true
176
- }
208
+ "logGroupName": {
209
+ "description": "logGroupName to send logStream to",
210
+ "type": "string"
211
+ },
212
+ "logLevel": {
213
+ "default": "INFO",
214
+ "description": "Minimum level of logs to send",
215
+ "enum": [
216
+ "ERROR",
217
+ "WARN",
218
+ "INFO",
219
+ "DEBUG",
220
+ "TRACE"
221
+ ],
222
+ "type": "string"
223
+ },
224
+ "logStreamNamePrefix": {
225
+ "description": "Prefix of the log stream name, a random uuid is appended",
226
+ "type": "string"
227
+ },
228
+ "region": {
229
+ "default": "us-east-1",
230
+ "description": "AWS region",
231
+ "type": "string"
232
+ },
233
+ "singlePush": {
234
+ "default": false,
235
+ "description": "Send each log line as soon as it is produced",
236
+ "type": "boolean"
237
+ },
238
+ "tags": {
239
+ "description": "Tags to add when creating the log group"
240
+ },
241
+ "type": {
242
+ "description": "Type of the service",
243
+ "type": "string"
244
+ },
245
+ "openapi": {
246
+ "type": "object",
247
+ "additionalProperties": true
248
+ }
249
+ },
250
+ "required": [
251
+ "logGroupName",
252
+ "type"
253
+ ],
254
+ "type": "object",
255
+ "title": "CloudWatchLogger"
177
256
  },
178
- "required": [
179
- "asyncDelete",
180
- "slowQueryThreshold",
181
- "type"
182
- ],
183
- "description": "Store parameter",
184
- "$schema": "http://json-schema.org/draft-07/schema#",
185
- "definitions": {
186
- "StoreExposeParameters": {
187
- "type": "object",
188
- "properties": {
189
- "url": {
190
- "type": "string",
191
- "description": "URL endpoint to use to expose REST Resources API",
192
- "default": "service.getName().toLowerCase()"
257
+ "Configuration": "lib/services/cloudwatchlogger.service:CloudWatchLoggerParameters"
258
+ },
259
+ "Webda/DynamoStore": {
260
+ "Import": "lib/services/dynamodb.service:DynamoStore",
261
+ "Schema": {
262
+ "$schema": "http://json-schema.org/draft-07/schema#",
263
+ "additionalProperties": false,
264
+ "definitions": {
265
+ "DynamoGlobalIndexes": {
266
+ "additionalProperties": {
267
+ "$ref": "#/definitions/globalIndexes%24%5Bkey%3A%20string%5D"
193
268
  },
194
- "restrict": {
195
- "type": "object",
196
- "properties": {
197
- "create": {
198
- "type": "boolean",
199
- "description": "Do not expose the POST"
200
- },
201
- "update": {
202
- "type": "boolean",
203
- "description": "Do not expose the PUT and PATCH"
204
- },
205
- "get": {
206
- "type": "boolean",
207
- "description": "Do not expose the GET"
208
- },
209
- "delete": {
210
- "type": "boolean",
211
- "description": "Do not expose the DELETE"
212
- },
213
- "query": {
214
- "type": "boolean",
215
- "description": "Do not expose the query endpoint"
216
- }
269
+ "description": "DynamoDB global secondary indexes definition",
270
+ "type": "object"
271
+ },
272
+ "credentials": {
273
+ "additionalProperties": false,
274
+ "description": "Static credentials, default to the AWS environment variables",
275
+ "properties": {
276
+ "accessKeyId": {
277
+ "type": "string"
217
278
  },
218
- "description": "You can restrict any part of the CRUD",
219
- "default": {}
279
+ "secretAccessKey": {
280
+ "type": "string"
281
+ },
282
+ "sessionToken": {
283
+ "type": "string"
284
+ }
220
285
  },
221
- "queryMethod": {
222
- "type": "string",
223
- "enum": [
224
- "PUT",
225
- "GET"
226
- ],
227
- "description": "For confidentiality sometimes you might prefer to expose query through PUT To avoid GET logging",
228
- "default": "GET"
229
- }
286
+ "required": [
287
+ "accessKeyId",
288
+ "secretAccessKey"
289
+ ],
290
+ "type": "object"
230
291
  },
231
- "deprecated": "Store should not be exposed directly anymore\nYou should use the DomainService instead"
232
- }
292
+ "globalIndexes$[key: string]": {
293
+ "additionalProperties": false,
294
+ "properties": {
295
+ "key": {
296
+ "description": "Hash key of the index",
297
+ "type": "string"
298
+ },
299
+ "sort": {
300
+ "description": "Range key of the index",
301
+ "type": "string"
302
+ }
303
+ },
304
+ "required": [
305
+ "key"
306
+ ],
307
+ "type": "object"
308
+ },
309
+ "modelAliases": {
310
+ "additionalProperties": {
311
+ "type": "string"
312
+ },
313
+ "description": "Model Aliases to allow easier rename of Model",
314
+ "type": "object"
315
+ },
316
+ "tables": {
317
+ "additionalProperties": {
318
+ "type": "string"
319
+ },
320
+ "description": "Per-model table name overrides, keyed by model identifier\n\nModels not listed use `table`",
321
+ "type": "object"
322
+ }
323
+ },
324
+ "description": "Define DynamoDB parameters",
325
+ "properties": {
326
+ "CloudFormation": {
327
+ "description": "CloudFormation customization"
328
+ },
329
+ "CloudFormationSkip": {
330
+ "default": false,
331
+ "description": "Skip CloudFormation on deploy",
332
+ "type": "boolean"
333
+ },
334
+ "credentials": {
335
+ "$ref": "#/definitions/credentials",
336
+ "description": "Static credentials, default to the AWS environment variables"
337
+ },
338
+ "defaultModel": {
339
+ "default": true,
340
+ "description": "When __type model not found, use the model\nIf strict is setup this parameter is not used",
341
+ "type": "boolean"
342
+ },
343
+ "endpoint": {
344
+ "description": "Custom endpoint (localstack, minio, ...)",
345
+ "type": "string"
346
+ },
347
+ "forceModel": {
348
+ "default": false,
349
+ "description": "If set, Store will ignore the __type",
350
+ "type": "boolean"
351
+ },
352
+ "globalIndexes": {
353
+ "$ref": "#/definitions/DynamoGlobalIndexes",
354
+ "description": "Additional global indexes"
355
+ },
356
+ "modelAliases": {
357
+ "$ref": "#/definitions/modelAliases",
358
+ "description": "Model Aliases to allow easier rename of Model"
359
+ },
360
+ "models": {
361
+ "default": [
362
+ "Webda/RegistryEntry"
363
+ ],
364
+ "description": "Models managed by this Store.",
365
+ "items": {
366
+ "type": "string"
367
+ },
368
+ "type": "array"
369
+ },
370
+ "noCache": {
371
+ "default": false,
372
+ "description": "Disable default memory cache",
373
+ "type": "boolean"
374
+ },
375
+ "region": {
376
+ "default": "us-east-1",
377
+ "description": "AWS region",
378
+ "type": "string"
379
+ },
380
+ "scanPage": {
381
+ "description": "Number of items to retrieve per scan page",
382
+ "type": "number"
383
+ },
384
+ "slowQueryThreshold": {
385
+ "default": 30000,
386
+ "description": "Slow query threshold",
387
+ "type": "number"
388
+ },
389
+ "strict": {
390
+ "default": false,
391
+ "description": "Allow to load object that does not have the type data\n\nIf set to true, then the Store will only managed the defined _model and no\nmodel extending this one",
392
+ "type": "boolean"
393
+ },
394
+ "table": {
395
+ "description": "Table name",
396
+ "type": "string"
397
+ },
398
+ "tables": {
399
+ "$ref": "#/definitions/tables",
400
+ "description": "Per-model table name overrides, keyed by model identifier\n\nModels not listed use `table`"
401
+ },
402
+ "type": {
403
+ "description": "Type of the service",
404
+ "type": "string"
405
+ },
406
+ "openapi": {
407
+ "type": "object",
408
+ "additionalProperties": true
409
+ }
410
+ },
411
+ "required": [
412
+ "table",
413
+ "type"
414
+ ],
415
+ "type": "object",
416
+ "title": "DynamoStore"
233
417
  },
234
- "title": "DynamoStore"
418
+ "Configuration": "lib/services/dynamodb.service:DynamoStoreParameters"
235
419
  },
236
420
  "Webda/LambdaCaller": {
237
- "type": "object",
238
- "properties": {
239
- "type": {
240
- "type": "string",
241
- "description": "Type of the service"
242
- },
243
- "url": {
244
- "type": "string",
245
- "description": "URL on which to serve the content"
246
- },
247
- "actions": {
248
- "type": "array",
249
- "items": {
421
+ "Import": "lib/services/lambdacaller.service:LambdaCaller",
422
+ "Schema": {
423
+ "$schema": "http://json-schema.org/draft-07/schema#",
424
+ "additionalProperties": false,
425
+ "definitions": {
426
+ "credentials": {
427
+ "additionalProperties": false,
428
+ "description": "Static credentials, default to the AWS environment variables",
429
+ "properties": {
430
+ "accessKeyId": {
431
+ "type": "string"
432
+ },
433
+ "secretAccessKey": {
434
+ "type": "string"
435
+ },
436
+ "sessionToken": {
437
+ "type": "string"
438
+ }
439
+ },
440
+ "required": [
441
+ "accessKeyId",
442
+ "secretAccessKey"
443
+ ],
444
+ "type": "object"
445
+ }
446
+ },
447
+ "description": "LambdaCaller parameters",
448
+ "properties": {
449
+ "actions": {
450
+ "default": [],
451
+ "description": "Actions managed by the runner",
452
+ "items": {
453
+ "type": "string"
454
+ },
455
+ "type": "array"
456
+ },
457
+ "arn": {
458
+ "description": "Default ARN to use",
250
459
  "type": "string"
251
460
  },
252
- "description": "Actions managed by the runner",
253
- "default": []
254
- },
255
- "openapi": {
256
- "type": "object",
257
- "additionalProperties": true
258
- }
461
+ "credentials": {
462
+ "$ref": "#/definitions/credentials",
463
+ "description": "Static credentials, default to the AWS environment variables"
464
+ },
465
+ "endpoint": {
466
+ "description": "Custom endpoint (localstack, minio, ...)",
467
+ "type": "string"
468
+ },
469
+ "region": {
470
+ "default": "us-east-1",
471
+ "description": "AWS region",
472
+ "type": "string"
473
+ },
474
+ "type": {
475
+ "description": "Type of the service",
476
+ "type": "string"
477
+ },
478
+ "openapi": {
479
+ "type": "object",
480
+ "additionalProperties": true
481
+ }
482
+ },
483
+ "required": [
484
+ "arn",
485
+ "type"
486
+ ],
487
+ "type": "object",
488
+ "title": "LambdaCaller"
259
489
  },
260
- "required": [
261
- "type"
262
- ],
263
- "$schema": "http://json-schema.org/draft-07/schema#",
264
- "title": "LambdaCaller"
490
+ "Configuration": "lib/services/lambdacaller.service:LambdaCallerParameters"
265
491
  },
266
- "Webda/S3Binary": {
267
- "type": "object",
268
- "properties": {
269
- "type": {
270
- "type": "string",
271
- "description": "Type of the service"
272
- },
273
- "url": {
274
- "type": "string",
275
- "description": "URL on which to serve the content"
276
- },
277
- "map": {
278
- "type": "object",
279
- "additionalProperties": {
280
- "type": "array",
281
- "items": {
282
- "type": "string"
283
- }
492
+ "Webda/LambdaServer": {
493
+ "Import": "lib/services/lambdaserver.service:LambdaServer",
494
+ "Schema": {
495
+ "$schema": "http://json-schema.org/draft-07/schema#",
496
+ "additionalProperties": false,
497
+ "description": "LambdaServer parameters",
498
+ "properties": {
499
+ "lambdaRequestHeader": {
500
+ "description": "Header to add to the response with the Lambda request id",
501
+ "type": "string"
284
502
  },
285
- "description": "Define the map to Object collection\n\nkey is a Store name the string[] represent all valids attributes to store files in",
286
- "deprecated": true
287
- },
288
- "models": {
289
- "type": "object",
290
- "additionalProperties": {
291
- "type": "array",
292
- "items": {
293
- "type": "string"
294
- }
503
+ "type": {
504
+ "description": "Type of the service",
505
+ "type": "string"
295
506
  },
296
- "description": "Define the map of models\n* indicates all models\n\nkey is a Store name the string[] represent all valids attributes to store files in * indicates all attributes"
297
- },
298
- "expose": {
299
- "type": "object",
300
- "properties": {
301
- "url": {
302
- "type": "string",
303
- "description": "URL to expose the service to"
507
+ "waitForEmptyEventLoop": {
508
+ "default": false,
509
+ "description": "Set the Lambda callbackWaitsForEmptyEventLoop",
510
+ "type": "boolean"
511
+ },
512
+ "openapi": {
513
+ "type": "object",
514
+ "additionalProperties": true
515
+ }
516
+ },
517
+ "required": [
518
+ "type"
519
+ ],
520
+ "type": "object",
521
+ "title": "LambdaServer"
522
+ },
523
+ "Configuration": "lib/services/lambdaserver.service:LambdaServerParameters"
524
+ },
525
+ "Webda/S3Binary": {
526
+ "Import": "lib/services/s3binary.service:S3Binary",
527
+ "Schema": {
528
+ "$schema": "http://json-schema.org/draft-07/schema#",
529
+ "additionalProperties": false,
530
+ "definitions": {
531
+ "credentials": {
532
+ "additionalProperties": false,
533
+ "description": "Static credentials, default to the AWS environment variables",
534
+ "properties": {
535
+ "accessKeyId": {
536
+ "type": "string"
537
+ },
538
+ "secretAccessKey": {
539
+ "type": "string"
540
+ },
541
+ "sessionToken": {
542
+ "type": "string"
543
+ }
304
544
  },
305
- "restrict": {
306
- "type": "object",
307
- "properties": {
308
- "get": {
309
- "type": "boolean",
310
- "description": "Restrict GET"
311
- },
312
- "create": {
313
- "type": "boolean",
314
- "description": "Restrict POST"
315
- },
316
- "delete": {
317
- "type": "boolean",
318
- "description": "Restrict DELETE"
319
- },
320
- "metadata": {
321
- "type": "boolean",
322
- "description": "Restrict update of metadata"
323
- }
545
+ "required": [
546
+ "accessKeyId",
547
+ "secretAccessKey"
548
+ ],
549
+ "type": "object"
550
+ },
551
+ "models": {
552
+ "additionalProperties": {
553
+ "items": {
554
+ "type": "string"
324
555
  },
325
- "description": "Restrict some APIs"
326
- }
556
+ "type": "array"
557
+ },
558
+ "description": "Define the map of models\n* indicates all models\n\nkey is a Store name\nthe string[] represent all valids attributes to store files in * indicates all attributes",
559
+ "type": "object"
560
+ }
561
+ },
562
+ "description": "S3Binary parameters",
563
+ "properties": {
564
+ "CloudFormation": {
565
+ "description": "CloudFormation customization"
327
566
  },
328
- "required": [
329
- "url"
330
- ],
331
- "description": "Expose the service to http",
332
- "deprecated": "will be removed in 4.0"
333
- },
334
- "prefix": {
335
- "type": "string"
336
- },
337
- "openapi": {
338
- "type": "object",
339
- "additionalProperties": true
340
- }
567
+ "CloudFormationSkip": {
568
+ "default": false,
569
+ "description": "Skip CloudFormation on deploy",
570
+ "type": "boolean"
571
+ },
572
+ "bucket": {
573
+ "description": "Bucket to store the binaries in",
574
+ "type": "string"
575
+ },
576
+ "credentials": {
577
+ "$ref": "#/definitions/credentials",
578
+ "description": "Static credentials, default to the AWS environment variables"
579
+ },
580
+ "endpoint": {
581
+ "description": "Custom endpoint (localstack, minio, ...)",
582
+ "type": "string"
583
+ },
584
+ "forcePathStyle": {
585
+ "default": false,
586
+ "description": "Use path style url (required by localstack/minio)",
587
+ "type": "boolean"
588
+ },
589
+ "maxFileSize": {
590
+ "default": "10 MB",
591
+ "description": "Define the maximum filesize to accept as direct upload\nGet the max file size in bytes",
592
+ "returns": "the result number",
593
+ "type": "number"
594
+ },
595
+ "models": {
596
+ "$ref": "#/definitions/models",
597
+ "description": "Define the map of models\n* indicates all models\n\nkey is a Store name\nthe string[] represent all valids attributes to store files in * indicates all attributes"
598
+ },
599
+ "prefix": {
600
+ "type": "string"
601
+ },
602
+ "region": {
603
+ "default": "us-east-1",
604
+ "description": "AWS region",
605
+ "type": "string"
606
+ },
607
+ "type": {
608
+ "description": "Type of the service",
609
+ "type": "string"
610
+ },
611
+ "openapi": {
612
+ "type": "object",
613
+ "additionalProperties": true
614
+ }
615
+ },
616
+ "required": [
617
+ "bucket",
618
+ "models",
619
+ "type"
620
+ ],
621
+ "type": "object",
622
+ "title": "S3Binary"
341
623
  },
342
- "required": [
343
- "map",
344
- "models",
345
- "type"
346
- ],
347
- "description": "Default binary parameters",
348
- "$schema": "http://json-schema.org/draft-07/schema#",
349
- "title": "S3Binary"
624
+ "Configuration": "lib/services/s3binary.service:S3BinaryParameters"
350
625
  },
351
626
  "Webda/SQSQueue": {
352
- "type": "object",
353
- "properties": {
354
- "type": {
355
- "type": "string",
356
- "description": "Type of the service"
357
- },
358
- "url": {
359
- "type": "string",
360
- "description": "URL on which to serve the content"
361
- },
362
- "workerDelayer": {
363
- "type": "object",
364
- "properties": {
365
- "interval": {
366
- "type": "number",
367
- "description": "Interval"
627
+ "Import": "lib/services/sqsqueue.service:default",
628
+ "Schema": {
629
+ "$schema": "http://json-schema.org/draft-07/schema#",
630
+ "additionalProperties": false,
631
+ "definitions": {
632
+ "WaitDelayerDefinition": {
633
+ "additionalProperties": false,
634
+ "description": "Configuration object for selecting and parameterizing a `WaitDelayer` from the registry.",
635
+ "properties": {
636
+ "interval": {
637
+ "description": "Base interval in milliseconds passed to the delayer factory.",
638
+ "type": "number"
639
+ },
640
+ "type": {
641
+ "description": "Key identifying the factory in `WaitDelayerFactories.registry` (e.g. `\"linear\"`, `\"exponential\"`).",
642
+ "type": "string"
643
+ }
368
644
  },
369
- "type": {
370
- "type": "string",
371
- "description": "Type of delayer registered in WaitDelayerFactoryRegistry"
372
- }
645
+ "required": [
646
+ "interval",
647
+ "type"
648
+ ],
649
+ "type": "object"
373
650
  },
374
- "required": [
375
- "interval",
376
- "type"
377
- ],
378
- "description": "Delayer between two failed attempts to process messages"
379
- },
380
- "workerParallelism": {
381
- "type": "boolean",
382
- "description": "Define if worker should process multi message received in //",
383
- "default": true
384
- },
385
- "maxConsumers": {
386
- "type": "number",
387
- "description": "Max number of queue consumers Queue will auto increase to this max number if queue is loaded and it will decrease to just one consumer if no messages are available",
388
- "default": 10
389
- },
390
- "openapi": {
391
- "type": "object",
392
- "additionalProperties": true
393
- }
651
+ "credentials": {
652
+ "additionalProperties": false,
653
+ "description": "Static credentials, default to the AWS environment variables",
654
+ "properties": {
655
+ "accessKeyId": {
656
+ "type": "string"
657
+ },
658
+ "secretAccessKey": {
659
+ "type": "string"
660
+ },
661
+ "sessionToken": {
662
+ "type": "string"
663
+ }
664
+ },
665
+ "required": [
666
+ "accessKeyId",
667
+ "secretAccessKey"
668
+ ],
669
+ "type": "object"
670
+ }
671
+ },
672
+ "description": "SQS Queue parameters",
673
+ "properties": {
674
+ "CloudFormation": {
675
+ "description": "Any additional CloudFormation parameters"
676
+ },
677
+ "CloudFormationSkip": {
678
+ "default": false,
679
+ "description": "Skip CloudFormation on deploy",
680
+ "type": "boolean"
681
+ },
682
+ "MessageGroupId": {
683
+ "description": "MessageGroupId to pass to send and receive",
684
+ "type": "string"
685
+ },
686
+ "WaitTimeSeconds": {
687
+ "default": 20,
688
+ "description": "Time to wait pending for an item",
689
+ "type": "number"
690
+ },
691
+ "credentials": {
692
+ "$ref": "#/definitions/credentials",
693
+ "description": "Static credentials, default to the AWS environment variables"
694
+ },
695
+ "endpoint": {
696
+ "description": "Custom endpoint (localstack, minio, ...)",
697
+ "type": "string"
698
+ },
699
+ "maxConsumers": {
700
+ "default": 10,
701
+ "description": "Max number of queue consumers\nQueue will auto increase to this max number if queue is loaded\nand it will decrease to just one consumer if no messages are available",
702
+ "type": "number"
703
+ },
704
+ "queue": {
705
+ "default": "",
706
+ "description": "Queue URL",
707
+ "type": "string"
708
+ },
709
+ "region": {
710
+ "default": "us-east-1",
711
+ "description": "AWS region",
712
+ "type": "string"
713
+ },
714
+ "type": {
715
+ "description": "Type of the service",
716
+ "type": "string"
717
+ },
718
+ "workerDelayer": {
719
+ "$ref": "#/definitions/WaitDelayerDefinition",
720
+ "description": "Delayer between two failed attempts to process messages"
721
+ },
722
+ "workerParallelism": {
723
+ "default": true,
724
+ "description": "Define if worker should process multi message received in //",
725
+ "type": "boolean"
726
+ },
727
+ "openapi": {
728
+ "type": "object",
729
+ "additionalProperties": true
730
+ }
731
+ },
732
+ "required": [
733
+ "type"
734
+ ],
735
+ "type": "object",
736
+ "title": "SQSQueue"
394
737
  },
395
- "required": [
396
- "maxConsumers",
397
- "type"
398
- ],
738
+ "Configuration": "lib/services/sqsqueue.service:SQSQueueParameters"
739
+ }
740
+ },
741
+ "models": {},
742
+ "schemas": {
743
+ "Webda/BinaryFile": {
399
744
  "$schema": "http://json-schema.org/draft-07/schema#",
400
- "title": "SQSQueue"
401
- },
402
- "WebdaAWSDeployer/CloudFormation": {
403
- "type": "object",
745
+ "WebdaSchema": true,
746
+ "additionalProperties": false,
747
+ "description": "Represent a file to store",
404
748
  "properties": {
405
- "name": {
749
+ "challenge": {
750
+ "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'",
406
751
  "type": "string"
407
752
  },
408
- "type": {
753
+ "hash": {
754
+ "description": "Will be computed by the service\n\nhash of the content",
409
755
  "type": "string"
410
- }
411
- },
412
- "$schema": "http://json-schema.org/draft-07/schema#",
413
- "title": "LambdaPackager"
414
- },
415
- "WebdaAWSDeployer/LambdaPackager": {
416
- "type": "object",
417
- "properties": {
756
+ },
757
+ "metadata": {
758
+ "description": "Metadatas stored along with the binary"
759
+ },
760
+ "mimetype": {
761
+ "description": "Mimetype of the binary",
762
+ "type": "string"
763
+ },
418
764
  "name": {
765
+ "description": "Current name",
419
766
  "type": "string"
420
767
  },
421
- "type": {
768
+ "originalname": {
769
+ "description": "Original name",
422
770
  "type": "string"
771
+ },
772
+ "size": {
773
+ "description": "Size of the binary",
774
+ "type": "number"
423
775
  }
424
776
  },
425
- "$schema": "http://json-schema.org/draft-07/schema#",
426
- "title": "LambdaPackager"
777
+ "required": [
778
+ "mimetype",
779
+ "name",
780
+ "size"
781
+ ],
782
+ "type": "object",
783
+ "title": "BinaryFile"
427
784
  }
785
+ },
786
+ "behaviors": {},
787
+ "capabilities": {
788
+ "aws-commands": "Webda/AWSCommands"
428
789
  }
429
790
  }