@vertracloud/api-types 0.1.1 → 0.2.1

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 (113) hide show
  1. package/README.md +47 -40
  2. package/common/v1.d.ts +23 -7
  3. package/common/v1.js.map +1 -1
  4. package/package.json +5 -5
  5. package/payloads/v1/activity.d.ts +22 -10
  6. package/payloads/v1/activity.js +9 -0
  7. package/payloads/v1/activity.js.map +1 -1
  8. package/payloads/v1/activity.mjs +8 -0
  9. package/payloads/v1/api-error.d.ts +302 -0
  10. package/payloads/v1/api-error.js +216 -0
  11. package/payloads/v1/api-error.js.map +1 -0
  12. package/payloads/v1/api-error.mjs +188 -0
  13. package/payloads/v1/api-key.d.ts +88 -0
  14. package/payloads/v1/api-key.js +267 -0
  15. package/payloads/v1/api-key.js.map +1 -0
  16. package/payloads/v1/api-key.mjs +235 -0
  17. package/payloads/v1/application.d.ts +234 -47
  18. package/payloads/v1/application.js +34 -3
  19. package/payloads/v1/application.js.map +1 -1
  20. package/payloads/v1/application.mjs +28 -2
  21. package/payloads/v1/database-data.d.ts +329 -0
  22. package/payloads/v1/database-data.js +63 -0
  23. package/payloads/v1/database-data.js.map +1 -0
  24. package/payloads/v1/database-data.mjs +35 -0
  25. package/payloads/v1/database.d.ts +29 -31
  26. package/payloads/v1/database.js.map +1 -1
  27. package/payloads/v1/github.d.ts +20 -0
  28. package/{rest/v1/credits.js → payloads/v1/github.js} +4 -4
  29. package/payloads/v1/github.js.map +1 -0
  30. package/payloads/v1/github.mjs +1 -0
  31. package/payloads/v1/index.d.ts +12 -9
  32. package/payloads/v1/index.js +630 -10
  33. package/payloads/v1/index.js.map +1 -1
  34. package/payloads/v1/index.mjs +590 -9
  35. package/payloads/v1/notification.d.ts +2 -3
  36. package/payloads/v1/notification.js.map +1 -1
  37. package/payloads/v1/oauth.d.ts +27 -0
  38. package/payloads/v1/oauth.js +34 -0
  39. package/payloads/v1/oauth.js.map +1 -0
  40. package/payloads/v1/oauth.mjs +8 -0
  41. package/payloads/v1/orders.d.ts +52 -27
  42. package/payloads/v1/orders.js +30 -0
  43. package/payloads/v1/orders.js.map +1 -1
  44. package/payloads/v1/orders.mjs +21 -0
  45. package/payloads/v1/redeem.d.ts +1 -1
  46. package/payloads/v1/redeem.js.map +1 -1
  47. package/payloads/v1/snapshot.d.ts +37 -7
  48. package/payloads/v1/snapshot.js +8 -2
  49. package/payloads/v1/snapshot.js.map +1 -1
  50. package/payloads/v1/snapshot.mjs +6 -1
  51. package/payloads/v1/status.d.ts +2 -2
  52. package/payloads/v1/status.js.map +1 -1
  53. package/payloads/v1/user.d.ts +54 -20
  54. package/payloads/v1/user.js +16 -0
  55. package/payloads/v1/user.js.map +1 -1
  56. package/payloads/v1/user.mjs +9 -0
  57. package/payloads/v1/workspace.d.ts +296 -25
  58. package/payloads/v1/workspace.js +128 -8
  59. package/payloads/v1/workspace.js.map +1 -1
  60. package/payloads/v1/workspace.mjs +115 -7
  61. package/rest/v1/activity.d.ts +20 -9
  62. package/rest/v1/activity.js.map +1 -1
  63. package/rest/v1/api-key.d.ts +26 -0
  64. package/{payloads/v1/credits.js → rest/v1/api-key.js} +4 -4
  65. package/rest/v1/api-key.js.map +1 -0
  66. package/rest/v1/api-key.mjs +1 -0
  67. package/rest/v1/application.d.ts +302 -30
  68. package/rest/v1/application.js.map +1 -1
  69. package/rest/v1/database-data.d.ts +234 -0
  70. package/rest/v1/database-data.js +19 -0
  71. package/rest/v1/database-data.js.map +1 -0
  72. package/rest/v1/database-data.mjs +1 -0
  73. package/rest/v1/database.d.ts +55 -14
  74. package/rest/v1/database.js.map +1 -1
  75. package/rest/v1/github.d.ts +22 -0
  76. package/rest/v1/{wing.js → github.js} +4 -4
  77. package/rest/v1/github.js.map +1 -0
  78. package/rest/v1/github.mjs +1 -0
  79. package/rest/v1/index.d.ts +16 -11
  80. package/rest/v1/index.js.map +1 -1
  81. package/rest/v1/notification.d.ts +2 -3
  82. package/rest/v1/notification.js.map +1 -1
  83. package/rest/v1/oauth.d.ts +60 -0
  84. package/{payloads/v1/wing.js → rest/v1/oauth.js} +4 -4
  85. package/rest/v1/oauth.js.map +1 -0
  86. package/rest/v1/oauth.mjs +1 -0
  87. package/rest/v1/orders.d.ts +28 -7
  88. package/rest/v1/orders.js.map +1 -1
  89. package/rest/v1/redeem.d.ts +2 -1
  90. package/rest/v1/redeem.js.map +1 -1
  91. package/rest/v1/snapshot.d.ts +45 -10
  92. package/rest/v1/snapshot.js.map +1 -1
  93. package/rest/v1/status.d.ts +1 -0
  94. package/rest/v1/user.d.ts +56 -7
  95. package/rest/v1/user.js.map +1 -1
  96. package/rest/v1/workspace.d.ts +186 -18
  97. package/rest/v1/workspace.js.map +1 -1
  98. package/v1.d.ts +24 -19
  99. package/v1.js +630 -10
  100. package/v1.js.map +1 -1
  101. package/v1.mjs +590 -9
  102. package/payloads/v1/credits.d.ts +0 -56
  103. package/payloads/v1/credits.js.map +0 -1
  104. package/payloads/v1/credits.mjs +0 -1
  105. package/payloads/v1/wing.d.ts +0 -133
  106. package/payloads/v1/wing.js.map +0 -1
  107. package/payloads/v1/wing.mjs +0 -1
  108. package/rest/v1/credits.d.ts +0 -17
  109. package/rest/v1/credits.js.map +0 -1
  110. package/rest/v1/credits.mjs +0 -1
  111. package/rest/v1/wing.d.ts +0 -38
  112. package/rest/v1/wing.js.map +0 -1
  113. package/rest/v1/wing.mjs +0 -1
