@epilot/app-client 0.0.9 → 0.0.11

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.
@@ -1 +1 @@
1
- (()=>{"use strict";var e={187:function(e,p,t){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:!0});var s=r(t(466));p.default=s.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"servers":[{"url":"https://app.sls.epilot.io"}],"paths":{"/v1/app-configurations/upload-url":{"post":{"operationId":"getUploadUrl","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations":{"post":{"operationId":"publishApp","requestBody":{"$ref":"#/components/requestBodies/PublishAppRequest"},"responses":{}}},"/v1/app-configurations/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"get":{"operationId":"getAppConfiguration","responses":{}}},"/v1/app":{"get":{"operationId":"listInstalledApps","parameters":[{"name":"componentType","in":"query"},{"name":"enabled","in":"query"},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app/{appId}":{"get":{"operationId":"getInstalledApp","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}},"put":{"operationId":"installApp","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallAppRequest"},"responses":{}},"delete":{"operationId":"uninstallApp","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}}}},"components":{"requestBodies":{"PublishAppRequest":{"required":true,"content":{"application/json":{}}},"InstallAppRequest":{"content":{"application/json":{}}}}}}')}},p={},t=function t(r){var s=p[r];if(void 0!==s)return s.exports;var n=p[r]={exports:{}};return e[r].call(n.exports,n,n.exports,t),n.exports}(187),r=exports;for(var s in t)r[s]=t[s];t.__esModule&&Object.defineProperty(r,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={187:function(e,r,p){var t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var n=t(p(466));r.default=n.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"servers":[{"url":"https://app.sls.epilot.io"}],"paths":{"/v1/app-configurations":{"get":{"operationId":"listAppConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"get":{"operationId":"getAppConfiguration","responses":{}}},"/v1/app-configurations/{appId}/versions/{version}":{"get":{"operationId":"getAppConfigurationVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"delete":{"operationId":"deleteAppVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}":{"post":{"operationId":"cloneAppVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"sourceVersion","in":"path","required":true},{"name":"targetVersion","in":"path","required":true}],"responses":{}}},"/v1/app":{"get":{"operationId":"listInstalledApps","parameters":[{"name":"componentType","in":"query"},{"name":"enabled","in":"query"},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app/{appId}":{"get":{"operationId":"getInstalledApp","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}},"put":{"operationId":"installApp","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallAppRequest"},"responses":{}},"delete":{"operationId":"uninstallApp","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/promote-to/{version}":{"post":{"operationId":"promoteAppVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}}}},"components":{"requestBodies":{"PublishAppRequest":{"required":true,"content":{"application/json":{}}},"InstallAppRequest":{"content":{"application/json":{}}}}}}')}},r={},p=function p(t){var n=r[t];if(void 0!==n)return n.exports;var a=r[t]={exports:{}};return e[t].call(a.exports,a,a.exports,p),a.exports}(187),t=exports;for(var n in p)t[n]=p[n];p.__esModule&&Object.defineProperty(t,"__esModule",{value:!0})})();
@@ -10,24 +10,19 @@
10
10
  }
11
11
  ],
12
12
  "paths": {
13
- "/v1/app-configurations/upload-url": {
14
- "post": {
15
- "operationId": "getUploadUrl",
16
- "requestBody": {
17
- "required": true,
18
- "content": {
19
- "application/json": {}
20
- }
21
- },
22
- "responses": {}
23
- }
24
- },
25
13
  "/v1/app-configurations": {
26
- "post": {
27
- "operationId": "publishApp",
28
- "requestBody": {
29
- "$ref": "#/components/requestBodies/PublishAppRequest"
30
- },
14
+ "get": {
15
+ "operationId": "listAppConfigurations",
16
+ "parameters": [
17
+ {
18
+ "name": "page",
19
+ "in": "query"
20
+ },
21
+ {
22
+ "name": "pageSize",
23
+ "in": "query"
24
+ }
25
+ ],
31
26
  "responses": {}
32
27
  }
33
28
  },
@@ -45,6 +40,63 @@
45
40
  "responses": {}
46
41
  }
47
42
  },
43
+ "/v1/app-configurations/{appId}/versions/{version}": {
44
+ "get": {
45
+ "operationId": "getAppConfigurationVersion",
46
+ "parameters": [
47
+ {
48
+ "name": "appId",
49
+ "in": "path",
50
+ "required": true
51
+ },
52
+ {
53
+ "name": "version",
54
+ "in": "path",
55
+ "required": true
56
+ }
57
+ ],
58
+ "responses": {}
59
+ },
60
+ "delete": {
61
+ "operationId": "deleteAppVersion",
62
+ "parameters": [
63
+ {
64
+ "name": "appId",
65
+ "in": "path",
66
+ "required": true
67
+ },
68
+ {
69
+ "name": "version",
70
+ "in": "path",
71
+ "required": true
72
+ }
73
+ ],
74
+ "responses": {}
75
+ }
76
+ },
77
+ "/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}": {
78
+ "post": {
79
+ "operationId": "cloneAppVersion",
80
+ "parameters": [
81
+ {
82
+ "name": "appId",
83
+ "in": "path",
84
+ "required": true
85
+ },
86
+ {
87
+ "name": "sourceVersion",
88
+ "in": "path",
89
+ "required": true
90
+ },
91
+ {
92
+ "name": "targetVersion",
93
+ "in": "path",
94
+ "required": true
95
+ }
96
+ ],
97
+ "responses": {}
98
+ }
99
+ },
48
100
  "/v1/app": {
49
101
  "get": {
50
102
  "operationId": "listInstalledApps",
@@ -106,6 +158,24 @@
106
158
  ],
107
159
  "responses": {}
108
160
  }
