@epilot/blueprint-manifest-client 2.2.6 → 2.3.0

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 epilot GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md CHANGED
@@ -1,18 +1,18 @@
1
1
  # @epilot/blueprint-manifest-client
2
2
 
3
3
  [![CI](https://github.com/epilot-dev/sdk-js/workflows/CI/badge.svg)](https://github.com/epilot-dev/sdk-js/actions?query=workflow%3ACI)
4
- [![npm version](https://img.shields.io/npm/v/@epilot/blueprint-manifest-client.svg)](https://www.npmjs.com/package/@epilot/blueprint-manifest-client)
5
- [![bundle size](https://img.shields.io/bundlephobia/minzip/@epilot/blueprint-manifest-client?label=gzip%20bundle)](https://bundlephobia.com/package/@epilot/blueprint-manifest-client)
4
+ [![npm version](https://img.shields.io/npm/v/@epilot/tf-blueprints-client.svg)](https://www.npmjs.com/package/@epilot/tf-blueprints-client)
5
+ [![bundle size](https://img.shields.io/bundlephobia/minzip/@epilot/tf-blueprints-client?label=gzip%20bundle)](https://bundlephobia.com/package/@epilot/tf-blueprints-client)
6
6
  [![License](http://img.shields.io/:license-mit-blue.svg)](https://github.com/epilot-dev/sdk-js/blob/main/LICENSE)
7
7
 
8
8
  Client library for epilot [Blueprint Manifest API](https://docs.epilot.io/api/blueprint-manifest)
9
9
 
10
- Uses [`openapi-client-axios`](https://github.com/openapistack/openapi-client-axios)
10
+ Uses [`openapi-client-axios`](https://github.com/anttiviljami/openapi-client-axios)
11
11
 
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- npm install --save @epilot/blueprint-manifest-client
15
+ npm install --save @epilot/tf-blueprints-client
16
16
  ```
17
17
 
18
18
  ## Usage
@@ -1 +1 @@
1
- (()=>{"use strict";var e={914:function(e,t,s){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var n=o(s(240));t.default=n.default},240:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"servers":[{"url":"https://blueprint-manifest.sls.epilot.io"}],"paths":{"/v1/blueprint-manifest/jobs/{job_id}":{"get":{"operationId":"getJob","parameters":[{"$ref":"#/components/parameters/JobID"}],"responses":{}}},"/v1/blueprint-manifest/jobs:createExport":{"post":{"operationId":"createExport","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/blueprint-manifest/jobs/{job_id}:exportManifest":{"post":{"operationId":"exportManifest","parameters":[{"$ref":"#/components/parameters/JobID"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/blueprint-manifest:uploadManifest":{"post":{"operationId":"uploadManifest","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/blueprint-manifest/jobs:createPlan":{"post":{"operationId":"createPlan","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/blueprint-manifest/jobs/{job_id}:applyPlan":{"post":{"operationId":"applyPlan","parameters":[{"$ref":"#/components/parameters/JobID"}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/blueprint-manifest/manifests":{"get":{"operationId":"listInstalledManifests","responses":{}}},"/v1/blueprint-manifest/manifests/{manifest_id}":{"get":{"operationId":"getManifest","parameters":[{"in":"path","required":true,"name":"manifest_id"}],"responses":{}},"delete":{"operationId":"deleteManifest","parameters":[{"in":"path","required":true,"name":"manifest_id"}],"responses":{}}}},"components":{"parameters":{"JobID":{"name":"job_id","in":"path","required":true}}}}')}},t={},s=function s(o){var n=t[o];if(void 0!==n)return n.exports;var r=t[o]={exports:{}};return e[o].call(r.exports,r,r.exports,s),r.exports}(914),o=exports;for(var n in s)o[n]=s[n];s.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={914:function(e,t,o){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var n=r(o(240));t.default=n.default},240:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"servers":[{"url":"https://blueprint-manifest.sls.epilot.io"}],"paths":{"/v1/blueprint-manifest/jobs/{job_id}":{"get":{"operationId":"getJob","parameters":[{"$ref":"#/components/parameters/JobID"}]}},"/v1/blueprint-manifest/jobs:createExport":{"post":{"operationId":"createExport","requestBody":{"content":{"application/json":{}}}}},"/v1/blueprint-manifest/jobs/{job_id}:exportManifest":{"post":{"operationId":"exportManifest","parameters":[{"$ref":"#/components/parameters/JobID"}],"requestBody":{"content":{"application/json":{}}}}},"/v1/blueprint-manifest:uploadManifest":{"post":{"operationId":"uploadManifest","requestBody":{"content":{"application/json":{}}}}},"/v1/blueprint-manifest/jobs:createPlan":{"post":{"operationId":"createPlan","requestBody":{"content":{"application/json":{}}}}},"/v1/blueprint-manifest/jobs/{job_id}:applyPlan":{"post":{"operationId":"applyPlan","parameters":[{"$ref":"#/components/parameters/JobID"}],"requestBody":{"content":{"application/json":{}}}}}},"components":{"parameters":{"JobID":{"name":"job_id","in":"path","required":true}}}}')}},t={},o=function o(r){var n=t[r];if(void 0!==n)return n.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,o),a.exports}(914),r=exports;for(var n in o)r[n]=o[n];o.__esModule&&Object.defineProperty(r,"__esModule",{value:!0})})();
package/dist/index.js CHANGED
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./client"), exports);
18
+ __exportStar(require("./openapi"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -17,8 +17,7 @@
17
17
  {
18
18
  "$ref": "#/components/parameters/JobID"
19
19
  }
20
- ],
21
- "responses": {}
20
+ ]
22
21
  }
23
22
  },
24
23
  "/v1/blueprint-manifest/jobs:createExport": {
@@ -28,8 +27,7 @@
28
27
  "content": {
29
28
  "application/json": {}
30
29
  }
31
- },
32
- "responses": {}
30
+ }
33
31
  }
34
32
  },
35
33
  "/v1/blueprint-manifest/jobs/{job_id}:exportManifest": {
@@ -44,8 +42,7 @@
44
42
  "content": {
45
43
  "application/json": {}
46
44
  }
47
- },
48
- "responses": {}
45
+ }
49
46
  }
50
47
  },
51
48
  "/v1/blueprint-manifest:uploadManifest": {
@@ -55,8 +52,7 @@
55
52
  "content": {
56
53
  "application/json": {}
57
54
  }
58
- },
59
- "responses": {}
55
+ }
60
56
  }
61
57
  },
62
58
  "/v1/blueprint-manifest/jobs:createPlan": {
@@ -66,8 +62,7 @@
66
62
  "content": {
67
63
  "application/json": {}
68
64
  }
69
- },
70
- "responses": {}
65
+ }
71
66
  }
72
67
  },
73
68
  "/v1/blueprint-manifest/jobs/{job_id}:applyPlan": {
@@ -82,38 +77,7 @@
82
77
  "content": {
83
78
  "application/json": {}
84
79
  }
85
- },
86
- "responses": {}
87
- }
88
- },
89
- "/v1/blueprint-manifest/manifests": {
90
- "get": {
91
- "operationId": "listInstalledManifests",
92
- "responses": {}
93
- }
94
- },
95
- "/v1/blueprint-manifest/manifests/{manifest_id}": {
96
- "get": {
97
- "operationId": "getManifest",
98
- "parameters": [
99
- {
100
- "in": "path",
101
- "required": true,
102
- "name": "manifest_id"
103
- }
104
- ],
105
- "responses": {}
106
- },
107
- "delete": {
108
- "operationId": "deleteManifest",
109
- "parameters": [
110
- {
111
- "in": "path",
112
- "required": true,
113
- "name": "manifest_id"
114
- }
115
- ],
116
- "responses": {}
80
+ }
117
81
  }
118
82
  }
119
83
  },
package/dist/openapi.d.ts CHANGED
@@ -11,7 +11,7 @@ import type {
11
11
  declare namespace Components {
12
12
  namespace Parameters {
13
13
  export type JobID = /**
14
- * ID of an import or export job (state machine)
14
+ * ID of an import or export job
15
15
  * example:
16
16
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
17
17
  */
@@ -21,79 +21,14 @@ declare namespace Components {
21
21
  JobID?: Parameters.JobID;
22
22
  }
23
23
  namespace Schemas {
24
- export interface CommonImportFields {
25
- /**
26
- * An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import
27
- */
28
- imported_resources?: /* An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import */ RootResourceNode[] | RootResourceNode;
29
- /**
30
- * An URL to download the imported resources when the resources are too large to be included in the response
31
- * example:
32
- * https://blueprint-manifest-prod.s3.eu-central-1.amazonaws.com/large.json
33
- */
34
- large_imported_resources_url?: string; // uri
35
- }
36
- export interface CommonManifestFields {
37
- manifest_id?: /**
38
- * ID of an imported / installed manifest
39
- * example:
40
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
41
- */
42
- ManifestID;
43
- /**
44
- * example:
45
- * Solar B2B
46
- */
47
- source_blueprint_name?: string;
48
- /**
49
- * URL slug of a blueprint from the epilot marketplace
50
- * example:
51
- * solar-b2b
52
- */
53
- source_blueprint_slug?: string;
54
- /**
55
- * Version of the blueprint (semver)
56
- * example:
57
- * 1.0.0
58
- */
59
- source_blueprint_version?: string;
60
- }
61
- export interface CommonMarkdownFields {
62
- /**
63
- * Markdown content part of a manifest file
64
- */
65
- markdown?: {
66
- /**
67
- * Markdown content shown before installing the manifest
68
- * example:
69
- * This is the content of the manifest.md file which contains the manifest descripton.
70
- *
71
- */
72
- manifest?: string;
73
- /**
74
- * Markdown content to be displayed when showing the plan to install blueprint
75
- * example:
76
- * This is the content of the preinstall.md file
77
- *
78
- */
79
- preinstall?: string;
80
- /**
81
- * Markdown content to be displayed when showing the plan to install blueprint
82
- * example:
83
- * This is the content of the postinstall.md file
84
- *
85
- */
86
- postinstall?: string;
87
- };
88
- }
89
24
  export interface Job {
25
+ job_status?: JobStatus;
90
26
  job_id?: /**
91
- * ID of an import or export job (state machine)
27
+ * ID of an import or export job
92
28
  * example:
93
29
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
94
30
  */
95
31
  JobID;
96
- job_status?: JobStatus;
97
32
  message?: string;
98
33
  timestamp?: string; // date-time
99
34
  /**
@@ -122,21 +57,9 @@ declare namespace Components {
122
57
  imported_resources?: /* An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import */ RootResourceNode[] | RootResourceNode;
123
58
  /**
124
59
  * An URL to download the imported resources when the resources are too large to be included in the response
125
- * example:
126
- * https://blueprint-manifest-prod.s3.eu-central-1.amazonaws.com/large.json
127
- */
128
- large_imported_resources_url?: string; // uri
129
- /**
130
- * Markdown content part of a manifest file
131
60
  */
61
+ large_imported_resources_url?: string;
132
62
  markdown?: {
133
- /**
134
- * Markdown content shown before installing the manifest
135
- * example:
136
- * This is the content of the manifest.md file which contains the manifest descripton.
137
- *
138
- */
139
- manifest?: string;
140
63
  /**
141
64
  * Markdown content to be displayed when showing the plan to install blueprint
142
65
  * example:
@@ -152,155 +75,14 @@ declare namespace Components {
152
75
  */
153
76
  postinstall?: string;
154
77
  };
155
- manifest_id?: /**
156
- * ID of an imported / installed manifest
157
- * example:
158
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
159
- */
160
- ManifestID;
161
- /**
162
- * example:
163
- * Solar B2B
164
- */
165
- source_blueprint_name?: string;
166
- /**
167
- * URL slug of a blueprint from the epilot marketplace
168
- * example:
169
- * solar-b2b
170
- */
171
- source_blueprint_slug?: string;
172
- /**
173
- * Version of the blueprint (semver)
174
- * example:
175
- * 1.0.0
176
- */
177
- source_blueprint_version?: string;
178
78
  }
179
79
  /**
180
- * ID of an import or export job (state machine)
80
+ * ID of an import or export job
181
81
  * example:
182
82
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
183
83
  */
184
84
  export type JobID = string;
185
85
  export type JobStatus = "STARTED" | "WAITING_USER_ACTION" | "CANCELED" | "IN_PROGRESS" | "SUCCESS" | "FAILED";
186
- export interface Manifest {
187
- manifest_id?: /**
188
- * ID of an imported / installed manifest
189
- * example:
190
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
191
- */
192
- ManifestID;
193
- /**
194
- * example:
195
- * Solar B2B
196
- */
197
- source_blueprint_name?: string;
198
- /**
199
- * URL slug of a blueprint from the epilot marketplace
200
- * example:
201
- * solar-b2b
202
- */
203
- source_blueprint_slug?: string;
204
- /**
205
- * Version of the blueprint (semver)
206
- * example:
207
- * 1.0.0
208
- */
209
- source_blueprint_version?: string;
210
- /**
211
- * Markdown content part of a manifest file
212
- */
213
- markdown?: {
214
- /**
215
- * Markdown content shown before installing the manifest
216
- * example:
217
- * This is the content of the manifest.md file which contains the manifest descripton.
218
- *
219
- */
220
- manifest?: string;
221
- /**
222
- * Markdown content to be displayed when showing the plan to install blueprint
223
- * example:
224
- * This is the content of the preinstall.md file
225
- *
226
- */
227
- preinstall?: string;
228
- /**
229
- * Markdown content to be displayed when showing the plan to install blueprint
230
- * example:
231
- * This is the content of the postinstall.md file
232
- *
233
- */
234
- postinstall?: string;
235
- };
236
- /**
237
- * An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import
238
- */
239
- imported_resources?: /* An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import */ RootResourceNode[] | RootResourceNode;
240
- /**
241
- * An URL to download the imported resources when the resources are too large to be included in the response
242
- * example:
243
- * https://blueprint-manifest-prod.s3.eu-central-1.amazonaws.com/large.json
244
- */
245
- large_imported_resources_url?: string; // uri
246
- /**
247
- * When the manifest was first installed (applied)
248
- */
249
- created_at?: string; // date-time
250
- /**
251
- * When the manifest was last updated (applied)
252
- */
253
- updated_at?: string; // date-time
254
- }
255
- /**
256
- * ID of an imported / installed manifest
257
- * example:
258
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
259
- */
260
- export type ManifestID = string;
261
- export interface ManifestItem {
262
- manifest_id?: /**
263
- * ID of an imported / installed manifest
264
- * example:
265
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
266
- */
267
- ManifestID;
268
- /**
269
- * example:
270
- * Solar B2B
271
- */
272
- source_blueprint_name?: string;
273
- /**
274
- * URL slug of a blueprint from the epilot marketplace
275
- * example:
276
- * solar-b2b
277
- */
278
- source_blueprint_slug?: string;
279
- /**
280
- * Version of the blueprint (semver)
281
- * example:
282
- * 1.0.0
283
- */
284
- source_blueprint_version?: string;
285
- /**
286
- * When the manifest was first installed (applied)
287
- */
288
- created_at?: string; // date-time
289
- /**
290
- * When the manifest was last updated (applied)
291
- */
292
- updated_at?: string; // date-time
293
- }
294
- export interface ManifestTimestampFields {
295
- /**
296
- * When the manifest was first installed (applied)
297
- */
298
- created_at?: string; // date-time
299
- /**
300
- * When the manifest was last updated (applied)
301
- */
302
- updated_at?: string; // date-time
303
- }
304
86
  export interface ResourceNode {
305
87
  id: string;
306
88
  type: ResourceNodeType;
@@ -326,7 +108,7 @@ declare namespace Components {
326
108
  export interface S3Reference {
327
109
  /**
328
110
  * example:
329
- * blueprint-manifest-prod-blueprintsv2bucket-sybpsryropzw
111
+ * epilot-dev-blueprints
330
112
  */
331
113
  bucket?: string;
332
114
  /**
@@ -361,7 +143,7 @@ declare namespace Paths {
361
143
  namespace ApplyPlan {
362
144
  namespace Parameters {
363
145
  export type JobId = /**
364
- * ID of an import or export job (state machine)
146
+ * ID of an import or export job
365
147
  * example:
366
148
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
367
149
  */
@@ -378,14 +160,7 @@ declare namespace Paths {
378
160
  manifestFilePath?: string;
379
161
  }
380
162
  namespace Responses {
381
- export interface $200 {
382
- jobId?: /**
383
- * ID of an import or export job (state machine)
384
- * example:
385
- * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
386
- */
387
- Components.Schemas.JobID;
388
- }
163
+ export type $200 = string;
389
164
  }
390
165
  }
391
166
  namespace CreateExport {
@@ -418,21 +193,16 @@ declare namespace Paths {
418
193
  string?,
419
194
  string?
420
195
  ];
421
- jobId?: /**
422
- * ID of an import or export job (state machine)
423
- * example:
424
- * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
425
- */
426
- Components.Schemas.JobID;
427
196
  /**
428
197
  * Temporary flag to indicate if multiple resources are being exported
429
198
  */
430
199
  isExportingMultipleResources?: boolean;
200
+ jobId?: string;
431
201
  }
432
202
  namespace Responses {
433
203
  export interface $200 {
434
204
  jobId?: /**
435
- * ID of an import or export job (state machine)
205
+ * ID of an import or export job
436
206
  * example:
437
207
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
438
208
  */
@@ -441,36 +211,14 @@ declare namespace Paths {
441
211
  }
442
212
  }
443
213
  namespace CreatePlan {
444
- export type RequestBody = {
445
- /**
446
- * s3ref of manifest file uploaded via `uploadManifest`
447
- */
448
- s3ref: {
449
- /**
450
- * example:
451
- * blueprint-manifest-prod-blueprintsv2bucket-sybpsryropzw
452
- */
453
- bucket?: string;
454
- /**
455
- * example:
456
- * templates/main.tf
457
- */
458
- key?: string;
459
- };
460
- /**
461
- * ID of an imported / installed manifest
462
- * example:
463
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
464
- */
465
- manifest_id?: string;
466
- } | {
214
+ export interface RequestBody {
467
215
  /**
468
- * Manifest file key uploaded via `uploadManifest`
216
+ * Path to the manifest file uploaded via `uploadManifest`
469
217
  * example:
470
218
  * example.tf
471
219
  */
472
- manifestFilePath: string;
473
- };
220
+ manifestFilePath?: string;
221
+ }
474
222
  namespace Responses {
475
223
  export interface $200 {
476
224
  /**
@@ -481,26 +229,10 @@ declare namespace Paths {
481
229
  }
482
230
  }
483
231
  }
484
- namespace DeleteManifest {
485
- namespace Parameters {
486
- export type ManifestId = /**
487
- * ID of an imported / installed manifest
488
- * example:
489
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
490
- */
491
- Components.Schemas.ManifestID;
492
- }
493
- export interface PathParameters {
494
- manifest_id: Parameters.ManifestId;
495
- }
496
- namespace Responses {
497
- export type $200 = Components.Schemas.Manifest;
498
- }
499
- }
500
232
  namespace ExportManifest {
501
233
  namespace Parameters {
502
234
  export type JobId = /**
503
- * ID of an import or export job (state machine)
235
+ * ID of an import or export job
504
236
  * example:
505
237
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
506
238
  */
@@ -527,7 +259,7 @@ declare namespace Paths {
527
259
  namespace Responses {
528
260
  export interface $200 {
529
261
  jobId?: /**
530
- * ID of an import or export job (state machine)
262
+ * ID of an import or export job
531
263
  * example:
532
264
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
533
265
  */
@@ -538,7 +270,7 @@ declare namespace Paths {
538
270
  namespace GetJob {
539
271
  namespace Parameters {
540
272
  export type JobId = /**
541
- * ID of an import or export job (state machine)
273
+ * ID of an import or export job
542
274
  * example:
543
275
  * 4854bb2a-94f9-424d-a968-3fb17fb0bf89
544
276
  */
@@ -551,34 +283,6 @@ declare namespace Paths {
551
283
  export type $200 = Components.Schemas.Job;
552
284
  }
553
285
  }
554
- namespace GetManifest {
555
- namespace Parameters {
556
- export type ManifestId = /**
557
- * ID of an imported / installed manifest
558
- * example:
559
- * c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341
560
- */
561
- Components.Schemas.ManifestID;
562
- }
563
- export interface PathParameters {
564
- manifest_id: Parameters.ManifestId;
565
- }
566
- namespace Responses {
567
- export type $200 = Components.Schemas.Manifest;
568
- }
569
- }
570
- namespace ListInstalledManifests {
571
- namespace Responses {
572
- export interface $200 {
573
- /**
574
- * example:
575
- * 1
576
- */
577
- total?: number;
578
- results?: Components.Schemas.ManifestItem[];
579
- }
580
- }
581
- }
582
286
  namespace UploadManifest {
583
287
  export type RequestBody = Components.Schemas.UploadFilePayload;
584
288
  namespace Responses {
@@ -610,8 +314,6 @@ export interface OperationMethods {
610
314
  *
611
315
  * Creates a new Export Job with a list of available resources to export from the passed root resource.
612
316
  *
613
- * Multiple root resources can be added by calling this multiple times with the same jobId
614
- *
615
317
  */
616
318
  'createExport'(
617
319
  parameters?: Parameters<UnknownParamsObject> | null,
@@ -642,10 +344,7 @@ export interface OperationMethods {
642
344
  /**
643
345
  * createPlan - createPlan
644
346
  *
645
- * Creates a new import job from an uploaded manifest file and returns the plan.
646
- *
647
- * Creates an updated plan for an installed manifest when `manifest_id` is passed
648
- *
347
+ * Creates a new import job from an uploaded manifest file and returns the plan
649
348
  */
650
349
  'createPlan'(
651
350
  parameters?: Parameters<UnknownParamsObject> | null,
@@ -655,46 +354,13 @@ export interface OperationMethods {
655
354
  /**
656
355
  * applyPlan - applyPlan
657
356
  *
658
- * Apply a plan returned by `createPlan`.
357
+ * Apply a plan returned by `createPlan`
659
358
  */
660
359
  'applyPlan'(
661
360
  parameters?: Parameters<Paths.ApplyPlan.PathParameters> | null,
662
361
  data?: Paths.ApplyPlan.RequestBody,
663
362
  config?: AxiosRequestConfig
664
363
  ): OperationResponse<Paths.ApplyPlan.Responses.$200>
665
- /**
666
- * listInstalledManifests - listInstalledManifests
667
- *
668
- * List Blueprint Manifests installed to the organization
669
- */
670
- 'listInstalledManifests'(
671
- parameters?: Parameters<UnknownParamsObject> | null,
672
- data?: any,
673
- config?: AxiosRequestConfig
674
- ): OperationResponse<Paths.ListInstalledManifests.Responses.$200>
675
- /**
676
- * getManifest - getManifest
677
- *
678
- * Get installed Manifest by ID
679
- */
680
- 'getManifest'(
681
- parameters?: Parameters<Paths.GetManifest.PathParameters> | null,
682
- data?: any,
683
- config?: AxiosRequestConfig
684
- ): OperationResponse<Paths.GetManifest.Responses.$200>
685
- /**
686
- * deleteManifest - deleteManifest
687
- *
688
- * Remove installed manifest from the org
689
- *
690
- * Note that this does not delete the installed resources of the Manifest!
691
- *
692
- */
693
- 'deleteManifest'(
694
- parameters?: Parameters<Paths.DeleteManifest.PathParameters> | null,
695
- data?: any,
696
- config?: AxiosRequestConfig
697
- ): OperationResponse<Paths.DeleteManifest.Responses.$200>
698
364
  }
699
365
 
700
366
  export interface PathsDictionary {
@@ -716,8 +382,6 @@ export interface PathsDictionary {
716
382
  *
717
383
  * Creates a new Export Job with a list of available resources to export from the passed root resource.
718
384
  *
719
- * Multiple root resources can be added by calling this multiple times with the same jobId
720
- *
721
385
  */
722
386
  'post'(
723
387
  parameters?: Parameters<UnknownParamsObject> | null,
@@ -754,10 +418,7 @@ export interface PathsDictionary {
754
418
  /**
755
419
  * createPlan - createPlan
756
420
  *
757
- * Creates a new import job from an uploaded manifest file and returns the plan.
758
- *
759
- * Creates an updated plan for an installed manifest when `manifest_id` is passed
760
- *
421
+ * Creates a new import job from an uploaded manifest file and returns the plan
761
422
  */
762
423
  'post'(
763
424
  parameters?: Parameters<UnknownParamsObject> | null,
@@ -769,7 +430,7 @@ export interface PathsDictionary {
769
430
  /**
770
431
  * applyPlan - applyPlan
771
432
  *
772
- * Apply a plan returned by `createPlan`.
433
+ * Apply a plan returned by `createPlan`
773
434
  */
774
435
  'post'(
775
436
  parameters?: Parameters<Paths.ApplyPlan.PathParameters> | null,
@@ -777,57 +438,13 @@ export interface PathsDictionary {
777
438
  config?: AxiosRequestConfig
778
439
  ): OperationResponse<Paths.ApplyPlan.Responses.$200>
779
440
  }
780
- ['/v1/blueprint-manifest/manifests']: {
781
- /**
782
- * listInstalledManifests - listInstalledManifests
783
- *
784
- * List Blueprint Manifests installed to the organization
785
- */
786
- 'get'(
787
- parameters?: Parameters<UnknownParamsObject> | null,
788
- data?: any,
789
- config?: AxiosRequestConfig
790
- ): OperationResponse<Paths.ListInstalledManifests.Responses.$200>
791
- }
792
- ['/v1/blueprint-manifest/manifests/{manifest_id}']: {
793
- /**
794
- * getManifest - getManifest
795
- *
796
- * Get installed Manifest by ID
797
- */
798
- 'get'(
799
- parameters?: Parameters<Paths.GetManifest.PathParameters> | null,
800
- data?: any,
801
- config?: AxiosRequestConfig
802
- ): OperationResponse<Paths.GetManifest.Responses.$200>
803
- /**
804
- * deleteManifest - deleteManifest
805
- *
806
- * Remove installed manifest from the org
807
- *
808
- * Note that this does not delete the installed resources of the Manifest!
809
- *
810
- */
811
- 'delete'(
812
- parameters?: Parameters<Paths.DeleteManifest.PathParameters> | null,
813
- data?: any,
814
- config?: AxiosRequestConfig
815
- ): OperationResponse<Paths.DeleteManifest.Responses.$200>
816
- }
817
441
  }
818
442
 
819
443
  export type Client = OpenAPIClient<OperationMethods, PathsDictionary>
820
444
 
821
- export type CommonImportFields = Components.Schemas.CommonImportFields;
822
- export type CommonManifestFields = Components.Schemas.CommonManifestFields;
823
- export type CommonMarkdownFields = Components.Schemas.CommonMarkdownFields;
824
445
  export type Job = Components.Schemas.Job;
825
446
  export type JobID = Components.Schemas.JobID;
826
447
  export type JobStatus = Components.Schemas.JobStatus;
827
- export type Manifest = Components.Schemas.Manifest;
828
- export type ManifestID = Components.Schemas.ManifestID;
829
- export type ManifestItem = Components.Schemas.ManifestItem;
830
- export type ManifestTimestampFields = Components.Schemas.ManifestTimestampFields;
831
448
  export type ResourceNode = Components.Schemas.ResourceNode;
832
449
  export type ResourceNodeType = Components.Schemas.ResourceNodeType;
833
450
  export type RootResourceNode = Components.Schemas.RootResourceNode;
package/dist/openapi.json CHANGED
@@ -16,11 +16,7 @@
16
16
  },
17
17
  {
18
18
  "name": "Import",
19
- "description": "Install or update a Blueprint Manifest"
20
- },
21
- {
22
- "name": "Manifests",
23
- "description": "Manage installed Manifests"
19
+ "description": "Import a Blueprint Manifest"
24
20
  }
25
21
  ],
26
22
  "security": [
@@ -68,7 +64,7 @@
68
64
  "post": {
69
65
  "operationId": "createExport",
70
66
  "summary": "createExport",
71
- "description": "Creates a new Export Job with a list of available resources to export from the passed root resource.\n\nMultiple root resources can be added by calling this multiple times with the same jobId\n",
67
+ "description": "Creates a new Export Job with a list of available resources to export from the passed root resource.\n",
72
68
  "tags": [
73
69
  "Export"
74
70
  ],
@@ -107,12 +103,12 @@
107
103
  "minItems": 1,
108
104
  "maxItems": 25
109
105
  },
110
- "jobId": {
111
- "$ref": "#/components/schemas/JobID"
112
- },
113
106
  "isExportingMultipleResources": {
114
107
  "type": "boolean",
115
108
  "description": "Temporary flag to indicate if multiple resources are being exported"
109
+ },
110
+ "jobId": {
111
+ "type": "string"
116
112
  }
117
113
  }
118
114
  }
@@ -241,7 +237,7 @@
241
237
  "post": {
242
238
  "operationId": "createPlan",
243
239
  "summary": "createPlan",
244
- "description": "Creates a new import job from an uploaded manifest file and returns the plan.\n\nCreates an updated plan for an installed manifest when `manifest_id` is passed\n",
240
+ "description": "Creates a new import job from an uploaded manifest file and returns the plan",
245
241
  "tags": [
246
242
  "Import"
247
243
  ],
@@ -249,50 +245,14 @@
249
245
  "content": {
250
246
  "application/json": {
251
247
  "schema": {
252
- "oneOf": [
253
- {
254
- "type": "object",
255
- "properties": {
256
- "s3ref": {
257
- "allOf": [
258
- {
259
- "description": "s3ref of manifest file uploaded via `uploadManifest`"
260
- },
261
- {
262
- "$ref": "#/components/schemas/S3Reference"
263
- }
264
- ]
265
- },
266
- "manifest_id": {
267
- "allOf": [
268
- {
269
- "description": "Update an existing manifest (optional)"
270
- },
271
- {
272
- "$ref": "#/components/schemas/ManifestID"
273
- }
274
- ]
275
- }
276
- },
277
- "required": [
278
- "s3ref"
279
- ]
280
- },
281
- {
282
- "type": "object",
283
- "properties": {
284
- "manifestFilePath": {
285
- "deprecated": true,
286
- "description": "Manifest file key uploaded via `uploadManifest`",
287
- "type": "string",
288
- "example": "example.tf"
289
- }
290
- },
291
- "required": [
292
- "manifestFilePath"
293
- ]
248
+ "type": "object",
249
+ "properties": {
250
+ "manifestFilePath": {
251
+ "description": "Path to the manifest file uploaded via `uploadManifest`",
252
+ "type": "string",
253
+ "example": "example.tf"
294
254
  }
295
- ]
255
+ }
296
256
  }
297
257
  }
298
258
  }
@@ -321,7 +281,7 @@
321
281
  "post": {
322
282
  "operationId": "applyPlan",
323
283
  "summary": "applyPlan",
324
- "description": "Apply a plan returned by `createPlan`.",
284
+ "description": "Apply a plan returned by `createPlan`",
325
285
  "tags": [
326
286
  "Import"
327
287
  ],
@@ -347,112 +307,11 @@
347
307
  },
348
308
  "responses": {
349
309
  "200": {
350
- "description": "Applied Import Job ID",
351
- "content": {
352
- "application/json": {
353
- "schema": {
354
- "type": "object",
355
- "properties": {
356
- "jobId": {
357
- "$ref": "#/components/schemas/JobID"
358
- }
359
- }
360
- }
361
- }
362
- }
363
- }
364
- }
365
- }
366
- },
367
- "/v1/blueprint-manifest/manifests": {
368
- "get": {
369
- "operationId": "listInstalledManifests",
370
- "summary": "listInstalledManifests",
371
- "description": "List Blueprint Manifests installed to the organization",
372
- "tags": [
373
- "Manifests"
374
- ],
375
- "responses": {
376
- "200": {
377
- "description": "Installed Blueprint Manifests in the organization",
378
- "content": {
379
- "application/json": {
380
- "schema": {
381
- "type": "object",
382
- "properties": {
383
- "total": {
384
- "type": "integer",
385
- "example": 1
386
- },
387
- "results": {
388
- "type": "array",
389
- "items": {
390
- "$ref": "#/components/schemas/ManifestItem"
391
- }
392
- }
393
- }
394
- }
395
- }
396
- }
397
- }
398
- }
399
- }
400
- },
401
- "/v1/blueprint-manifest/manifests/{manifest_id}": {
402
- "get": {
403
- "operationId": "getManifest",
404
- "summary": "getManifest",
405
- "description": "Get installed Manifest by ID",
406
- "tags": [
407
- "Manifests"
408
- ],
409
- "parameters": [
410
- {
411
- "in": "path",
412
- "required": true,
413
- "name": "manifest_id",
414
- "schema": {
415
- "$ref": "#/components/schemas/ManifestID"
416
- }
417
- }
418
- ],
419
- "responses": {
420
- "200": {
421
- "description": "Installed Blueprint Manifest in the Organization",
310
+ "description": "Success",
422
311
  "content": {
423
312
  "application/json": {
424
313
  "schema": {
425
- "$ref": "#/components/schemas/Manifest"
426
- }
427
- }
428
- }
429
- }
430
- }
431
- },
432
- "delete": {
433
- "operationId": "deleteManifest",
434
- "summary": "deleteManifest",
435
- "description": "Remove installed manifest from the org\n\nNote that this does not delete the installed resources of the Manifest!\n",
436
- "tags": [
437
- "Manifests"
438
- ],
439
- "parameters": [
440
- {
441
- "in": "path",
442
- "required": true,
443
- "name": "manifest_id",
444
- "schema": {
445
- "$ref": "#/components/schemas/ManifestID"
446
- }
447
- }
448
- ],
449
- "responses": {
450
- "200": {
451
- "description": "The deleted Manifest",
452
- "content": {
453
- "application/json": {
454
- "schema": {
455
- "$ref": "#/components/schemas/Manifest"
314
+ "type": "string"
456
315
  }
457
316
  }
458
317
  }
@@ -463,42 +322,6 @@
463
322
  },
464
323
  "components": {
465
324
  "schemas": {
466
- "ManifestID": {
467
- "type": "string",
468
- "description": "ID of an imported / installed manifest",
469
- "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
470
- },
471
- "JobID": {
472
- "type": "string",
473
- "description": "ID of an import or export job (state machine)",
474
- "example": "4854bb2a-94f9-424d-a968-3fb17fb0bf89"
475
- },
476
- "Manifest": {
477
- "allOf": [
478
- {
479
- "$ref": "#/components/schemas/CommonManifestFields"
480
- },
481
- {
482
- "$ref": "#/components/schemas/CommonMarkdownFields"
483
- },
484
- {
485
- "$ref": "#/components/schemas/CommonImportFields"
486
- },
487
- {
488
- "$ref": "#/components/schemas/ManifestTimestampFields"
489
- }
490
- ]
491
- },
492
- "ManifestItem": {
493
- "allOf": [
494
- {
495
- "$ref": "#/components/schemas/CommonManifestFields"
496
- },
497
- {
498
- "$ref": "#/components/schemas/ManifestTimestampFields"
499
- }
500
- ]
501
- },
502
325
  "JobStatus": {
503
326
  "type": "string",
504
327
  "enum": [
@@ -650,148 +473,67 @@
650
473
  "type"
651
474
  ]
652
475
  },
476
+ "JobID": {
477
+ "type": "string",
478
+ "description": "ID of an import or export job",
479
+ "example": "4854bb2a-94f9-424d-a968-3fb17fb0bf89"
480
+ },
653
481
  "Job": {
654
- "allOf": [
655
- {
656
- "type": "object",
657
- "properties": {
658
- "job_id": {
659
- "$ref": "#/components/schemas/JobID"
660
- },
661
- "job_status": {
662
- "$ref": "#/components/schemas/JobStatus"
663
- },
664
- "message": {
665
- "type": "string"
666
- },
667
- "timestamp": {
668
- "type": "string",
669
- "format": "date-time"
670
- },
671
- "plan_file_content": {
672
- "type": "string",
673
- "description": "An URL to download the plan file"
674
- },
675
- "resources_to_export": {
676
- "description": "An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import",
677
- "oneOf": [
678
- {
679
- "type": "array",
680
- "items": {
681
- "$ref": "#/components/schemas/RootResourceNode"
682
- }
683
- },
684
- {
685
- "$ref": "#/components/schemas/RootResourceNode"
686
- }
687
- ]
688
- },
689
- "large_resources_to_export_url": {
690
- "type": "string",
691
- "description": "An URL to download the resources to export when the resources are too large to be included in the response"
692
- },
693
- "resources_to_import": {
694
- "description": "An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import",
695
- "oneOf": [
696
- {
697
- "type": "array",
698
- "items": {
699
- "$ref": "#/components/schemas/RootResourceNode"
700
- }
701
- },
702
- {
703
- "$ref": "#/components/schemas/RootResourceNode"
704
- }
705
- ]
706
- },
707
- "large_resources_to_import_url": {
708
- "type": "string",
709
- "description": "An URL to download the resources to import when the resources are too large to be included in the response"
710
- }
711
- }
482
+ "type": "object",
483
+ "properties": {
484
+ "job_status": {
485
+ "$ref": "#/components/schemas/JobStatus"
712
486
  },
713
- {
714
- "$ref": "#/components/schemas/CommonImportFields"
487
+ "job_id": {
488
+ "$ref": "#/components/schemas/JobID"
715
489
  },
716
- {
717
- "$ref": "#/components/schemas/CommonMarkdownFields"
490
+ "message": {
491
+ "type": "string"
718
492
  },
719
- {
720
- "$ref": "#/components/schemas/CommonManifestFields"
721
- }
722
- ]
723
- },
724
- "UploadFilePayload": {
725
- "type": "object",
726
- "properties": {
727
- "filename": {
493
+ "timestamp": {
728
494
  "type": "string",
729
- "example": "main.tf"
495
+ "format": "date-time"
730
496
  },
731
- "mime_type": {
732
- "description": "MIME type of file",
497
+ "plan_file_content": {
733
498
  "type": "string",
734
- "example": "application/pdf",
735
- "default": "application/octet-stream"
736
- }
737
- },
738
- "required": [
739
- "filename"
740
- ]
741
- },
742
- "S3Reference": {
743
- "type": "object",
744
- "properties": {
745
- "bucket": {
746
- "type": "string",
747
- "example": "blueprint-manifest-prod-blueprintsv2bucket-sybpsryropzw"
499
+ "description": "An URL to download the plan file"
748
500
  },
749
- "key": {
750
- "type": "string",
751
- "example": "templates/main.tf"
752
- }
753
- }
754
- },
755
- "CommonManifestFields": {
756
- "type": "object",
757
- "properties": {
758
- "manifest_id": {
759
- "$ref": "#/components/schemas/ManifestID"
501
+ "resources_to_export": {
502
+ "description": "An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import",
503
+ "oneOf": [
504
+ {
505
+ "type": "array",
506
+ "items": {
507
+ "$ref": "#/components/schemas/RootResourceNode"
508
+ }
509
+ },
510
+ {
511
+ "$ref": "#/components/schemas/RootResourceNode"
512
+ }
513
+ ]
760
514
  },
761
- "source_blueprint_name": {
515
+ "large_resources_to_export_url": {
762
516
  "type": "string",
763
- "example": "Solar B2B"
517
+ "description": "An URL to download the resources to export when the resources are too large to be included in the response"
764
518
  },
765
- "source_blueprint_slug": {
766
- "type": "string",
767
- "description": "URL slug of a blueprint from the epilot marketplace",
768
- "example": "solar-b2b"
519
+ "resources_to_import": {
520
+ "description": "An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import",
521
+ "oneOf": [
522
+ {
523
+ "type": "array",
524
+ "items": {
525
+ "$ref": "#/components/schemas/RootResourceNode"
526
+ }
527
+ },
528
+ {
529
+ "$ref": "#/components/schemas/RootResourceNode"
530
+ }
531
+ ]
769
532
  },
770
- "source_blueprint_version": {
771
- "type": "string",
772
- "description": "Version of the blueprint (semver)",
773
- "example": "1.0.0"
774
- }
775
- }
776
- },
777
- "ManifestTimestampFields": {
778
- "type": "object",
779
- "properties": {
780
- "created_at": {
781
- "description": "When the manifest was first installed (applied)",
533
+ "large_resources_to_import_url": {
782
534
  "type": "string",
783
- "format": "date-time"
535
+ "description": "An URL to download the resources to import when the resources are too large to be included in the response"
784
536
  },
785
- "updated_at": {
786
- "description": "When the manifest was last updated (applied)",
787
- "type": "string",
788
- "format": "date-time"
789
- }
790
- }
791
- },
792
- "CommonImportFields": {
793
- "type": "object",
794
- "properties": {
795
537
  "imported_resources": {
796
538
  "description": "An array of tree-like JSON objects or a singular tree-like JSON object representing the resources to import",
797
539
  "oneOf": [
@@ -808,27 +550,13 @@
808
550
  },
809
551
  "large_imported_resources_url": {
810
552
  "type": "string",
811
- "format": "uri",
812
- "description": "An URL to download the imported resources when the resources are too large to be included in the response",
813
- "example": "https://blueprint-manifest-prod.s3.eu-central-1.amazonaws.com/large.json"
814
- }
815
- }
816
- },
817
- "CommonMarkdownFields": {
818
- "type": "object",
819
- "properties": {
553
+ "description": "An URL to download the imported resources when the resources are too large to be included in the response"
554
+ },
820
555
  "markdown": {
821
556
  "type": "object",
822
- "description": "Markdown content part of a manifest file",
823
557
  "properties": {
824
- "manifest": {
825
- "type": "string",
826
- "description": "Markdown content shown before installing the manifest",
827
- "example": "This is the content of the manifest.md file which contains the manifest descripton. \n"
828
- },
829
558
  "preinstall": {
830
559
  "type": "string",
831
- "deprecated": true,
832
560
  "description": "Markdown content to be displayed when showing the plan to install blueprint",
833
561
  "example": "This is the content of the preinstall.md file\n"
834
562
  },
@@ -840,6 +568,37 @@
840
568
  }
841
569
  }
842
570
  }
571
+ },
572
+ "UploadFilePayload": {
573
+ "type": "object",
574
+ "properties": {
575
+ "filename": {
576
+ "type": "string",
577
+ "example": "main.tf"
578
+ },
579
+ "mime_type": {
580
+ "description": "MIME type of file",
581
+ "type": "string",
582
+ "example": "application/pdf",
583
+ "default": "application/octet-stream"
584
+ }
585
+ },
586
+ "required": [
587
+ "filename"
588
+ ]
589
+ },
590
+ "S3Reference": {
591
+ "type": "object",
592
+ "properties": {
593
+ "bucket": {
594
+ "type": "string",
595
+ "example": "epilot-dev-blueprints"
596
+ },
597
+ "key": {
598
+ "type": "string",
599
+ "example": "templates/main.tf"
600
+ }
601
+ }
843
602
  }
844
603
  },
845
604
  "parameters": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/blueprint-manifest-client",
3
- "version": "2.2.6",
3
+ "version": "2.3.0",
4
4
  "description": "Client for epilot Terraform Blueprint Manifest API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,6 +18,7 @@
18
18
  "keywords": [
19
19
  "blueprint",
20
20
  "manifest",
21
+ "tf-blueprints",
21
22
  "terraform"
22
23
  ],
23
24
  "scripts": {
@@ -26,8 +27,7 @@
26
27
  "openapi": "node ../../scripts/update-openapi.js https://docs.api.epilot.io/blueprint-manifest.yaml",
27
28
  "openapi:local": "node ../../scripts/update-openapi.js ../../../blueprint-manifest-api/lambda/TerraformHandlerFunction/openapi.yml",
28
29
  "typegen": "openapi typegen src/openapi.json --client -b '/* eslint-disable */' > src/openapi.d.ts",
29
- "build": "tsc && npm run build:patch && npm run bundle-definition",
30
- "build:patch": "sed -i'' -e '/^__exportStar.*openapi.*$/d' dist/index.js",
30
+ "build": "tsc && npm run bundle-definition",
31
31
  "build:watch": "npm run build && tsc -w",
32
32
  "prepublishOnly": "npm run typegen && npm run build",
33
33
  "lint": "../../node_modules/eslint/bin/eslint.js src"
@@ -71,5 +71,5 @@
71
71
  "webpack": "^5.18.0",
72
72
  "webpack-cli": "^4.4.0"
73
73
  },
74
- "gitHead": "39426e86cfb320fa3227dc03f60ee6a10848e7c7"
74
+ "gitHead": "6c12dc4aaf7ddf60ad11c6f596fb478559fa3052"
75
75
  }