@@ -1,12 +1,120 @@
1
1
  // payloads/v1/workspace.ts
2
- var WorkspaceMemberRole = {
3
- OWNER: "owner",
4
- ADMIN: "admin",
5
- DEVELOPER: "developer",
6
- OPERATOR: "operator",
7
- VIEWER: "viewer"
2
+ var WorkspacePermission = {
3
+ APPS_READ: "apps:read",
4
+ APPS_MANAGE: "apps:manage",
5
+ APPS_LIFECYCLE: "apps:lifecycle",
6
+ APPS_ENVS: "apps:envs",
7
+ APPS_FILES: "apps:files",
8
+ APPS_DELETE: "apps:delete",
9
+ DATABASES_READ: "databases:read",
10
+ DATABASES_MANAGE: "databases:manage",
11
+ DATABASES_LIFECYCLE: "databases:lifecycle",
12
+ DATABASES_CREDENTIALS: "databases:credentials",
13
+ DATABASES_DATA: "databases:data",
14
+ DATABASES_DELETE: "databases:delete",
15
+ SNAPSHOTS_READ: "snapshots:read",
16
+ SNAPSHOTS_MANAGE: "snapshots:manage",
17
+ MEMBERS_READ: "members:read",
18
+ MEMBERS_MANAGE: "members:manage",
19
+ ROLES_MANAGE: "roles:manage",
20
+ ACTIVITIES_READ: "activities:read"
21
+ };
22
+ var WORKSPACE_PERMISSIONS = {
23
+ "apps:read": { group: "apps" },
24
+ "apps:manage": { group: "apps" },
25
+ "apps:lifecycle": { group: "apps" },
26
+ "apps:envs": { group: "apps" },
27
+ "apps:files": { group: "apps" },
28
+ "apps:delete": { group: "apps" },
29
+ "databases:read": { group: "databases" },
30
+ "databases:manage": { group: "databases" },
31
+ "databases:lifecycle": { group: "databases" },
32
+ "databases:credentials": { group: "databases" },
33
+ "databases:data": { group: "databases" },
34
+ "databases:delete": { group: "databases" },
35
+ "snapshots:read": { group: "snapshots" },
36
+ "snapshots:manage": { group: "snapshots" },
37
+ "members:read": { group: "members" },
38
+ "members:manage": { group: "members" },
39
+ "roles:manage": { group: "roles" },
40
+ "activities:read": { group: "activities" }
41
+ };
42
+ var WORKSPACE_PERMISSION_LIST = Object.keys(WORKSPACE_PERMISSIONS);
43
+ var WorkspaceRolePreset = {
44
+ Admin: "admin",
45
+ Developer: "developer",
46
+ Operator: "operator",
47
+ Viewer: "viewer"
48
+ };
49
+ function workspacePresetPermissions(preset) {
50
+ switch (preset) {
51
+ case "admin":
52
+ return WORKSPACE_PERMISSION_LIST.filter((p) => p !== "snapshots:manage");
53
+ case "developer":
54
+ return ["apps:read", "apps:manage", "apps:lifecycle", "apps:envs", "apps:files", "databases:read", "databases:manage", "databases:lifecycle", "databases:credentials", "databases:data", "snapshots:read", "members:read", "activities:read"];
55
+ case "operator":
56
+ return ["apps:read", "apps:lifecycle", "databases:read", "databases:lifecycle", "snapshots:read", "members:read", "activities:read"];
57
+ case "viewer":
58
+ return ["apps:read", "databases:read", "snapshots:read", "members:read", "activities:read"];
59
+ }
60
+ }
61
+ var WorkspaceResourceType = { Application: "application", Database: "database" };
62
+ var WorkspaceResourceOrganizationScope = { Personal: "personal", Workspace: "workspace" };
63
+ var WorkspaceFolderColor = { Neutral: "neutral", Red: "red", Orange: "orange", Yellow: "yellow", Green: "green", Blue: "blue", Purple: "purple" };
64
+ var WORKSPACE_FOLDER_COLORS = Object.values(WorkspaceFolderColor);
65
+ var WorkspaceInviteKind = { Email: "email", Link: "link" };
66
+ var WorkspaceActionRequestAction = {
67
+ AppDelete: "app_delete",
68
+ DatabaseDelete: "database_delete",
69
+ SnapshotCreate: "snapshot_create",
70
+ SnapshotRestore: "snapshot_restore"
71
+ };
72
+ var WorkspaceActionRequestStatus = {
73
+ Pending: "pending",
74
+ Approved: "approved",
75
+ Rejected: "rejected",
76
+ Expired: "expired"
77
+ };
78
+ var WORKSPACE_ERROR_CODES = {
79
+ WORKSPACE_NOT_FOUND: "WORKSPACE_NOT_FOUND",
80
+ WORKSPACE_NAME_ALREADY_EXISTS: "WORKSPACE_NAME_ALREADY_EXISTS",
81
+ WORKSPACE_MEMBER_LIMIT_REACHED: "WORKSPACE_MEMBER_LIMIT_REACHED",
82
+ WORKSPACE_ROLE_LIMIT_REACHED: "WORKSPACE_ROLE_LIMIT_REACHED",
83
+ WORKSPACE_ROLE_IN_USE: "WORKSPACE_ROLE_IN_USE",
84
+ WORKSPACE_ROLE_NOT_FOUND: "WORKSPACE_ROLE_NOT_FOUND",
85
+ WORKSPACE_ROLE_NAME_ALREADY_EXISTS: "WORKSPACE_ROLE_NAME_ALREADY_EXISTS",
86
+ WORKSPACE_PERMISSION_DENIED: "WORKSPACE_PERMISSION_DENIED",
87
+ WORKSPACE_PERMISSION_ESCALATION: "WORKSPACE_PERMISSION_ESCALATION",
88
+ WORKSPACE_INVITE_NOT_FOUND: "WORKSPACE_INVITE_NOT_FOUND",
89
+ WORKSPACE_INVITE_EXPIRED: "WORKSPACE_INVITE_EXPIRED",
90
+ WORKSPACE_INVITE_EMAIL_MISMATCH: "WORKSPACE_INVITE_EMAIL_MISMATCH",
91
+ WORKSPACE_OWNER_ONLY: "WORKSPACE_OWNER_ONLY",
92
+ WORKSPACE_ACTION_REQUEST_NOT_FOUND: "WORKSPACE_ACTION_REQUEST_NOT_FOUND",
93
+ /** 409 — the request was already approved or rejected. */
94
+ /** 400 — the requester already has the permission; perform the action directly. */
95
+ WORKSPACE_ACTION_NOT_NEEDED: "WORKSPACE_ACTION_NOT_NEEDED",
96
+ /** 400 — the request `params` failed the action's validation (e.g. a snapshot of another resource). */
97
+ WORKSPACE_ACTION_INVALID_PARAMS: "WORKSPACE_ACTION_INVALID_PARAMS",
98
+ /** 409 — a pending request already exists for the same action on the same resource. */
99
+ WORKSPACE_ACTION_REQUEST_PENDING: "WORKSPACE_ACTION_REQUEST_PENDING",
100
+ WORKSPACE_RESOURCE_FOLDER_NOT_FOUND: "WORKSPACE_RESOURCE_FOLDER_NOT_FOUND",
101
+ WORKSPACE_RESOURCE_FOLDER_NAME_CONFLICT: "WORKSPACE_RESOURCE_FOLDER_NAME_CONFLICT",
102
+ WORKSPACE_RESOURCE_NOT_FOUND: "WORKSPACE_RESOURCE_NOT_FOUND",
103
+ PLAN_RESTRICTED_FEATURE: "PLAN_RESTRICTED_FEATURE"
8
104
  };
9
105
  export {
10
- WorkspaceMemberRole
106
+ WORKSPACE_ERROR_CODES,
107
+ WORKSPACE_FOLDER_COLORS,
108
+ WORKSPACE_PERMISSIONS,
109
+ WORKSPACE_PERMISSION_LIST,
110
+ WorkspaceActionRequestAction,
111
+ WorkspaceActionRequestStatus,
112
+ WorkspaceFolderColor,
113
+ WorkspaceInviteKind,
114
+ WorkspacePermission,
115
+ WorkspaceResourceOrganizationScope,
116
+ WorkspaceResourceType,
117
+ WorkspaceRolePreset,
118
+ workspacePresetPermissions
11
119
  };
12
120
  //# sourceMappingURL=workspace.mjs.map
@@ -1,14 +1,25 @@
1
- import { APIPayload } from '../../common/v1.js';
2
- import { APIActivity } from '../../payloads/v1/activity.js';
1
+ import { APIPaginatedPayload } from '../../common/v1.js';
2
+ import { ActivityTargetType, ActivityStatus, ActivityOrigin, APIActivity } from '../../payloads/v1/activity.js';
3
+ import '../../payloads/v1/api-error.js';
3
4
  import '../../payloads/v1/notification.js';
4
5
 
6
+ /** Dashboard session only (not reachable with an API key). */
7
+ interface RESTGetAPIActivitiesQuery {
8
+ page?: number;
9
+ limit?: number;
10
+ target_id?: string;
11
+ target_type?: ActivityTargetType;
12
+ status?: ActivityStatus;
13
+ origin?: ActivityOrigin;
14
+ search?: string;
15
+ workspace_id?: string;
16
+ /** Only applies when `workspace_id` is also provided. */
17
+ author_id?: string;
18
+ }
5
19
  /**
6
- * @see https://docs.vertracloud.app/api-reference/endpoint/activities
20
+ * A page of activities.
21
+ * Dashboard session only (not reachable with an API key).
7
22
  */
8
- type RESTGetAPIActivityResponse = APIPayload<APIActivity>;
9
- /**
10
- * @see https://docs.vertracloud.app/api-reference/endpoint/activities
11
- */
12
- type RESTGetAPIActivitiesResponse = APIPayload<APIActivity[]>;
23
+ type RESTGetAPIActivitiesResponse = APIPaginatedPayload<APIActivity>;
13
24
 
14
- export type { RESTGetAPIActivitiesResponse, RESTGetAPIActivityResponse };
25
+ export type { RESTGetAPIActivitiesQuery, RESTGetAPIActivitiesResponse };
@@ -1 +1 @@
1
- {"version":3,"sources":["activity.ts"],"sourcesContent":["import type { APIActivity, APIPayload } from \"../../v1\";\n\n/**\n * @see https://docs.vertracloud.app/api-reference/endpoint/activities\n */\nexport type RESTGetAPIActivityResponse = APIPayload<APIActivity>;\n\n/**\n * @see https://docs.vertracloud.app/api-reference/endpoint/activities\n */\nexport type RESTGetAPIActivitiesResponse = APIPayload<APIActivity[]>;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["activity.ts"],"sourcesContent":["import type { APIActivity, APIPaginatedPayload, ActivityOrigin, ActivityStatus, ActivityTargetType } from \"../../v1\";\n\n/** Dashboard session only (not reachable with an API key). */\nexport interface RESTGetAPIActivitiesQuery {\n\tpage?: number;\n\tlimit?: number;\n\ttarget_id?: string;\n\ttarget_type?: ActivityTargetType;\n\tstatus?: ActivityStatus;\n\torigin?: ActivityOrigin;\n\tsearch?: string;\n\tworkspace_id?: string;\n\t/** Only applies when `workspace_id` is also provided. */\n\tauthor_id?: string;\n}\n\n/**\n * A page of activities.\n * Dashboard session only (not reachable with an API key).\n */\nexport type RESTGetAPIActivitiesResponse = APIPaginatedPayload<APIActivity>;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,26 @@
1
+ import { APIPayload } from '../../common/v1.js';
2
+ import { APIApiKey, APIApiKeyScope, APIApiKeyCreated } from '../../payloads/v1/api-key.js';
3
+ import '../../payloads/v1/api-error.js';
4
+
5
+ /**
6
+ * Key management under `/v1/users/me/api-keys`. Dashboard session only: every route rejects API key authentication (`WEBSITE_ONLY`).
7
+ * @see https://docs.vertracloud.app/api-reference/endpoint/users/api-keys/list
8
+ */
9
+ type RESTGetAPIUserApiKeysResponse = APIPayload<APIApiKey[]>;
10
+ interface RESTPostAPIUserApiKeyCreateBody {
11
+ /** 1–40 characters. */
12
+ name: string;
13
+ /** At least one scope. */
14
+ scopes: APIApiKeyScope[];
15
+ /** One IP or CIDR per entry, max. 20. Omitted/empty = any IP. */
16
+ allowed_ips?: string[];
17
+ }
18
+ type RESTPostAPIUserApiKeyCreateResponse = APIPayload<APIApiKeyCreated>;
19
+ /** Never changes the secret — use `rotate` for that. */
20
+ type RESTPatchAPIUserApiKeyBody = Partial<RESTPostAPIUserApiKeyCreateBody>;
21
+ type RESTPatchAPIUserApiKeyResponse = APIPayload<APIApiKey>;
22
+ /** New secret; same `id`, name, scopes and IPs. */
23
+ type RESTPostAPIUserApiKeyRotateResponse = APIPayload<APIApiKeyCreated>;
24
+ type RESTDeleteAPIUserApiKeyResponse = APIPayload<never>;
25
+
26
+ export type { RESTDeleteAPIUserApiKeyResponse, RESTGetAPIUserApiKeysResponse, RESTPatchAPIUserApiKeyBody, RESTPatchAPIUserApiKeyResponse, RESTPostAPIUserApiKeyCreateBody, RESTPostAPIUserApiKeyCreateResponse, RESTPostAPIUserApiKeyRotateResponse };
@@ -13,7 +13,7 @@ var __copyProps = (to, from, except, desc) => {
13
13
  };
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
 
16
- // payloads/v1/credits.ts
17
- var credits_exports = {};
18
- module.exports = __toCommonJS(credits_exports);
19
- //# sourceMappingURL=credits.js.map
16
+ // rest/v1/api-key.ts
17
+ var api_key_exports = {};
18
+ module.exports = __toCommonJS(api_key_exports);
19
+ //# sourceMappingURL=api-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["api-key.ts"],"sourcesContent":["import type { APIApiKey, APIApiKeyCreated, APIApiKeyScope, APIPayload } from \"../../v1\";\n\n/**\n * Key management under `/v1/users/me/api-keys`. Dashboard session only: every route rejects API key authentication (`WEBSITE_ONLY`).\n * @see https://docs.vertracloud.app/api-reference/endpoint/users/api-keys/list\n */\nexport type RESTGetAPIUserApiKeysResponse = APIPayload<APIApiKey[]>;\n\nexport interface RESTPostAPIUserApiKeyCreateBody {\n\t/** 1–40 characters. */\n\tname: string;\n\t/** At least one scope. */\n\tscopes: APIApiKeyScope[];\n\t/** One IP or CIDR per entry, max. 20. Omitted/empty = any IP. */\n\tallowed_ips?: string[];\n}\nexport type RESTPostAPIUserApiKeyCreateResponse = APIPayload<APIApiKeyCreated>;\n\n/** Never changes the secret — use `rotate` for that. */\nexport type RESTPatchAPIUserApiKeyBody = Partial<RESTPostAPIUserApiKeyCreateBody>;\nexport type RESTPatchAPIUserApiKeyResponse = APIPayload<APIApiKey>;\n\n/** New secret; same `id`, name, scopes and IPs. */\nexport type RESTPostAPIUserApiKeyRotateResponse = APIPayload<APIApiKeyCreated>;\n\nexport type RESTDeleteAPIUserApiKeyResponse = APIPayload<never>;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=api-key.mjs.map
@@ -1,6 +1,11 @@
1
- import { APIPayload } from '../../common/v1.js';
2
- import { APIApplication, APIApplicationStatus, APIApplicationStatusShort, APIApplicationMetric, APIApplicationFile, APIApplicationFileContent, APIApplicationEnvironment, APIApplicationOperationResponse, APIDnsRecord, APICustomDomainResponse, APISubdomainResponse, APIWebhookUrl, APIApplicationDeployment } from '../../payloads/v1/application.js';
1
+ import { APIPayload, RESTAPIWorkspaceQuery, ISODateString } from '../../common/v1.js';
2
+ import { APIApplicationWebPublish, APIApplicationCustomDomain, APIApplicationDeployment, APIApplicationDnsRecord, APIApplicationEnvironment, APIApplicationFileContent, APIApplicationFileTree, APIApplicationFile, APIApplicationMetric, APIApplicationRealtimeEvent, APIApplication, APIApplicationRuntimes, APIApplicationStatus, APIApplicationStatusShort, APIApplicationWebhook, APIApplicationSubdomain, ApplicationLanguage, APIApplicationFileUpload, APIApplicationOperationResponse, APIApplicationScanSuggestions, APIApplicationWebhookUrl } from '../../payloads/v1/application.js';
3
+ import '../../payloads/v1/api-error.js';
3
4
 
5
+ /**
6
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/runtimes
7
+ */
8
+ type RESTGetAPIApplicationRuntimesResponse = APIPayload<APIApplicationRuntimes>;
4
9
  /**
5
10
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/get
6
11
  */
@@ -12,47 +17,204 @@ type RESTGetAPIApplicationStatusResponse = APIPayload<APIApplicationStatus>;
12
17
  /**
13
18
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/allstatus
14
19
  */
15
- type RESTGetAPIApplicationStatusShortResponse = APIPayload<APIApplicationStatusShort>;
20
+ type RESTGetAPIApplicationStatusShortResponse = APIPayload<APIApplicationStatusShort[]>;
16
21
  /**
17
22
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/logs
18
23
  */
19
24
  type RESTGetAPIApplicationLogsResponse = APIPayload<string>;
25
+ /**
26
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/metrics
27
+ */
28
+ interface RESTGetAPIApplicationMetricsQuery extends RESTAPIWorkspaceQuery {
29
+ range?: "10m" | "30m" | "24h";
30
+ }
20
31
  /**
21
32
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/metrics
22
33
  */
23
34
  type RESTGetAPIApplicationMetricsResponse = APIPayload<APIApplicationMetric[]>;
35
+ /**
36
+ * `GET /v1/apps/:id/files`. `path` absent = the application root.
37
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/files
38
+ */
39
+ interface RESTGetAPIApplicationFilesQuery extends RESTAPIWorkspaceQuery {
40
+ path?: string;
41
+ }
24
42
  /**
25
43
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/files
26
44
  */
27
45
  type RESTGetAPIApplicationFilesResponse = APIPayload<APIApplicationFile[]>;
46
+ /**
47
+ * `GET /v1/apps/:id/files/tree` — the whole file tree (depth-limited), as a list of root entries.
48
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/tree
49
+ */
50
+ type RESTGetAPIApplicationFileTreeResponse = APIPayload<APIApplicationFileTree[]>;
51
+ /**
52
+ * `GET /v1/apps/:id/files/content`.
53
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/content
54
+ */
55
+ interface RESTGetAPIApplicationFileContentQuery extends RESTAPIWorkspaceQuery {
56
+ path: string;
57
+ }
28
58
  /**
29
59
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/content
30
60
  */
31
61
  type RESTGetAPIApplicationFileContentResponse = APIPayload<APIApplicationFileContent>;
32
62
  /**
33
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/start
63
+ * `POST /v1/apps/:id/files/upload` (multipart zip). `restart: "true"` restarts the app after the upload.
64
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/upload
34
65
  */
35
- type RESTGetAPIApplicationStartResponse = APIPayload<boolean>;
66
+ interface RESTPostAPIApplicationFileUploadQuery extends RESTAPIWorkspaceQuery {
67
+ restart?: "true" | "false";
68
+ }
36
69
  /**
37
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/restart
70
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/upload
38
71
  */
39
- type RESTGetAPIApplicationRestartResponse = APIPayload<boolean>;
72
+ type RESTPostAPIApplicationFileUploadResponse = APIPayload<APIApplicationFileUpload>;
40
73
  /**
41
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/stop
74
+ * Creates or overwrites a file. Without `content`, creates (or truncates to) an empty file.
75
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/save
76
+ */
77
+ interface RESTPutAPIApplicationFileBody {
78
+ path: string;
79
+ content?: string;
80
+ /** ISO 8601 datetime from the last read; a mismatch returns `409 FILE_MODIFIED`. */
81
+ last_modified?: ISODateString;
82
+ workspace_id?: string;
83
+ }
84
+ /**
85
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/save
42
86
  */
43
- type RESTGetAPIApplicationStopResponse = APIPayload<boolean>;
87
+ type RESTPutAPIApplicationFileResponse = APIPayload<null>;
88
+ /**
89
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/delete
90
+ */
91
+ interface RESTDeleteAPIApplicationFileBody {
92
+ path: string;
93
+ workspace_id?: string;
94
+ }
95
+ /**
96
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/delete
97
+ */
98
+ type RESTDeleteAPIApplicationFileResponse = APIPayload<null>;
99
+ /**
100
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/move
101
+ */
102
+ interface RESTPatchAPIApplicationFileMoveBody {
103
+ path: string;
104
+ to: string;
105
+ workspace_id?: string;
106
+ }
107
+ /**
108
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/filemanager/move
109
+ */
110
+ type RESTPatchAPIApplicationFileMoveResponse = APIPayload<null>;
44
111
  /**
45
112
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/enviroments/get
46
113
  */
47
114
  type RESTGetAPIApplicationEnvironmentResponse = APIPayload<APIApplicationEnvironment[]>;
48
115
  /**
116
+ * One variable of the `POST /apps/:id/envs` body. `note: null` clears the existing note.
117
+ *
118
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/enviroments/createOrEdit
119
+ */
120
+ interface RESTPostAPIApplicationEnvironmentVariableBody {
121
+ key: string;
122
+ value: string;
123
+ note?: string | null;
124
+ }
125
+ /**
126
+ * Body of `POST /apps/:id/envs`: a single object (one variable) or an array (batch), with no repeated keys.
127
+ *
128
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/enviroments/createOrEdit
129
+ */
130
+ type RESTPostAPIApplicationEnvironmentBody = RESTPostAPIApplicationEnvironmentVariableBody | RESTPostAPIApplicationEnvironmentVariableBody[];
131
+ /**
132
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/enviroments/createOrEdit
133
+ */
134
+ type RESTPostAPIApplicationEnvironmentResponse = APIPayload<APIApplicationEnvironment[]>;
135
+ /**
136
+ * `DELETE /v1/apps/:id/envs/:envId`.
137
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/enviroments/delete
138
+ */
139
+ type RESTDeleteAPIApplicationEnvironmentResponse = APIPayload<null>;
140
+ /**
141
+ * Body of `POST /apps` — **`multipart/form-data`**, not JSON. Each field below is one multipart
142
+ * part: `file` as a file and **every other field as a text field** (including `snapshot_id`,
143
+ * `memory` and `envs`, the latter as a JSON-serialized string).
144
+ *
145
+ * The application has **two mutually exclusive sources**:
146
+ *
147
+ * - `file` — the zip uploaded by the user;
148
+ * - `snapshot_id` — alternative to `file`: the app is created from that snapshot (which already
149
+ * includes its `vertracloud.config`).
150
+ *
151
+ * **Exactly one of them must be present.** Neither → `SOURCE_REQUIRED`; both →
152
+ * `SOURCE_CONFLICT`.
153
+ *
154
+ * Error codes:
155
+ *
156
+ * - `SOURCE_REQUIRED` — neither `file` nor `snapshot_id`.
157
+ * - `SOURCE_CONFLICT` — `file` and `snapshot_id` together.
158
+ * - `SNAPSHOT_NOT_FOUND` — the snapshot does not exist or does not belong to the user.
159
+ * - `SNAPSHOT_TYPE_MISMATCH` — the snapshot is from a database, not an application.
160
+ * - `SNAPSHOT_TOO_LARGE` — the snapshot exceeds the size limit for creation.
161
+ *
162
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/create
163
+ */
164
+ interface RESTPostAPIApplicationCreateBody {
165
+ /** Application zip. Absent when the source is `snapshot_id`. */
166
+ file?: unknown;
167
+ /**
168
+ * Alternative to `file`: id of the **application** snapshot to create the app from. Sent as a
169
+ * multipart text field. Exactly one of `file` and `snapshot_id`.
170
+ */
171
+ snapshot_id?: string;
172
+ name: string;
173
+ description?: string | null;
174
+ /** RAM in MB. Multipart text field. Required with `file`; with `snapshot_id` defaults to the snapshot's config. */
175
+ memory?: number;
176
+ /** Required with `file`; with `snapshot_id` defaults to the snapshot's config. */
177
+ main?: string;
178
+ /** Required with `file`; with `snapshot_id` defaults to the snapshot's config. */
179
+ version?: string;
180
+ start?: string;
181
+ /** Build command (see `APIApplication.build_command`). */
182
+ build?: string;
183
+ /** @deprecated Always `true` since 2026-09-17 — auto-restart is on for every plan; any value sent is ignored. */
184
+ autorestart?: boolean;
185
+ /** `"random"` = the platform picks one at random. */
186
+ subdomain?: string;
187
+ workspace_id?: string;
188
+ /** JSON-serialized string in the multipart body. */
189
+ envs?: RESTPostAPIApplicationEnvironmentVariableBody[];
190
+ }
191
+ /**
192
+ * The created application, plus the directories removed from the uploaded zip.
49
193
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/create
50
194
  */
51
- type RESTPostAPIApplicationCreateResponse = APIPayload<APIApplication>;
195
+ type RESTPostAPIApplicationCreateResponse = APIPayload<APIApplication & {
196
+ removed_directories: string[];
197
+ }>;
198
+ /**
199
+ * Scans a zip before creating the application and returns suggestions (start/build command,
200
+ * memory). Creates nothing.
201
+ *
202
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/scan
203
+ */
204
+ interface RESTPostAPIApplicationScanBody {
205
+ /** Application zip. */
206
+ file: unknown;
207
+ /** Main file of the application — used only to infer the language, as on create. */
208
+ main: string;
209
+ }
210
+ /**
211
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/scan
212
+ */
213
+ type RESTPostAPIApplicationScanResponse = APIPayload<APIApplicationScanSuggestions>;
52
214
  /**
53
215
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/delete
54
216
  */
55
- type RESTDeleteAPIApplicationResponse = APIPayload<void>;
217
+ type RESTDeleteAPIApplicationResponse = APIPayload<null>;
56
218
  /**
57
219
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/download
58
220
  */
@@ -60,7 +222,14 @@ type RESTGetAPIApplicationDownloadResponse = ArrayBuffer;
60
222
  /**
61
223
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/realtime
62
224
  */
63
- type RESTGetAPIApplicationRealtimeResponse = EventSource;
225
+ interface RESTGetAPIApplicationRealtimeQuery extends RESTAPIWorkspaceQuery {
226
+ since?: number;
227
+ }
228
+ /**
229
+ * The route answers with a `text/event-stream`; this is the shape of each event in it.
230
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/realtime
231
+ */
232
+ type RESTGetAPIApplicationRealtimeResponse = APIApplicationRealtimeEvent;
64
233
  /**
65
234
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/start
66
235
  */
@@ -69,43 +238,146 @@ type RESTPostAPIApplicationStartResponse = APIPayload<APIApplicationOperationRes
69
238
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/stop
70
239
  */
71
240
  type RESTPostAPIApplicationStopResponse = APIPayload<APIApplicationOperationResponse>;
241
+ /**
242
+ * Optional restart body. No body = regular restart, reusing the install and build cache.
243
+ *
244
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/restart
245
+ */
246
+ interface RESTPostAPIApplicationRestartBody {
247
+ /** Reinstalls dependencies from scratch, ignoring the install cache. */
248
+ reinstall_dependencies?: boolean;
249
+ /** Runs the build command again even without code changes. Counts as a deploy toward the hourly limit. */
250
+ force_build?: boolean;
251
+ /**
252
+ * After changing the app's language, removes the dependencies left by the previous runtime.
253
+ * Must differ from the current language (`CLEANUP_LANGUAGE_SAME_AS_CURRENT`).
254
+ */
255
+ cleanup_old_runtime_language?: ApplicationLanguage;
256
+ }
72
257
  /**
73
258
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/restart
74
259
  */
75
260
  type RESTPostAPIApplicationRestartResponse = APIPayload<APIApplicationOperationResponse>;
76
261
  /**
262
+ * Body for updating the app configuration. Every field is optional, but at least one must be
263
+ * provided.
264
+ *
77
265
  * @see https://docs.vertracloud.app/api-reference/endpoint/apps/updateconfig
78
266
  */
79
- type RESTPostAPIApplicationUpdateConfigResponse = APIPayload<string>;
267
+ interface RESTPatchAPIApplicationUpdateConfigBody {
268
+ name?: string;
269
+ description?: string | null;
270
+ main_file?: string;
271
+ version?: string;
272
+ auto_restart?: boolean;
273
+ start_command?: string | null;
274
+ build_command?: string | null;
275
+ ram?: number;
276
+ language?: ApplicationLanguage;
277
+ }
80
278
  /**
81
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/dnsrecords
279
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/updateconfig
82
280
  */
83
- type RESTGetAPIApplicationDnsRecordsResponse = APIPayload<APIDnsRecord[]>;
281
+ type RESTPatchAPIApplicationUpdateConfigResponse = APIPayload<string>;
84
282
  /**
85
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/customdomain
283
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/dns
86
284
  */
87
- type RESTPostAPIApplicationCustomDomainResponse = APIPayload<APICustomDomainResponse>;
285
+ type RESTGetAPIApplicationDnsRecordsResponse = APIPayload<APIApplicationDnsRecord[]>;
88
286
  /**
89
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/subdomain
287
+ * Purges the edge cache of a published application.
288
+ *
289
+ * `hostnames` absent or empty = every host of the application (subdomain and custom domain).
290
+ * When provided, each host must belong to the application. `paths` narrows the purge to
291
+ * specific URLs within those hosts.
292
+ *
293
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/purgecache
90
294
  */
91
- type RESTPatchAPIApplicationSubdomainResponse = APIPayload<APISubdomainResponse>;
295
+ interface RESTPostAPIApplicationPurgeCacheBody {
296
+ hostnames?: string[];
297
+ paths?: string[];
298
+ }
92
299
  /**
93
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/webhook
300
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/purgecache
94
301
  */
95
- type RESTGetAPIApplicationWebhookUrlResponse = APIPayload<APIWebhookUrl>;
302
+ type RESTPostAPIApplicationPurgeCacheResponse = APIPayload<null>;
96
303
  /**
97
- * @see https://docs.vertracloud.app/api-reference/endpoint/apps/deployments
304
+ * `GET /v1/apps/:id/network/custom` — `404 NO_CUSTOM_DOMAIN` when the application has none.
305
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/customdomain
98
306
  */
99
- type RESTGetAPIApplicationDeploymentsResponse = APIPayload<APIApplicationDeployment[]>;
307
+ type RESTGetAPIApplicationCustomDomainResponse = APIPayload<APIApplicationCustomDomain>;
308
+ /**
309
+ * `POST /v1/apps/:id/network/custom`.
310
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/customdomain
311
+ */
312
+ interface RESTPostAPIApplicationCustomDomainBody {
313
+ domain: string;
314
+ }
315
+ /**
316
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/customdomain
317
+ */
318
+ type RESTPostAPIApplicationCustomDomainResponse = APIPayload<APIApplicationCustomDomain>;
319
+ /**
320
+ * `DELETE /v1/apps/:id/network/custom`.
321
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/customdomain
322
+ */
323
+ type RESTDeleteAPIApplicationCustomDomainResponse = APIPayload<null>;
324
+ /**
325
+ * `PATCH /v1/apps/:id/network/subdomain`. Only the label (`my-app`), 3–50 characters.
326
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/subdomain
327
+ */
328
+ interface RESTPatchAPIApplicationSubdomainBody {
329
+ subdomain: string;
330
+ }
331
+ /**
332
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/subdomain
333
+ */
334
+ type RESTPatchAPIApplicationSubdomainResponse = APIPayload<APIApplicationSubdomain>;
335
+ /**
336
+ * Turns on web publishing for an application created without it.
337
+ * `subdomain` absent = the platform picks one at random; choosing one requires a plan with custom subdomains.
338
+ *
339
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/publish
340
+ */
341
+ interface RESTPostAPIApplicationWebPublishBody {
342
+ subdomain?: string;
343
+ }
344
+ /**
345
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/publish
346
+ */
347
+ type RESTPostAPIApplicationWebPublishResponse = APIPayload<APIApplicationWebPublish>;
100
348
  /**
101
- * @see https://docs.vertracloud.app/api-reference/applications
349
+ * Turns off web publishing: releases the subdomain, removes the custom domain and makes the application private again.
350
+ *
351
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/network/publish
102
352
  */
103
- type RESTPostAPIApplicationInstallDependenciesBody = {
104
- dependencies: string[];
105
- };
353
+ type RESTDeleteAPIApplicationWebPublishResponse = APIPayload<APIApplicationWebPublish>;
106
354
  /**
107
- * @see https://docs.vertracloud.app/api-reference/applications
355
+ * `GET /v1/apps/:id/deploys/webhook`.
356
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/deploys/webhookurl
108
357
  */
109
- type RESTPostAPIApplicationInstallDependenciesResponse = APIPayload<APIApplication>;
358
+ type RESTGetAPIApplicationWebhookUrlResponse = APIPayload<APIApplicationWebhook>;
359
+ /**
360
+ * Creates the auto-deploy webhook from an already connected repository.
361
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/deploys/create
362
+ */
363
+ interface RESTPostAPIApplicationWebhookCreateBody {
364
+ owner: string;
365
+ repo_name: string;
366
+ repo_id: string;
367
+ account_id: string;
368
+ }
369
+ /**
370
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/deploys/create
371
+ */
372
+ type RESTPostAPIApplicationWebhookCreateResponse = APIPayload<APIApplicationWebhookUrl>;
373
+ /**
374
+ * `DELETE /v1/apps/:id/deploys/webhook`.
375
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/deploys/delete
376
+ */
377
+ type RESTDeleteAPIApplicationWebhookResponse = APIPayload<null>;
378
+ /**
379
+ * @see https://docs.vertracloud.app/api-reference/endpoint/apps/deploys/recents
380
+ */
381
+ type RESTGetAPIApplicationDeploymentsResponse = APIPayload<APIApplicationDeployment[]>;
110
382
 
111
- export type { RESTDeleteAPIApplicationResponse, RESTGetAPIApplicationDeploymentsResponse, RESTGetAPIApplicationDnsRecordsResponse, RESTGetAPIApplicationDownloadResponse, RESTGetAPIApplicationEnvironmentResponse, RESTGetAPIApplicationFileContentResponse, RESTGetAPIApplicationFilesResponse, RESTGetAPIApplicationLogsResponse, RESTGetAPIApplicationMetricsResponse, RESTGetAPIApplicationRealtimeResponse, RESTGetAPIApplicationResponse, RESTGetAPIApplicationRestartResponse, RESTGetAPIApplicationStartResponse, RESTGetAPIApplicationStatusResponse, RESTGetAPIApplicationStatusShortResponse, RESTGetAPIApplicationStopResponse, RESTGetAPIApplicationWebhookUrlResponse, RESTPatchAPIApplicationSubdomainResponse, RESTPostAPIApplicationCreateResponse, RESTPostAPIApplicationCustomDomainResponse, RESTPostAPIApplicationInstallDependenciesBody, RESTPostAPIApplicationInstallDependenciesResponse, RESTPostAPIApplicationRestartResponse, RESTPostAPIApplicationStartResponse, RESTPostAPIApplicationStopResponse, RESTPostAPIApplicationUpdateConfigResponse };
383
+ export type { RESTDeleteAPIApplicationCustomDomainResponse, RESTDeleteAPIApplicationEnvironmentResponse, RESTDeleteAPIApplicationFileBody, RESTDeleteAPIApplicationFileResponse, RESTDeleteAPIApplicationResponse, RESTDeleteAPIApplicationWebPublishResponse, RESTDeleteAPIApplicationWebhookResponse, RESTGetAPIApplicationCustomDomainResponse, RESTGetAPIApplicationDeploymentsResponse, RESTGetAPIApplicationDnsRecordsResponse, RESTGetAPIApplicationDownloadResponse, RESTGetAPIApplicationEnvironmentResponse, RESTGetAPIApplicationFileContentQuery, RESTGetAPIApplicationFileContentResponse, RESTGetAPIApplicationFileTreeResponse, RESTGetAPIApplicationFilesQuery, RESTGetAPIApplicationFilesResponse, RESTGetAPIApplicationLogsResponse, RESTGetAPIApplicationMetricsQuery, RESTGetAPIApplicationMetricsResponse, RESTGetAPIApplicationRealtimeQuery, RESTGetAPIApplicationRealtimeResponse, RESTGetAPIApplicationResponse, RESTGetAPIApplicationRuntimesResponse, RESTGetAPIApplicationStatusResponse, RESTGetAPIApplicationStatusShortResponse, RESTGetAPIApplicationWebhookUrlResponse, RESTPatchAPIApplicationFileMoveBody, RESTPatchAPIApplicationFileMoveResponse, RESTPatchAPIApplicationSubdomainBody, RESTPatchAPIApplicationSubdomainResponse, RESTPatchAPIApplicationUpdateConfigBody, RESTPatchAPIApplicationUpdateConfigResponse, RESTPostAPIApplicationCreateBody, RESTPostAPIApplicationCreateResponse, RESTPostAPIApplicationCustomDomainBody, RESTPostAPIApplicationCustomDomainResponse, RESTPostAPIApplicationEnvironmentBody, RESTPostAPIApplicationEnvironmentResponse, RESTPostAPIApplicationEnvironmentVariableBody, RESTPostAPIApplicationFileUploadQuery, RESTPostAPIApplicationFileUploadResponse, RESTPostAPIApplicationPurgeCacheBody, RESTPostAPIApplicationPurgeCacheResponse, RESTPostAPIApplicationRestartBody, RESTPostAPIApplicationRestartResponse, RESTPostAPIApplicationScanBody, RESTPostAPIApplicationScanResponse, RESTPostAPIApplicationStartResponse, RESTPostAPIApplicationStopResponse, RESTPostAPIApplicationWebPublishBody, RESTPostAPIApplicationWebPublishResponse, RESTPostAPIApplicationWebhookCreateBody, RESTPostAPIApplicationWebhookCreateResponse, RESTPutAPIApplicationFileBody, RESTPutAPIApplicationFileResponse };