161
+ },
162
+ "/v1/app/{appId}/promote-to/{version}": {
163
+ "post": {
164
+ "operationId": "promoteAppVersion",
165
+ "parameters": [
166
+ {
167
+ "name": "appId",
168
+ "in": "path",
169
+ "required": true
170
+ },
171
+ {
172
+ "name": "version",
173
+ "in": "path",
174
+ "required": true
175
+ }
176
+ ],
177
+ "responses": {}
178
+ }
109
179
  }
110
180
  },
111
181
  "components": {
package/dist/openapi.d.ts CHANGED
@@ -34,10 +34,22 @@ declare namespace Components {
34
34
  * URL of the app icon.
35
35
  */
36
36
  icon_url?: string;
37
+ /**
38
+ * Category of the app.
39
+ */
40
+ category?: string;
41
+ /**
42
+ * Flag to indicate if the app is in beta.
43
+ */
44
+ is_beta?: boolean;
37
45
  /**
38
46
  * URL of the app documentation.
39
47
  */
40
48
  documentation_url?: string;
49
+ /**
50
+ * URL of the app homepage.
51
+ */
52
+ homepage_url?: string;
41
53
  description?: TranslatedString;
42
54
  notifications?: NotificationConfig;
43
55
  created_by?: string;
@@ -63,9 +75,17 @@ declare namespace Components {
63
75
  */
64
76
  owner_org_id?: string;
65
77
  /**
66
- * Access level of the app.
78
+ * Flag to indicate if the app is public.
67
79
  */
68
- access_level?: "public" | "private";
80
+ public?: boolean;
81
+ /**
82
+ * List of available versions of the app
83
+ */
84
+ versions?: string[];
85
+ /**
86
+ * Latest version of the app
87
+ */
88
+ latest_version?: string;
69
89
  /**
70
90
  * Unique identifier for the app installation
71
91
  */
@@ -101,10 +121,22 @@ declare namespace Components {
101
121
  * URL of the app icon.
102
122
  */
103
123
  icon_url?: string;
124
+ /**
125
+ * Category of the app.
126
+ */
127
+ category?: string;
128
+ /**
129
+ * Flag to indicate if the app is in beta.
130
+ */
131
+ is_beta?: boolean;
104
132
  /**
105
133
  * URL of the app documentation.
106
134
  */
107
135
  documentation_url?: string;
136
+ /**
137
+ * URL of the app homepage.
138
+ */
139
+ homepage_url?: string;
108
140
  /**
109
141
  * Markdown description of the app.
110
142
  */
@@ -130,9 +162,17 @@ declare namespace Components {
130
162
  */
131
163
  owner_org_id?: string;
132
164
  /**
133
- * Access level of the app.
165
+ * Flag to indicate if the app is public.
134
166
  */
135
- access_level?: "public" | "private";
167
+ public?: boolean;
168
+ /**
169
+ * List of available versions of the app
170
+ */
171
+ versions?: string[];
172
+ /**
173
+ * Latest version of the app
174
+ */
175
+ latest_version?: string;
136
176
  }
137
177
  export interface Author {
138
178
  /**
@@ -173,6 +213,9 @@ declare namespace Components {
173
213
  */
174
214
  options?: /* Options for the component configuration */ Options[];
175
215
  }
216
+ export interface BooleanArg {
217
+ type?: "boolean";
218
+ }
176
219
  export interface CallerIdentity {
177
220
  /**
178
221
  * a human readable name of the caller (e.g. user name, token name or email address)
@@ -203,29 +246,55 @@ declare namespace Components {
203
246
  * Type of app component
204
247
  */
205
248
  export type ComponentType = "CUSTOM_JOURNEY_BLOCK" | "PORTAL_EXTENSION";
249
+ export interface EnumArg {
250
+ type?: "enum";
251
+ /**
252
+ * If true, allows selection of multiple values
253
+ */
254
+ isMulti?: boolean;
255
+ /**
256
+ * List of options for enum type
257
+ */
258
+ options: [
259
+ {
260
+ /**
261
+ * Unique identifier for the option
262
+ */
263
+ id: string;
264
+ /**
265
+ * Display label for the option
266
+ */
267
+ label: TranslatedString;
268
+ },
269
+ ...{
270
+ /**
271
+ * Unique identifier for the option
272
+ */
273
+ id: string;
274
+ /**
275
+ * Display label for the option
276
+ */
277
+ label: TranslatedString;
278
+ }[]
279
+ ];
280
+ }
206
281
  export interface JourneyBlockComponent {
207
282
  component_type: "CUSTOM_JOURNEY_BLOCK";
208
283
  configuration: JourneyBlockConfig;
209
284
  }
210
- export interface JourneyBlockComponentArgs {
285
+ export type JourneyBlockComponentArgs = {
211
286
  /**
212
- * Key matching a config_option from the component
287
+ * Unique identifier for this component arg
213
288
  */
214
289
  key: string;
290
+ type: "text" | "boolean" | "enum";
215
291
  /**
216
292
  * Flag to indicate if this option is required
217
293
  */
218
294
  required?: boolean;
219
- /**
220
- * Description of what this component arg does
221
- */
222
295
  description?: TranslatedString;
223
- /**
224
- * Human-readable label for the component arg
225
- */
226
- label?: TranslatedString;
227
- type?: "text" | "number" | "boolean";
228
- }
296
+ label: TranslatedString;
297
+ } & (TextArg | BooleanArg | EnumArg);
229
298
  export interface JourneyBlockConfig {
230
299
  /**
231
300
  * URL of the web component object
@@ -241,6 +310,12 @@ declare namespace Components {
241
310
  * Arguments to pass to the component
242
311
  */
243
312
  component_args?: JourneyBlockComponentArgs[];
313
+ /**
314
+ * Define data which is mapped to entity mapping ui blocks
315
+ */
316
+ component_mapping?: {
317
+ [name: string]: "string" | "boolean" | "date" | "datetime";
318
+ };
244
319
  }
245
320
  export interface NotificationConfig {
246
321
  /**
@@ -361,6 +436,9 @@ declare namespace Components {
361
436
  */
362
437
  key: string;
363
438
  }
439
+ export interface TextArg {
440
+ type?: "text";
441
+ }
364
442
  export interface TranslatedString {
365
443
  /**
366
444
  * English translation
@@ -380,6 +458,49 @@ declare namespace Components {
380
458
  }
381
459
  }
382
460
  declare namespace Paths {
461
+ namespace CloneAppVersion {
462
+ namespace Parameters {
463
+ export type AppId = string;
464
+ export type SourceVersion = string;
465
+ export type TargetVersion = string;
466
+ }
467
+ export interface PathParameters {
468
+ appId: Parameters.AppId;
469
+ sourceVersion: Parameters.SourceVersion;
470
+ targetVersion: Parameters.TargetVersion;
471
+ }
472
+ namespace Responses {
473
+ export interface $201 {
474
+ app_id?: string;
475
+ version?: string;
476
+ status?: "pending" | "published";
477
+ }
478
+ export interface $400 {
479
+ }
480
+ export interface $404 {
481
+ }
482
+ }
483
+ }
484
+ namespace DeleteAppVersion {
485
+ namespace Parameters {
486
+ export type AppId = string;
487
+ export type Version = string;
488
+ }
489
+ export interface PathParameters {
490
+ appId: Parameters.AppId;
491
+ version: Parameters.Version;
492
+ }
493
+ namespace Responses {
494
+ export interface $204 {
495
+ }
496
+ export interface $400 {
497
+ }
498
+ export interface $404 {
499
+ }
500
+ export interface $409 {
501
+ }
502
+ }
503
+ }
383
504
  namespace GetAppConfiguration {
384
505
  namespace Responses {
385
506
  export type $200 = /* Configuration of the published app */ Components.Schemas.AppConfiguration;
@@ -387,36 +508,31 @@ declare namespace Paths {
387
508
  }
388
509
  }
389
510
  }
390
- namespace GetInstalledApp {
511
+ namespace GetAppConfigurationVersion {
391
512
  namespace Parameters {
392
513
  export type AppId = string;
514
+ export type Version = string;
393
515
  }
394
516
  export interface PathParameters {
395
517
  appId: Parameters.AppId;
518
+ version: Parameters.Version;
396
519
  }
397
520
  namespace Responses {
398
- export type $200 = /* Information about the installed app */ Components.Schemas.App;
521
+ export type $200 = /* Configuration of the published app */ Components.Schemas.AppConfiguration;
399
522
  export interface $404 {
400
523
  }
401
524
  }
402
525
  }
403
- namespace GetUploadUrl {
404
- export type RequestBody = Components.Schemas.UploadFilePayload;
526
+ namespace GetInstalledApp {
527
+ namespace Parameters {
528
+ export type AppId = string;
529
+ }
530
+ export interface PathParameters {
531
+ appId: Parameters.AppId;
532
+ }
405
533
  namespace Responses {
406
- export interface $200 {
407
- /**
408
- * ID of the app configuration
409
- */
410
- app_id?: string;
411
- /**
412
- * Presigned S3 URL for uploading the file
413
- */
414
- upload_url: string;
415
- s3_reference: Components.Schemas.S3Reference;
416
- /**
417
- * Timestamp when the upload URL expires
418
- */
419
- expires_at?: string; // date-time
534
+ export type $200 = /* Information about the installed app */ Components.Schemas.App;
535
+ export interface $404 {
420
536
  }
421
537
  }
422
538
  }
@@ -435,6 +551,26 @@ declare namespace Paths {
435
551
  }
436
552
  }
437
553
  }
554
+ namespace ListAppConfigurations {
555
+ namespace Parameters {
556
+ export type Page = number;
557
+ export type PageSize = number;
558
+ }
559
+ export interface QueryParameters {
560
+ page?: Parameters.Page;
561
+ pageSize?: Parameters.PageSize;
562
+ }
563
+ namespace Responses {
564
+ export interface $200 {
565
+ configurations?: /* Configuration of the published app */ Components.Schemas.AppConfiguration[];
566
+ pagination?: {
567
+ total?: number;
568
+ page?: number;
569
+ pageSize?: number;
570
+ };
571
+ }
572
+ }
573
+ }
438
574
  namespace ListInstalledApps {
439
575
  namespace Parameters {
440
576
  export type ComponentType = /* Type of app component */ Components.Schemas.ComponentType;
@@ -459,16 +595,20 @@ declare namespace Paths {
459
595
  }
460
596
  }
461
597
  }
462
- namespace PublishApp {
463
- export type RequestBody = Components.RequestBodies.PublishAppRequest;
598
+ namespace PromoteAppVersion {
599
+ namespace Parameters {
600
+ export type AppId = string;
601
+ export type Version = string;
602
+ }
603
+ export interface PathParameters {
604
+ appId: Parameters.AppId;
605
+ version: Parameters.Version;
606
+ }
464
607
  namespace Responses {
465
- export interface $202 {
466
- app_id: string;
467
- status: "pending" | "published";
468
- /**
469
- * Step Function execution ARN for status tracking
470
- */
471
- execution_arn?: string;
608
+ export type $200 = /* Information about the installed app */ Components.Schemas.App;
609
+ export interface $400 {
610
+ }
611
+ export interface $404 {
472
612
  }
473
613
  }
474
614
  }
@@ -498,25 +638,15 @@ declare namespace Paths {
498
638
 
499
639
  export interface OperationMethods {
500
640
  /**
501
- * getUploadUrl - getUploadUrl
641
+ * listAppConfigurations - listAppConfigurations
502
642
  *
503
- * Generate a presigned URL for uploading app package zip file
643
+ * List all app configurations owned by an organization
504
644
  */
505
- 'getUploadUrl'(
506
- parameters?: Parameters<UnknownParamsObject> | null,
507
- data?: Paths.GetUploadUrl.RequestBody,
508
- config?: AxiosRequestConfig
509
- ): OperationResponse<Paths.GetUploadUrl.Responses.$200>
510
- /**
511
- * publishApp - publishApp
512
- *
513
- * Publish a new app configuration from uploaded zip file
514
- */
515
- 'publishApp'(
516
- parameters?: Parameters<UnknownParamsObject> | null,
517
- data?: Paths.PublishApp.RequestBody,
645
+ 'listAppConfigurations'(
646
+ parameters?: Parameters<Paths.ListAppConfigurations.QueryParameters> | null,
647
+ data?: any,
518
648
  config?: AxiosRequestConfig
519
- ): OperationResponse<Paths.PublishApp.Responses.$202>
649
+ ): OperationResponse<Paths.ListAppConfigurations.Responses.$200>
520
650
  /**
521
651
  * getAppConfiguration - getAppConfiguration
522
652
  *
@@ -527,6 +657,36 @@ export interface OperationMethods {
527
657
  data?: any,
528
658
  config?: AxiosRequestConfig
529
659
  ): OperationResponse<Paths.GetAppConfiguration.Responses.$200>
660
+ /**
661
+ * getAppConfigurationVersion - getAppConfigurationVersion
662
+ *
663
+ * Retrieve a specific version of an app configuration
664
+ */
665
+ 'getAppConfigurationVersion'(
666
+ parameters?: Parameters<Paths.GetAppConfigurationVersion.PathParameters> | null,
667
+ data?: any,
668
+ config?: AxiosRequestConfig
669
+ ): OperationResponse<Paths.GetAppConfigurationVersion.Responses.$200>
670
+ /**
671
+ * deleteAppVersion - deleteAppVersion
672
+ *
673
+ * Delete a specific version of an app configuration
674
+ */
675
+ 'deleteAppVersion'(
676
+ parameters?: Parameters<Paths.DeleteAppVersion.PathParameters> | null,
677
+ data?: any,
678
+ config?: AxiosRequestConfig
679
+ ): OperationResponse<Paths.DeleteAppVersion.Responses.$204>
680
+ /**
681
+ * cloneAppVersion - cloneAppVersion
682
+ *
683
+ * Clone an existing app version to create a new version
684
+ */
685
+ 'cloneAppVersion'(
686
+ parameters?: Parameters<Paths.CloneAppVersion.PathParameters> | null,
687
+ data?: any,
688
+ config?: AxiosRequestConfig
689
+ ): OperationResponse<Paths.CloneAppVersion.Responses.$201>
530
690
  /**
531
691
  * listInstalledApps - listInstalledApps
532
692
  *
@@ -567,32 +727,30 @@ export interface OperationMethods {
567
727
  data?: any,
568
728
  config?: AxiosRequestConfig
569
729
  ): OperationResponse<Paths.UninstallApp.Responses.$204>
730
+ /**
731
+ * promoteAppVersion - promoteAppVersion
732
+ *
733
+ * Update an installed app to a new version
734
+ */
735
+ 'promoteAppVersion'(
736
+ parameters?: Parameters<Paths.PromoteAppVersion.PathParameters> | null,
737
+ data?: any,
738
+ config?: AxiosRequestConfig
739
+ ): OperationResponse<Paths.PromoteAppVersion.Responses.$200>
570
740
  }
571
741
 
572
742
  export interface PathsDictionary {
573
- ['/v1/app-configurations/upload-url']: {
574
- /**
575
- * getUploadUrl - getUploadUrl
576
- *
577
- * Generate a presigned URL for uploading app package zip file
578
- */
579
- 'post'(
580
- parameters?: Parameters<UnknownParamsObject> | null,
581
- data?: Paths.GetUploadUrl.RequestBody,
582
- config?: AxiosRequestConfig
583
- ): OperationResponse<Paths.GetUploadUrl.Responses.$200>
584
- }
585
743
  ['/v1/app-configurations']: {
586
744
  /**
587
- * publishApp - publishApp
745
+ * listAppConfigurations - listAppConfigurations
588
746
  *
589
- * Publish a new app configuration from uploaded zip file
747
+ * List all app configurations owned by an organization
590
748
  */
591
- 'post'(
592
- parameters?: Parameters<UnknownParamsObject> | null,
593
- data?: Paths.PublishApp.RequestBody,
749
+ 'get'(
750
+ parameters?: Parameters<Paths.ListAppConfigurations.QueryParameters> | null,
751
+ data?: any,
594
752
  config?: AxiosRequestConfig
595
- ): OperationResponse<Paths.PublishApp.Responses.$202>
753
+ ): OperationResponse<Paths.ListAppConfigurations.Responses.$200>
596
754
  }
597
755
  ['/v1/app-configurations/{appId}']: {
598
756
  /**
@@ -606,6 +764,40 @@ export interface PathsDictionary {
606
764
  config?: AxiosRequestConfig
607
765
  ): OperationResponse<Paths.GetAppConfiguration.Responses.$200>
608
766
  }
767
+ ['/v1/app-configurations/{appId}/versions/{version}']: {
768
+ /**
769
+ * getAppConfigurationVersion - getAppConfigurationVersion
770
+ *
771
+ * Retrieve a specific version of an app configuration
772
+ */
773
+ 'get'(
774
+ parameters?: Parameters<Paths.GetAppConfigurationVersion.PathParameters> | null,
775
+ data?: any,
776
+ config?: AxiosRequestConfig
777
+ ): OperationResponse<Paths.GetAppConfigurationVersion.Responses.$200>
778
+ /**
779
+ * deleteAppVersion - deleteAppVersion
780
+ *
781
+ * Delete a specific version of an app configuration
782
+ */
783
+ 'delete'(
784
+ parameters?: Parameters<Paths.DeleteAppVersion.PathParameters> | null,
785
+ data?: any,
786
+ config?: AxiosRequestConfig
787
+ ): OperationResponse<Paths.DeleteAppVersion.Responses.$204>
788
+ }
789
+ ['/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}']: {
790
+ /**
791
+ * cloneAppVersion - cloneAppVersion
792
+ *
793
+ * Clone an existing app version to create a new version
794
+ */
795
+ 'post'(
796
+ parameters?: Parameters<Paths.CloneAppVersion.PathParameters> | null,
797
+ data?: any,
798
+ config?: AxiosRequestConfig
799
+ ): OperationResponse<Paths.CloneAppVersion.Responses.$201>
800
+ }
609
801
  ['/v1/app']: {
610
802
  /**
611
803
  * listInstalledApps - listInstalledApps
@@ -650,6 +842,18 @@ export interface PathsDictionary {
650
842
  config?: AxiosRequestConfig
651
843
  ): OperationResponse<Paths.UninstallApp.Responses.$204>
652
844
  }
845
+ ['/v1/app/{appId}/promote-to/{version}']: {
846
+ /**
847
+ * promoteAppVersion - promoteAppVersion
848
+ *
849
+ * Update an installed app to a new version
850
+ */
851
+ 'post'(
852
+ parameters?: Parameters<Paths.PromoteAppVersion.PathParameters> | null,
853
+ data?: any,
854
+ config?: AxiosRequestConfig
855
+ ): OperationResponse<Paths.PromoteAppVersion.Responses.$200>
856
+ }
653
857
  }
654
858
 
655
859
  export type Client = OpenAPIClient<OperationMethods, PathsDictionary>
@@ -659,8 +863,10 @@ export type AppConfiguration = Components.Schemas.AppConfiguration;
659
863
  export type Author = Components.Schemas.Author;
660
864
  export type BaseComponent = Components.Schemas.BaseComponent;
661
865
  export type BaseComponentCommon = Components.Schemas.BaseComponentCommon;
866
+ export type BooleanArg = Components.Schemas.BooleanArg;
662
867
  export type CallerIdentity = Components.Schemas.CallerIdentity;
663
868
  export type ComponentType = Components.Schemas.ComponentType;
869
+ export type EnumArg = Components.Schemas.EnumArg;
664
870
  export type JourneyBlockComponent = Components.Schemas.JourneyBlockComponent;
665
871
  export type JourneyBlockComponentArgs = Components.Schemas.JourneyBlockComponentArgs;
666
872
  export type JourneyBlockConfig = Components.Schemas.JourneyBlockConfig;
@@ -673,5 +879,6 @@ export type PortalAuth = Components.Schemas.PortalAuth;
673
879
  export type PortalExtensionComponent = Components.Schemas.PortalExtensionComponent;
674
880
  export type PortalExtensionConfig = Components.Schemas.PortalExtensionConfig;
675
881
  export type S3Reference = Components.Schemas.S3Reference;
882
+ export type TextArg = Components.Schemas.TextArg;
676
883
  export type TranslatedString = Components.Schemas.TranslatedString;
677
884
  export type UploadFilePayload = Components.Schemas.UploadFilePayload;
package/dist/openapi.json CHANGED
@@ -22,90 +22,58 @@
22
22
  }
23
23
  ],
24
24
  "paths": {
25
- "/v1/app-configurations/upload-url": {
26
- "post": {
27
- "summary": "getUploadUrl",
28
- "description": "Generate a presigned URL for uploading app package zip file",
29
- "operationId": "getUploadUrl",
30
- "requestBody": {
31
- "required": true,
32
- "content": {
33
- "application/json": {
34
- "schema": {
35
- "$ref": "#/components/schemas/UploadFilePayload"
36
- }
37
- }
25
+ "/v1/app-configurations": {
26
+ "get": {
27
+ "summary": "listAppConfigurations",
28
+ "description": "List all app configurations owned by an organization",
29
+ "operationId": "listAppConfigurations",
30
+ "parameters": [
31
+ {
32
+ "name": "page",
33
+ "in": "query",
34
+ "schema": {
35
+ "type": "integer",
36
+ "default": 1
37
+ },
38
+ "description": "Page number for pagination"
39
+ },
40
+ {
41
+ "name": "pageSize",
42
+ "in": "query",
43
+ "schema": {
44
+ "type": "integer",
45
+ "default": 20
46
+ },
47
+ "description": "Number of items per page"
38
48
  }
39
- },
49
+ ],
40
50
  "responses": {
41
51
  "200": {
42
- "description": "Upload URL generated successfully",
52
+ "description": "List of app configurations",
43
53
  "content": {
44
54
  "application/json": {
45
55
  "schema": {
46
56
  "type": "object",
47
- "required": [
48
- "upload_url",
49
- "s3_reference"
50
- ],
51
57
  "properties": {
52
- "app_id": {
53
- "type": "string",
54
- "description": "ID of the app configuration"
55
- },
56
- "upload_url": {
57
- "type": "string",
58
- "description": "Presigned S3 URL for uploading the file"
59
- },
60
- "s3_reference": {
61
- "$ref": "#/components/schemas/S3Reference"
62
- },
63
- "expires_at": {
64
- "type": "string",
65
- "format": "date-time",
66
- "description": "Timestamp when the upload URL expires"
67
- }
68
- }
69
- }
70
- }
71
- }
72
- }
73
- }
74
- }
75
- },
76
- "/v1/app-configurations": {
77
- "post": {
78
- "summary": "publishApp",
79
- "description": "Publish a new app configuration from uploaded zip file",
80
- "operationId": "publishApp",
81
- "requestBody": {
82
- "$ref": "#/components/requestBodies/PublishAppRequest"
83
- },
84
- "responses": {
85
- "202": {
86
- "description": "App publication process started",
87
- "content": {
88
- "application/json": {
89
- "schema": {
90
- "type": "object",
91
- "required": [
92
- "app_id",
93
- "status"
94
- ],
95
- "properties": {
96
- "app_id": {
97
- "type": "string"
98
- },
99
- "status": {
100
- "type": "string",
101
- "enum": [
102
- "pending",
103
- "published"
104
- ]
58
+ "configurations": {
59
+ "type": "array",
60
+ "items": {
61
+ "$ref": "#/components/schemas/AppConfiguration"
62
+ }
105
63
  },
106
- "execution_arn": {
107
- "type": "string",
108
- "description": "Step Function execution ARN for status tracking"
64
+ "pagination": {
65
+ "type": "object",
66
+ "properties": {
67
+ "total": {
68
+ "type": "integer"
69
+ },
70
+ "page": {
71
+ "type": "integer"
72
+ },
73
+ "pageSize": {
74
+ "type": "integer"
75
+ }
76
+ }
109
77
  }
110
78
  }
111
79
  }
@@ -148,6 +116,156 @@
148
116
  }
149
117
  }
150
118
  },
119
+ "/v1/app-configurations/{appId}/versions/{version}": {
120
+ "get": {
121
+ "summary": "getAppConfigurationVersion",
122
+ "description": "Retrieve a specific version of an app configuration",
123
+ "operationId": "getAppConfigurationVersion",
124
+ "parameters": [
125
+ {
126
+ "name": "appId",
127
+ "in": "path",
128
+ "required": true,
129
+ "schema": {
130
+ "type": "string"
131
+ },
132
+ "description": "ID of the app configuration"
133
+ },
134
+ {
135
+ "name": "version",
136
+ "in": "path",
137
+ "required": true,
138
+ "schema": {
139
+ "type": "string"
140
+ },
141
+ "description": "Version of the app configuration to retrieve"
142
+ }
143
+ ],
144
+ "responses": {
145
+ "200": {
146
+ "description": "App configuration for specific version",
147
+ "content": {
148
+ "application/json": {
149
+ "schema": {
150
+ "$ref": "#/components/schemas/AppConfiguration"
151
+ }
152
+ }
153
+ }
154
+ },
155
+ "404": {
156
+ "description": "App configuration or version not found"
157
+ }
158
+ }
159
+ },
160
+ "delete": {
161
+ "summary": "deleteAppVersion",
162
+ "description": "Delete a specific version of an app configuration",
163
+ "operationId": "deleteAppVersion",
164
+ "parameters": [
165
+ {
166
+ "name": "appId",
167
+ "in": "path",
168
+ "required": true,
169
+ "schema": {
170
+ "type": "string"
171
+ },
172
+ "description": "ID of the app configuration"
173
+ },
174
+ {
175
+ "name": "version",
176
+ "in": "path",
177
+ "required": true,
178
+ "schema": {
179
+ "type": "string"
180
+ },
181
+ "description": "Version to delete"
182
+ }
183
+ ],
184
+ "responses": {
185
+ "204": {
186
+ "description": "Version deleted successfully"
187
+ },
188
+ "400": {
189
+ "description": "Cannot delete the only remaining version"
190
+ },
191
+ "404": {
192
+ "description": "Version not found"
193
+ },
194
+ "409": {
195
+ "description": "Version is in use by installations"
196
+ }
197
+ }
198
+ }
199
+ },
200
+ "/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}": {
201
+ "post": {
202
+ "summary": "cloneAppVersion",
203
+ "description": "Clone an existing app version to create a new version",
204
+ "operationId": "cloneAppVersion",
205
+ "parameters": [
206
+ {
207
+ "name": "appId",
208
+ "in": "path",
209
+ "required": true,
210
+ "schema": {
211
+ "type": "string"
212
+ },
213
+ "description": "ID of the app configuration"
214
+ },
215
+ {
216
+ "name": "sourceVersion",
217
+ "in": "path",
218
+ "required": true,
219
+ "schema": {
220
+ "type": "string"
221
+ },
222
+ "description": "Source version to clone from"
223
+ },
224
+ {
225
+ "name": "targetVersion",
226
+ "in": "path",
227
+ "required": true,
228
+ "schema": {
229
+ "type": "string"
230
+ },
231
+ "description": "Target version to create"
232
+ }
233
+ ],
234
+ "responses": {
235
+ "201": {
236
+ "description": "New version created successfully",
237
+ "content": {
238
+ "application/json": {
239
+ "schema": {
240
+ "type": "object",
241
+ "properties": {
242
+ "app_id": {
243
+ "type": "string"
244
+ },
245
+ "version": {
246
+ "type": "string"
247
+ },
248
+ "status": {
249
+ "type": "string",
250
+ "enum": [
251
+ "pending",
252
+ "published"
253
+ ]
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ },
260
+ "400": {
261
+ "description": "Invalid version format or target version already exists"
262
+ },
263
+ "404": {
264
+ "description": "Source version not found"
265
+ }
266
+ }
267
+ }
268
+ },
151
269
  "/v1/app": {
152
270
  "get": {
153
271
  "summary": "listInstalledApps",
@@ -306,6 +424,49 @@
306
424
  }
307
425
  }
308
426
  }
427
+ },
428
+ "/v1/app/{appId}/promote-to/{version}": {
429
+ "post": {
430
+ "summary": "promoteAppVersion",
431
+ "description": "Update an installed app to a new version",
432
+ "operationId": "promoteAppVersion",
433
+ "parameters": [
434
+ {
435
+ "name": "appId",
436
+ "in": "path",
437
+ "required": true,
438
+ "schema": {
439
+ "type": "string"
440
+ }
441
+ },
442
+ {
443
+ "name": "version",
444
+ "in": "path",
445
+ "required": true,
446
+ "schema": {
447
+ "type": "string"
448
+ }
449
+ }
450
+ ],
451
+ "responses": {
452
+ "200": {
453
+ "description": "App successfully promoted to new version",
454
+ "content": {
455
+ "application/json": {
456
+ "schema": {
457
+ "$ref": "#/components/schemas/App"
458
+ }
459
+ }
460
+ }
461
+ },
462
+ "400": {
463
+ "description": "Invalid version or version not available"
464
+ },
465
+ "404": {
466
+ "description": "App installation not found"
467
+ }
468
+ }
469
+ }
309
470
  }
310
471
  },
311
472
  "components": {
@@ -762,40 +923,143 @@
762
923
  "items": {
763
924
  "$ref": "#/components/schemas/JourneyBlockComponentArgs"
764
925
  }
926
+ },
927
+ "component_mapping": {
928
+ "description": "Define data which is mapped to entity mapping ui blocks",
929
+ "type": "object",
930
+ "additionalProperties": {
931
+ "type": "string",
932
+ "enum": [
933
+ "string",
934
+ "boolean",
935
+ "date",
936
+ "datetime"
937
+ ]
938
+ }
765
939
  }
766
940
  }
767
941
  },
768
942
  "JourneyBlockComponentArgs": {
943
+ "allOf": [
944
+ {
945
+ "type": "object",
946
+ "required": [
947
+ "key",
948
+ "label",
949
+ "type"
950
+ ],
951
+ "properties": {
952
+ "key": {
953
+ "type": "string",
954
+ "description": "Unique identifier for this component arg"
955
+ },
956
+ "type": {
957
+ "type": "string",
958
+ "enum": [
959
+ "text",
960
+ "boolean",
961
+ "enum"
962
+ ]
963
+ },
964
+ "required": {
965
+ "type": "boolean",
966
+ "description": "Flag to indicate if this option is required",
967
+ "default": false
968
+ },
969
+ "description": {
970
+ "description": "Description of what this component arg does",
971
+ "$ref": "#/components/schemas/TranslatedString"
972
+ },
973
+ "label": {
974
+ "description": "Human-readable label for the component arg",
975
+ "$ref": "#/components/schemas/TranslatedString"
976
+ }
977
+ }
978
+ },
979
+ {
980
+ "type": "object",
981
+ "discriminator": {
982
+ "propertyName": "type",
983
+ "mapping": {
984
+ "text": "#/components/schemas/TextArg",
985
+ "boolean": "#/components/schemas/BooleanArg",
986
+ "enum": "#/components/schemas/EnumArg"
987
+ }
988
+ },
989
+ "oneOf": [
990
+ {
991
+ "$ref": "#/components/schemas/TextArg"
992
+ },
993
+ {
994
+ "$ref": "#/components/schemas/BooleanArg"
995
+ },
996
+ {
997
+ "$ref": "#/components/schemas/EnumArg"
998
+ }
999
+ ]
1000
+ }
1001
+ ]
1002
+ },
1003
+ "TextArg": {
1004
+ "type": "object",
1005
+ "properties": {
1006
+ "type": {
1007
+ "type": "string",
1008
+ "enum": [
1009
+ "text"
1010
+ ]
1011
+ }
1012
+ }
1013
+ },
1014
+ "BooleanArg": {
1015
+ "type": "object",
1016
+ "properties": {
1017
+ "type": {
1018
+ "type": "string",
1019
+ "enum": [
1020
+ "boolean"
1021
+ ]
1022
+ }
1023
+ }
1024
+ },
1025
+ "EnumArg": {
769
1026
  "type": "object",
770
1027
  "required": [
771
- "key"
1028
+ "options"
772
1029
  ],
773
1030
  "properties": {
774
- "key": {
1031
+ "type": {
775
1032
  "type": "string",
776
- "description": "Key matching a config_option from the component"
1033
+ "enum": [
1034
+ "enum"
1035
+ ]
777
1036
  },
778
- "required": {
1037
+ "isMulti": {
779
1038
  "type": "boolean",
780
- "description": "Flag to indicate if this option is required",
1039
+ "description": "If true, allows selection of multiple values",
781
1040
  "default": false
782
1041
  },
783
- "description": {
784
- "description": "Description of what this component arg does",
785
- "$ref": "#/components/schemas/TranslatedString"
786
- },
787
- "label": {
788
- "description": "Human-readable label for the component arg",
789
- "$ref": "#/components/schemas/TranslatedString"
790
- },
791
- "type": {
792
- "type": "string",
793
- "enum": [
794
- "text",
795
- "number",
796
- "boolean"
797
- ],
798
- "default": "text"
1042
+ "options": {
1043
+ "type": "array",
1044
+ "description": "List of options for enum type",
1045
+ "minItems": 1,
1046
+ "items": {
1047
+ "type": "object",
1048
+ "required": [
1049
+ "id",
1050
+ "label"
1051
+ ],
1052
+ "properties": {
1053
+ "id": {
1054
+ "type": "string",
1055
+ "description": "Unique identifier for the option"
1056
+ },
1057
+ "label": {
1058
+ "$ref": "#/components/schemas/TranslatedString",
1059
+ "description": "Display label for the option"
1060
+ }
1061
+ }
1062
+ }
799
1063
  }
800
1064
  }
801
1065
  },
@@ -858,7 +1122,8 @@
858
1122
  "description": "Configuration of the published app",
859
1123
  "properties": {
860
1124
  "app_id": {
861
- "type": "string"
1125
+ "type": "string",
1126
+ "readOnly": true
862
1127
  },
863
1128
  "name": {
864
1129
  "$ref": "#/components/schemas/TranslatedString"
@@ -867,10 +1132,23 @@
867
1132
  "type": "string",
868
1133
  "description": "URL of the app icon."
869
1134
  },
1135
+ "category": {
1136
+ "type": "string",
1137
+ "description": "Category of the app."
1138
+ },
1139
+ "is_beta": {
1140
+ "type": "boolean",
1141
+ "description": "Flag to indicate if the app is in beta.",
1142
+ "readOnly": true
1143
+ },
870
1144
  "documentation_url": {
871
1145
  "type": "string",
872
1146
  "description": "URL of the app documentation."
873
1147
  },
1148
+ "homepage_url": {
1149
+ "type": "string",
1150
+ "description": "URL of the app homepage."
1151
+ },
874
1152
  "description": {
875
1153
  "$ref": "#/components/schemas/TranslatedString",
876
1154
  "description": "Markdown description of the app."
@@ -907,7 +1185,8 @@
907
1185
  "enum": [
908
1186
  "published",
909
1187
  "pending"
910
- ]
1188
+ ],
1189
+ "readOnly": true
911
1190
  },
912
1191
  "components": {
913
1192
  "type": "array",
@@ -923,16 +1202,27 @@
923
1202
  },
924
1203
  "owner_org_id": {
925
1204
  "type": "string",
926
- "description": "Organization ID of the app owner, required for private apps"
1205
+ "description": "Organization ID of the app owner, required for private apps",
1206
+ "readOnly": true
927
1207
  },
928
- "access_level": {
1208
+ "public": {
1209
+ "type": "boolean",
1210
+ "default": true,
1211
+ "description": "Flag to indicate if the app is public.",
1212
+ "readOnly": true
1213
+ },
1214
+ "versions": {
1215
+ "type": "array",
1216
+ "items": {
1217
+ "type": "string"
1218
+ },
1219
+ "description": "List of available versions of the app",
1220
+ "readOnly": true
1221
+ },
1222
+ "latest_version": {
929
1223
  "type": "string",
930
- "enum": [
931
- "public",
932
- "private"
933
- ],
934
- "default": "public",
935
- "description": "Access level of the app."
1224
+ "description": "Latest version of the app",
1225
+ "readOnly": true
936
1226
  }
937
1227
  }
938
1228
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/app-client",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "JavaScript client library for the epilot App API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",