@distilled.cloud/stackit 0.0.0-stage → 1.0.0-rc.14

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 (298) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +33 -2
  3. package/lib/credentials.d.ts +29 -0
  4. package/lib/credentials.d.ts.map +1 -0
  5. package/lib/credentials.js +49 -0
  6. package/lib/credentials.js.map +1 -0
  7. package/lib/errors.d.ts +36 -0
  8. package/lib/errors.d.ts.map +1 -0
  9. package/lib/errors.js +26 -0
  10. package/lib/errors.js.map +1 -0
  11. package/lib/index.d.ts +30 -0
  12. package/lib/index.d.ts.map +1 -0
  13. package/lib/index.js +30 -0
  14. package/lib/index.js.map +1 -0
  15. package/lib/pagination.d.ts +9 -0
  16. package/lib/pagination.d.ts.map +1 -0
  17. package/lib/pagination.js +45 -0
  18. package/lib/pagination.js.map +1 -0
  19. package/lib/protocol.d.ts +32 -0
  20. package/lib/protocol.d.ts.map +1 -0
  21. package/lib/protocol.js +147 -0
  22. package/lib/protocol.js.map +1 -0
  23. package/lib/protocol.test.d.ts +2 -0
  24. package/lib/protocol.test.d.ts.map +1 -0
  25. package/lib/protocol.test.js +181 -0
  26. package/lib/protocol.test.js.map +1 -0
  27. package/lib/retry.d.ts +31 -0
  28. package/lib/retry.d.ts.map +1 -0
  29. package/lib/retry.js +31 -0
  30. package/lib/retry.js.map +1 -0
  31. package/lib/services/alb.d.ts +603 -0
  32. package/lib/services/alb.d.ts.map +1 -0
  33. package/lib/services/alb.js +513 -0
  34. package/lib/services/alb.js.map +1 -0
  35. package/lib/services/alb_waf.d.ts +526 -0
  36. package/lib/services/alb_waf.d.ts.map +1 -0
  37. package/lib/services/alb_waf.js +521 -0
  38. package/lib/services/alb_waf.js.map +1 -0
  39. package/lib/services/authorization.d.ts +251 -0
  40. package/lib/services/authorization.d.ts.map +1 -0
  41. package/lib/services/authorization.js +323 -0
  42. package/lib/services/authorization.js.map +1 -0
  43. package/lib/services/automation.d.ts +321 -0
  44. package/lib/services/automation.d.ts.map +1 -0
  45. package/lib/services/automation.js +363 -0
  46. package/lib/services/automation.js.map +1 -0
  47. package/lib/services/cdn.d.ts +1239 -0
  48. package/lib/services/cdn.d.ts.map +1 -0
  49. package/lib/services/cdn.js +906 -0
  50. package/lib/services/cdn.js.map +1 -0
  51. package/lib/services/certificates.d.ts +201 -0
  52. package/lib/services/certificates.d.ts.map +1 -0
  53. package/lib/services/certificates.js +179 -0
  54. package/lib/services/certificates.js.map +1 -0
  55. package/lib/services/cost.d.ts +222 -0
  56. package/lib/services/cost.d.ts.map +1 -0
  57. package/lib/services/cost.js +177 -0
  58. package/lib/services/cost.js.map +1 -0
  59. package/lib/services/dns.d.ts +842 -0
  60. package/lib/services/dns.d.ts.map +1 -0
  61. package/lib/services/dns.js +726 -0
  62. package/lib/services/dns.js.map +1 -0
  63. package/lib/services/dremio.d.ts +358 -0
  64. package/lib/services/dremio.d.ts.map +1 -0
  65. package/lib/services/dremio.js +317 -0
  66. package/lib/services/dremio.js.map +1 -0
  67. package/lib/services/edge.d.ts +312 -0
  68. package/lib/services/edge.d.ts.map +1 -0
  69. package/lib/services/edge.js +357 -0
  70. package/lib/services/edge.js.map +1 -0
  71. package/lib/services/functions.d.ts +409 -0
  72. package/lib/services/functions.d.ts.map +1 -0
  73. package/lib/services/functions.js +399 -0
  74. package/lib/services/functions.js.map +1 -0
  75. package/lib/services/git.d.ts +497 -0
  76. package/lib/services/git.d.ts.map +1 -0
  77. package/lib/services/git.js +520 -0
  78. package/lib/services/git.js.map +1 -0
  79. package/lib/services/iaas.d.ts +2986 -0
  80. package/lib/services/iaas.d.ts.map +1 -0
  81. package/lib/services/iaas.js +3543 -0
  82. package/lib/services/iaas.js.map +1 -0
  83. package/lib/services/index.d.ts +51 -0
  84. package/lib/services/index.d.ts.map +1 -0
  85. package/lib/services/index.js +52 -0
  86. package/lib/services/index.js.map +1 -0
  87. package/lib/services/intake.d.ts +555 -0
  88. package/lib/services/intake.d.ts.map +1 -0
  89. package/lib/services/intake.js +475 -0
  90. package/lib/services/intake.js.map +1 -0
  91. package/lib/services/kms.d.ts +654 -0
  92. package/lib/services/kms.d.ts.map +1 -0
  93. package/lib/services/kms.js +663 -0
  94. package/lib/services/kms.js.map +1 -0
  95. package/lib/services/lb_ip_lists.d.ts +160 -0
  96. package/lib/services/lb_ip_lists.d.ts.map +1 -0
  97. package/lib/services/lb_ip_lists.js +154 -0
  98. package/lib/services/lb_ip_lists.js.map +1 -0
  99. package/lib/services/load_balancer.d.ts +563 -0
  100. package/lib/services/load_balancer.d.ts.map +1 -0
  101. package/lib/services/load_balancer.js +497 -0
  102. package/lib/services/load_balancer.js.map +1 -0
  103. package/lib/services/logme.d.ts +516 -0
  104. package/lib/services/logme.d.ts.map +1 -0
  105. package/lib/services/logme.js +574 -0
  106. package/lib/services/logme.js.map +1 -0
  107. package/lib/services/logs.d.ts +436 -0
  108. package/lib/services/logs.d.ts.map +1 -0
  109. package/lib/services/logs.js +475 -0
  110. package/lib/services/logs.js.map +1 -0
  111. package/lib/services/mariadb.d.ts +479 -0
  112. package/lib/services/mariadb.d.ts.map +1 -0
  113. package/lib/services/mariadb.js +551 -0
  114. package/lib/services/mariadb.js.map +1 -0
  115. package/lib/services/model_experiments.d.ts +306 -0
  116. package/lib/services/model_experiments.d.ts.map +1 -0
  117. package/lib/services/model_experiments.js +336 -0
  118. package/lib/services/model_experiments.js.map +1 -0
  119. package/lib/services/model_serving.d.ts +289 -0
  120. package/lib/services/model_serving.d.ts.map +1 -0
  121. package/lib/services/model_serving.js +287 -0
  122. package/lib/services/model_serving.js.map +1 -0
  123. package/lib/services/mongodb_flex.d.ts +826 -0
  124. package/lib/services/mongodb_flex.d.ts.map +1 -0
  125. package/lib/services/mongodb_flex.js +803 -0
  126. package/lib/services/mongodb_flex.js.map +1 -0
  127. package/lib/services/object_storage.d.ts +470 -0
  128. package/lib/services/object_storage.d.ts.map +1 -0
  129. package/lib/services/object_storage.js +540 -0
  130. package/lib/services/object_storage.js.map +1 -0
  131. package/lib/services/observability.d.ts +2750 -0
  132. package/lib/services/observability.d.ts.map +1 -0
  133. package/lib/services/observability.js +3158 -0
  134. package/lib/services/observability.js.map +1 -0
  135. package/lib/services/opensearch.d.ts +505 -0
  136. package/lib/services/opensearch.d.ts.map +1 -0
  137. package/lib/services/opensearch.js +563 -0
  138. package/lib/services/opensearch.js.map +1 -0
  139. package/lib/services/pim.d.ts +997 -0
  140. package/lib/services/pim.d.ts.map +1 -0
  141. package/lib/services/pim.js +736 -0
  142. package/lib/services/pim.js.map +1 -0
  143. package/lib/services/postgres_flex.d.ts +854 -0
  144. package/lib/services/postgres_flex.d.ts.map +1 -0
  145. package/lib/services/postgres_flex.js +853 -0
  146. package/lib/services/postgres_flex.js.map +1 -0
  147. package/lib/services/pubsub.d.ts +489 -0
  148. package/lib/services/pubsub.d.ts.map +1 -0
  149. package/lib/services/pubsub.js +519 -0
  150. package/lib/services/pubsub.js.map +1 -0
  151. package/lib/services/rabbitmq.d.ts +523 -0
  152. package/lib/services/rabbitmq.d.ts.map +1 -0
  153. package/lib/services/rabbitmq.js +574 -0
  154. package/lib/services/rabbitmq.js.map +1 -0
  155. package/lib/services/registry.d.ts +212 -0
  156. package/lib/services/registry.d.ts.map +1 -0
  157. package/lib/services/registry.js +198 -0
  158. package/lib/services/registry.js.map +1 -0
  159. package/lib/services/resource_manager.d.ts +458 -0
  160. package/lib/services/resource_manager.d.ts.map +1 -0
  161. package/lib/services/resource_manager.js +473 -0
  162. package/lib/services/resource_manager.js.map +1 -0
  163. package/lib/services/run_command.d.ts +175 -0
  164. package/lib/services/run_command.d.ts.map +1 -0
  165. package/lib/services/run_command.js +185 -0
  166. package/lib/services/run_command.js.map +1 -0
  167. package/lib/services/sca.d.ts +553 -0
  168. package/lib/services/sca.d.ts.map +1 -0
  169. package/lib/services/sca.js +445 -0
  170. package/lib/services/sca.js.map +1 -0
  171. package/lib/services/scf.d.ts +498 -0
  172. package/lib/services/scf.d.ts.map +1 -0
  173. package/lib/services/scf.js +670 -0
  174. package/lib/services/scf.js.map +1 -0
  175. package/lib/services/secrets_manager.d.ts +505 -0
  176. package/lib/services/secrets_manager.d.ts.map +1 -0
  177. package/lib/services/secrets_manager.js +613 -0
  178. package/lib/services/secrets_manager.js.map +1 -0
  179. package/lib/services/server_backup.d.ts +380 -0
  180. package/lib/services/server_backup.d.ts.map +1 -0
  181. package/lib/services/server_backup.js +454 -0
  182. package/lib/services/server_backup.js.map +1 -0
  183. package/lib/services/server_update.d.ts +292 -0
  184. package/lib/services/server_update.d.ts.map +1 -0
  185. package/lib/services/server_update.js +352 -0
  186. package/lib/services/server_update.js.map +1 -0
  187. package/lib/services/service_account.d.ts +465 -0
  188. package/lib/services/service_account.d.ts.map +1 -0
  189. package/lib/services/service_account.js +506 -0
  190. package/lib/services/service_account.js.map +1 -0
  191. package/lib/services/service_enablement.d.ts +149 -0
  192. package/lib/services/service_enablement.d.ts.map +1 -0
  193. package/lib/services/service_enablement.js +157 -0
  194. package/lib/services/service_enablement.js.map +1 -0
  195. package/lib/services/sfs.d.ts +721 -0
  196. package/lib/services/sfs.d.ts.map +1 -0
  197. package/lib/services/sfs.js +790 -0
  198. package/lib/services/sfs.js.map +1 -0
  199. package/lib/services/ske.d.ts +562 -0
  200. package/lib/services/ske.d.ts.map +1 -0
  201. package/lib/services/ske.js +558 -0
  202. package/lib/services/ske.js.map +1 -0
  203. package/lib/services/sqlserverflex.d.ts +956 -0
  204. package/lib/services/sqlserverflex.d.ts.map +1 -0
  205. package/lib/services/sqlserverflex.js +936 -0
  206. package/lib/services/sqlserverflex.js.map +1 -0
  207. package/lib/services/stackit_marketplace.d.ts +288 -0
  208. package/lib/services/stackit_marketplace.d.ts.map +1 -0
  209. package/lib/services/stackit_marketplace.js +379 -0
  210. package/lib/services/stackit_marketplace.js.map +1 -0
  211. package/lib/services/telemetry_link.d.ts +443 -0
  212. package/lib/services/telemetry_link.d.ts.map +1 -0
  213. package/lib/services/telemetry_link.js +532 -0
  214. package/lib/services/telemetry_link.js.map +1 -0
  215. package/lib/services/telemetry_router.d.ts +493 -0
  216. package/lib/services/telemetry_router.d.ts.map +1 -0
  217. package/lib/services/telemetry_router.js +484 -0
  218. package/lib/services/telemetry_router.js.map +1 -0
  219. package/lib/services/ufw.d.ts +295 -0
  220. package/lib/services/ufw.d.ts.map +1 -0
  221. package/lib/services/ufw.js +279 -0
  222. package/lib/services/ufw.js.map +1 -0
  223. package/lib/services/valkey.d.ts +505 -0
  224. package/lib/services/valkey.d.ts.map +1 -0
  225. package/lib/services/valkey.js +567 -0
  226. package/lib/services/valkey.js.map +1 -0
  227. package/lib/services/vpn.d.ts +1024 -0
  228. package/lib/services/vpn.d.ts.map +1 -0
  229. package/lib/services/vpn.js +931 -0
  230. package/lib/services/vpn.js.map +1 -0
  231. package/lib/services/workflows.d.ts +600 -0
  232. package/lib/services/workflows.d.ts.map +1 -0
  233. package/lib/services/workflows.js +508 -0
  234. package/lib/services/workflows.js.map +1 -0
  235. package/lib/traits.d.ts +24 -0
  236. package/lib/traits.d.ts.map +1 -0
  237. package/lib/traits.js +15 -0
  238. package/lib/traits.js.map +1 -0
  239. package/package.json +85 -3
  240. package/src/credentials.ts +84 -0
  241. package/src/errors.ts +50 -0
  242. package/src/index.ts +34 -0
  243. package/src/pagination.ts +57 -0
  244. package/src/protocol.test.ts +304 -0
  245. package/src/protocol.ts +225 -0
  246. package/src/retry.ts +47 -0
  247. package/src/services/alb.ts +1326 -0
  248. package/src/services/alb_waf.ts +1288 -0
  249. package/src/services/authorization.ts +704 -0
  250. package/src/services/automation.ts +796 -0
  251. package/src/services/cdn.ts +2576 -0
  252. package/src/services/certificates.ts +418 -0
  253. package/src/services/cost.ts +449 -0
  254. package/src/services/dns.ts +1936 -0
  255. package/src/services/dremio.ts +753 -0
  256. package/src/services/edge.ts +780 -0
  257. package/src/services/functions.ts +957 -0
  258. package/src/services/git.ts +1194 -0
  259. package/src/services/iaas.ts +7878 -0
  260. package/src/services/index.ts +51 -0
  261. package/src/services/intake.ts +1166 -0
  262. package/src/services/kms.ts +1537 -0
  263. package/src/services/lb_ip_lists.ts +342 -0
  264. package/src/services/load_balancer.ts +1266 -0
  265. package/src/services/logme.ts +1284 -0
  266. package/src/services/logs.ts +1049 -0
  267. package/src/services/mariadb.ts +1212 -0
  268. package/src/services/model_experiments.ts +741 -0
  269. package/src/services/model_serving.ts +654 -0
  270. package/src/services/mongodb_flex.ts +1932 -0
  271. package/src/services/object_storage.ts +1195 -0
  272. package/src/services/observability.ts +7364 -0
  273. package/src/services/opensearch.ts +1265 -0
  274. package/src/services/pim.ts +1985 -0
  275. package/src/services/postgres_flex.ts +2080 -0
  276. package/src/services/pubsub.ts +1193 -0
  277. package/src/services/rabbitmq.ts +1310 -0
  278. package/src/services/registry.ts +446 -0
  279. package/src/services/resource_manager.ts +1072 -0
  280. package/src/services/run_command.ts +413 -0
  281. package/src/services/sca.ts +1187 -0
  282. package/src/services/scf.ts +1396 -0
  283. package/src/services/secrets_manager.ts +1317 -0
  284. package/src/services/server_backup.ts +983 -0
  285. package/src/services/server_update.ts +738 -0
  286. package/src/services/service_account.ts +1121 -0
  287. package/src/services/service_enablement.ts +330 -0
  288. package/src/services/sfs.ts +1831 -0
  289. package/src/services/ske.ts +1386 -0
  290. package/src/services/sqlserverflex.ts +2307 -0
  291. package/src/services/stackit_marketplace.ts +787 -0
  292. package/src/services/telemetry_link.ts +1166 -0
  293. package/src/services/telemetry_router.ts +1110 -0
  294. package/src/services/ufw.ts +654 -0
  295. package/src/services/valkey.ts +1266 -0
  296. package/src/services/vpn.ts +2365 -0
  297. package/src/services/workflows.ts +1249 -0
  298. package/src/traits.ts +60 -0
@@ -0,0 +1,1072 @@
1
+ import * as API from "@distilled.cloud/core/api";
2
+ import * as C from "@distilled.cloud/core/category";
3
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-stackit). Do not edit.
4
+ import * as S from "@distilled.cloud/core/schema";
5
+ import { UnknownStackitError } from "../errors.ts";
6
+ import { StackitProtocol, type StackitOpError, type StackitOpContext } from "../protocol.ts";
7
+ import * as Retry from "../retry.ts";
8
+ import * as T from "../traits.ts";
9
+
10
+ export type { StackitOpError, StackitOpContext };
11
+
12
+ export class BadRequest
13
+ extends /*@__PURE__*/ T.applyErrorMatchers(
14
+ /*@__PURE__*/ S.TaggedError<BadRequest>()("BadRequest", {
15
+ code: S.Number,
16
+ message: S.String,
17
+ }).pipe(C.withBadRequestError),
18
+ [{ status: 400 }],
19
+ ) {}
20
+
21
+ export class Conflict
22
+ extends /*@__PURE__*/ T.applyErrorMatchers(
23
+ /*@__PURE__*/ S.TaggedError<Conflict>()("Conflict", {
24
+ code: S.Number,
25
+ message: S.String,
26
+ }).pipe(C.withConflictError),
27
+ [{ status: 409 }],
28
+ ) {}
29
+
30
+ export class Forbidden
31
+ extends /*@__PURE__*/ T.applyErrorMatchers(
32
+ /*@__PURE__*/ S.TaggedError<Forbidden>()("Forbidden", {
33
+ code: S.Number,
34
+ message: S.String,
35
+ }).pipe(C.withAuthError),
36
+ [{ status: 403 }],
37
+ ) {}
38
+
39
+ export class NotFound
40
+ extends /*@__PURE__*/ T.applyErrorMatchers(
41
+ /*@__PURE__*/ S.TaggedError<NotFound>()("NotFound", {
42
+ code: S.Number,
43
+ message: S.String,
44
+ }).pipe(C.withBadRequestError),
45
+ [{ status: 404 }],
46
+ ) {}
47
+
48
+ /** Key-value string pairs attached to an existing resource container. Certain labels may be enforced via organizational policies. * **Key:** Must be between 1 and 63 characters long (excluding an optional domain prefix). Must start and end with an alphanumeric character `[a-zA-Z0-9]` and can contain alphanumerics, dashes (-), underscores (_), and dots (.). May include an optional domain prefix up to 250 characters (a lowercase DNS subdomain containing `[a-z0-9]`, `-`, and `.`) followed by a slash (/). Total maximum key length is 314 characters. * **Value:** Must be 63 characters or less. May be empty (""). If non-empty, must start and end with an alphanumeric character `[a-zA-Z0-9]` and can contain alphanumerics, dashes (-), underscores (_), and dots (.). > Note: Additional naming restrictions may apply depending on your specific organization.* */
49
+ export type Labels = { [key: string]: string | undefined };
50
+ export const Labels = /*@__PURE__*/ S.Record(S.String, S.String) as any as S.Schema<Labels>;
51
+
52
+ export interface Member {
53
+ /** A valid role defined for the resource. */
54
+ role: string;
55
+ /** Unique identifier of the user, service account or client. */
56
+ subject: string;
57
+ }
58
+ export const Member = /*@__PURE__*/ S.suspend(() =>
59
+ S.Struct({
60
+ role: S.String,
61
+ subject: S.String,
62
+ }),
63
+ ).annotate({ identifier: "Member" }) as any as S.Schema<Member>;
64
+
65
+ /** The initial members assigned to the project. At least one subject needs to be a user, and not a client or service account. */
66
+ export type CreateFolderRequestMembersList = Array<Member>;
67
+ export const CreateFolderRequestMembersList = /*@__PURE__*/ S.Array(
68
+ Member,
69
+ ) as any as S.Schema<CreateFolderRequestMembersList>;
70
+
71
+ export interface CreateFolderRequest {
72
+ /** Identifier of the parent resource container - containerId as well as UUID identifier is supported. */
73
+ containerParentId: string;
74
+ labels?: Labels;
75
+ /** The initial members assigned to the project. At least one subject needs to be a user, and not a client or service account. */
76
+ members?: CreateFolderRequestMembersList;
77
+ /** The name of the folder matching the regex `^[a-zA-ZäüöÄÜÖ0-9]( ?[a-zA-ZäüöÄÜÖß0-9_+&-]){0,39}$`. */
78
+ name: string;
79
+ }
80
+ export const CreateFolderRequest = /*@__PURE__*/ S.suspend(() =>
81
+ S.Struct({
82
+ containerParentId: S.String,
83
+ labels: S.optional(Labels),
84
+ members: S.optional(CreateFolderRequestMembersList),
85
+ name: S.String,
86
+ }).pipe(
87
+ T.Http({
88
+ method: "POST",
89
+ uri: "/v2/folders",
90
+ code: 200,
91
+ baseUrl: "https://resource-manager.api.stackit.cloud",
92
+ }),
93
+ ),
94
+ ).annotate({ identifier: "CreateFolderRequest" }) as any as S.Schema<CreateFolderRequest>;
95
+
96
+ /** Container type of parent container. */
97
+ export type ParentType = "ORGANIZATION" | "FOLDER";
98
+ export const ParentType = S.String;
99
+
100
+ /** Parent container. */
101
+ export interface Parent {
102
+ /** User-friendly identifier of either organization or folder (will replace id). */
103
+ containerId: string;
104
+ /** Identifier of either organization or folder. */
105
+ id: string;
106
+ /** Container type of parent container. */
107
+ type: ParentType;
108
+ }
109
+ export const Parent = /*@__PURE__*/ S.suspend(() =>
110
+ S.Struct({
111
+ containerId: S.String,
112
+ id: S.String,
113
+ type: ParentType,
114
+ }),
115
+ ).annotate({ identifier: "Parent" }) as any as S.Schema<Parent>;
116
+
117
+ export interface FolderResponse {
118
+ /** Globally unique, user-friendly identifier. */
119
+ containerId: string;
120
+ /** Timestamp at which the folder was created. */
121
+ creationTime: string;
122
+ /** Globally unique folder identifier. */
123
+ folderId: string;
124
+ labels?: Labels;
125
+ /** Folder name. */
126
+ name: string;
127
+ parent: Parent;
128
+ /** Timestamp at which the folder was last modified. */
129
+ updateTime: string;
130
+ }
131
+ export const FolderResponse = /*@__PURE__*/ S.suspend(() =>
132
+ S.Struct({
133
+ containerId: S.String,
134
+ creationTime: S.String,
135
+ folderId: S.String,
136
+ labels: S.optional(Labels),
137
+ name: S.String,
138
+ parent: Parent,
139
+ updateTime: S.String,
140
+ }),
141
+ ).annotate({ identifier: "FolderResponse" }) as any as S.Schema<FolderResponse>;
142
+
143
+ /** Key-value string pairs attached to a resource container during creation. Certain labels may be enforced via organizational policies. * **Key:** Must be between 1 and 63 characters long (excluding an optional domain prefix). Must start and end with an alphanumeric character `[a-zA-Z0-9]` and can contain alphanumerics, dashes (-), underscores (_), and dots (.). May include an optional domain prefix up to 250 characters (a lowercase DNS subdomain containing `[a-z0-9]`, `-`, and `.`) followed by a slash (/). Total maximum key length is 314 characters. * **Value:** Must be 63 characters or less. May be empty (""). If non-empty, must start and end with an alphanumeric character `[a-zA-Z0-9]` and can contain alphanumerics, dashes (-), underscores (_), and dots (.). * Either a `"scope": "PUBLIC"` label or a valid `networkArea` label must be provided for project creation. * To create a project within a STACKIT Network Area, you must set the label `"networkArea": "<networkAreaID>"`. > **Important:** The `networkArea` label is immutable and **cannot be changed** after project creation. */
144
+ export type CreateProjectLabels = { [key: string]: string | undefined };
145
+ export const CreateProjectLabels = /*@__PURE__*/ S.Record(
146
+ S.String,
147
+ S.String,
148
+ ) as any as S.Schema<CreateProjectLabels>;
149
+
150
+ /** The initial members assigned to the project. At least one subject needs to be a user, and not a client or service account. */
151
+ export type CreateProjectRequestMembersList = Array<Member>;
152
+ export const CreateProjectRequestMembersList = /*@__PURE__*/ S.Array(
153
+ Member,
154
+ ) as any as S.Schema<CreateProjectRequestMembersList>;
155
+
156
+ export interface CreateProjectRequest {
157
+ /** Identifier of the parent resource container - containerId as well as UUID identifier is supported. */
158
+ containerParentId: string;
159
+ labels?: CreateProjectLabels;
160
+ /** The initial members assigned to the project. At least one subject needs to be a user, and not a client or service account. */
161
+ members: CreateProjectRequestMembersList;
162
+ /** Project name matching the regex `^[a-zA-ZäüöÄÜÖ0-9]( ?[a-zA-ZäüöÄÜÖß0-9_+&-]){0,39}$`. */
163
+ name: string;
164
+ }
165
+ export const CreateProjectRequest = /*@__PURE__*/ S.suspend(() =>
166
+ S.Struct({
167
+ containerParentId: S.String,
168
+ labels: S.optional(CreateProjectLabels),
169
+ members: CreateProjectRequestMembersList,
170
+ name: S.String,
171
+ }).pipe(
172
+ T.Http({
173
+ method: "POST",
174
+ uri: "/v2/projects",
175
+ code: 200,
176
+ baseUrl: "https://resource-manager.api.stackit.cloud",
177
+ }),
178
+ ),
179
+ ).annotate({ identifier: "CreateProjectRequest" }) as any as S.Schema<CreateProjectRequest>;
180
+
181
+ /** Lifecycle state of the resource container. | LIFECYCLE STATE | DESCRIPTION | |----------|--------------------| | CREATING | The creation process has been triggered. The state remains until resource manager gets notified about successful process completion. | | ACTIVE | Resource container can be fully used. | | INACTIVE | Resource container usage has been disabled. | | DELETING | The deletion process has been triggered. The state remains until resource manager gets notified about successful process completion. Afterwards, the record will be deleted. | */
182
+ export type LifecycleState = "CREATING" | "ACTIVE" | "DELETING" | "INACTIVE";
183
+ export const LifecycleState = S.String;
184
+
185
+ export interface Project {
186
+ /** Globally unique, user-friendly identifier. */
187
+ containerId: string;
188
+ /** Timestamp at which the project was created. */
189
+ creationTime: string;
190
+ labels?: Labels;
191
+ lifecycleState: LifecycleState;
192
+ /** Project name. */
193
+ name: string;
194
+ parent: Parent;
195
+ /** Globally unique, project identifier. */
196
+ projectId: string;
197
+ /** Timestamp at which the project was last modified. */
198
+ updateTime: string;
199
+ }
200
+ export const Project = /*@__PURE__*/ S.suspend(() =>
201
+ S.Struct({
202
+ containerId: S.String,
203
+ creationTime: S.String,
204
+ labels: S.optional(Labels),
205
+ lifecycleState: LifecycleState,
206
+ name: S.String,
207
+ parent: Parent,
208
+ projectId: S.String,
209
+ updateTime: S.String,
210
+ }),
211
+ ).annotate({ identifier: "Project" }) as any as S.Schema<Project>;
212
+
213
+ export interface DeleteFolderRequest {
214
+ /** Folder identifier - containerId as well as UUID identifier is supported. */
215
+ containerId: string;
216
+ /** If true, all nested, empty folders are deleted recursively - if no project is attached! */
217
+ force?: boolean;
218
+ }
219
+ export const DeleteFolderRequest = /*@__PURE__*/ S.suspend(() =>
220
+ S.Struct({
221
+ containerId: S.String.pipe(T.Label()),
222
+ force: S.optional(S.Boolean.pipe(T.Query())),
223
+ }).pipe(
224
+ T.Http({
225
+ method: "DELETE",
226
+ uri: "/v2/folders/{containerId}",
227
+ code: 200,
228
+ baseUrl: "https://resource-manager.api.stackit.cloud",
229
+ }),
230
+ ),
231
+ ).annotate({ identifier: "DeleteFolderRequest" }) as any as S.Schema<DeleteFolderRequest>;
232
+
233
+ export interface DeleteFolderResponse {}
234
+ export const DeleteFolderResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate({
235
+ identifier: "DeleteFolderResponse",
236
+ }) as any as S.Schema<DeleteFolderResponse>;
237
+
238
+ export type DeleteFolderLabelsRequestKeysList = Array<string>;
239
+ export const DeleteFolderLabelsRequestKeysList = /*@__PURE__*/ S.Array(
240
+ S.String,
241
+ ) as any as S.Schema<DeleteFolderLabelsRequestKeysList>;
242
+
243
+ export interface DeleteFolderLabelsRequest {
244
+ /** Folder identifier - containerId as well as UUID identifier is supported. */
245
+ containerId: string;
246
+ /** Label name. */
247
+ keys?: DeleteFolderLabelsRequestKeysList;
248
+ }
249
+ export const DeleteFolderLabelsRequest = /*@__PURE__*/ S.suspend(() =>
250
+ S.Struct({
251
+ containerId: S.String.pipe(T.Label()),
252
+ keys: S.optional(DeleteFolderLabelsRequestKeysList.pipe(T.Query())),
253
+ }).pipe(
254
+ T.Http({
255
+ method: "DELETE",
256
+ uri: "/v2/folders/{containerId}/labels",
257
+ code: 200,
258
+ baseUrl: "https://resource-manager.api.stackit.cloud",
259
+ }),
260
+ ),
261
+ ).annotate({
262
+ identifier: "DeleteFolderLabelsRequest",
263
+ }) as any as S.Schema<DeleteFolderLabelsRequest>;
264
+
265
+ export interface DeleteFolderLabelsResponse {}
266
+ export const DeleteFolderLabelsResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate({
267
+ identifier: "DeleteFolderLabelsResponse",
268
+ }) as any as S.Schema<DeleteFolderLabelsResponse>;
269
+
270
+ export type DeleteOrganizationLabelsRequestKeysList = Array<string>;
271
+ export const DeleteOrganizationLabelsRequestKeysList = /*@__PURE__*/ S.Array(
272
+ S.String,
273
+ ) as any as S.Schema<DeleteOrganizationLabelsRequestKeysList>;
274
+
275
+ export interface DeleteOrganizationLabelsRequest {
276
+ /** Organization identifier - containerId as well as UUID identifier is supported. */
277
+ containerId: string;
278
+ /** Label name. */
279
+ keys?: DeleteOrganizationLabelsRequestKeysList;
280
+ }
281
+ export const DeleteOrganizationLabelsRequest = /*@__PURE__*/ S.suspend(() =>
282
+ S.Struct({
283
+ containerId: S.String.pipe(T.Label()),
284
+ keys: S.optional(DeleteOrganizationLabelsRequestKeysList.pipe(T.Query())),
285
+ }).pipe(
286
+ T.Http({
287
+ method: "DELETE",
288
+ uri: "/v2/organizations/{containerId}/labels",
289
+ code: 200,
290
+ baseUrl: "https://resource-manager.api.stackit.cloud",
291
+ }),
292
+ ),
293
+ ).annotate({
294
+ identifier: "DeleteOrganizationLabelsRequest",
295
+ }) as any as S.Schema<DeleteOrganizationLabelsRequest>;
296
+
297
+ export interface DeleteOrganizationLabelsResponse {}
298
+ export const DeleteOrganizationLabelsResponse = /*@__PURE__*/ S.suspend(() =>
299
+ S.Struct({}),
300
+ ).annotate({
301
+ identifier: "DeleteOrganizationLabelsResponse",
302
+ }) as any as S.Schema<DeleteOrganizationLabelsResponse>;
303
+
304
+ export interface DeleteProjectRequest {
305
+ /** Project identifier - containerId as well as UUID identifier is supported. */
306
+ id: string;
307
+ }
308
+ export const DeleteProjectRequest = /*@__PURE__*/ S.suspend(() =>
309
+ S.Struct({
310
+ id: S.String.pipe(T.Label()),
311
+ }).pipe(
312
+ T.Http({
313
+ method: "DELETE",
314
+ uri: "/v2/projects/{id}",
315
+ code: 200,
316
+ baseUrl: "https://resource-manager.api.stackit.cloud",
317
+ }),
318
+ ),
319
+ ).annotate({ identifier: "DeleteProjectRequest" }) as any as S.Schema<DeleteProjectRequest>;
320
+
321
+ export interface DeleteProjectResponse {}
322
+ export const DeleteProjectResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate({
323
+ identifier: "DeleteProjectResponse",
324
+ }) as any as S.Schema<DeleteProjectResponse>;
325
+
326
+ export type DeleteProjectLabelsRequestKeysList = Array<string>;
327
+ export const DeleteProjectLabelsRequestKeysList = /*@__PURE__*/ S.Array(
328
+ S.String,
329
+ ) as any as S.Schema<DeleteProjectLabelsRequestKeysList>;
330
+
331
+ export interface DeleteProjectLabelsRequest {
332
+ /** Project identifier - containerId as well as UUID identifier is supported. */
333
+ containerId: string;
334
+ /** Label name. */
335
+ keys?: DeleteProjectLabelsRequestKeysList;
336
+ }
337
+ export const DeleteProjectLabelsRequest = /*@__PURE__*/ S.suspend(() =>
338
+ S.Struct({
339
+ containerId: S.String.pipe(T.Label()),
340
+ keys: S.optional(DeleteProjectLabelsRequestKeysList.pipe(T.Query())),
341
+ }).pipe(
342
+ T.Http({
343
+ method: "DELETE",
344
+ uri: "/v2/projects/{containerId}/labels",
345
+ code: 200,
346
+ baseUrl: "https://resource-manager.api.stackit.cloud",
347
+ }),
348
+ ),
349
+ ).annotate({
350
+ identifier: "DeleteProjectLabelsRequest",
351
+ }) as any as S.Schema<DeleteProjectLabelsRequest>;
352
+
353
+ export interface DeleteProjectLabelsResponse {}
354
+ export const DeleteProjectLabelsResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate({
355
+ identifier: "DeleteProjectLabelsResponse",
356
+ }) as any as S.Schema<DeleteProjectLabelsResponse>;
357
+
358
+ export interface GetFolderDetailsRequest {
359
+ /** Folder identifier - containerId as well as UUID identifier is supported. */
360
+ containerId: string;
361
+ includeParents?: boolean;
362
+ }
363
+ export const GetFolderDetailsRequest = /*@__PURE__*/ S.suspend(() =>
364
+ S.Struct({
365
+ containerId: S.String.pipe(T.Label()),
366
+ includeParents: S.optional(S.Boolean.pipe(T.Query())),
367
+ }).pipe(
368
+ T.Http({
369
+ method: "GET",
370
+ uri: "/v2/folders/{containerId}",
371
+ code: 200,
372
+ baseUrl: "https://resource-manager.api.stackit.cloud",
373
+ }),
374
+ ),
375
+ ).annotate({ identifier: "GetFolderDetailsRequest" }) as any as S.Schema<GetFolderDetailsRequest>;
376
+
377
+ /** Parent container type. */
378
+ export type ParentListItemType = "FOLDER" | "ORGANIZATION";
379
+ export const ParentListItemType = S.String;
380
+
381
+ export interface ParentListItem {
382
+ /** User-friendly identifier of either organization or folder (will replace id). */
383
+ containerId: string;
384
+ /** User-friendly parent identifier of either organization or folder (will replace parentId). */
385
+ containerParentId?: string;
386
+ /** Identifier. */
387
+ id: string;
388
+ /** Parent container name. */
389
+ name: string;
390
+ /** Identifier of the parent resource container. */
391
+ parentId?: string;
392
+ /** Parent container type. */
393
+ type: ParentListItemType;
394
+ }
395
+ export const ParentListItem = /*@__PURE__*/ S.suspend(() =>
396
+ S.Struct({
397
+ containerId: S.String,
398
+ containerParentId: S.optional(S.String),
399
+ id: S.String,
400
+ name: S.String,
401
+ parentId: S.optional(S.String),
402
+ type: ParentListItemType,
403
+ }),
404
+ ).annotate({ identifier: "ParentListItem" }) as any as S.Schema<ParentListItem>;
405
+
406
+ export type ParentList = Array<ParentListItem>;
407
+ export const ParentList = /*@__PURE__*/ S.Array(ParentListItem) as any as S.Schema<ParentList>;
408
+
409
+ export interface GetFolderDetailsResponse {
410
+ /** Globally unique user-friendly identifier. */
411
+ containerId: string;
412
+ /** Timestamp at which the folder was created. */
413
+ creationTime: string;
414
+ /** Globally unique folder identifier. */
415
+ folderId: string;
416
+ labels?: Labels;
417
+ /** Folder name. */
418
+ name: string;
419
+ parent: Parent;
420
+ parents?: ParentList;
421
+ /** Timestamp at which the folder was last modified. */
422
+ updateTime: string;
423
+ }
424
+ export const GetFolderDetailsResponse = /*@__PURE__*/ S.suspend(() =>
425
+ S.Struct({
426
+ containerId: S.String,
427
+ creationTime: S.String,
428
+ folderId: S.String,
429
+ labels: S.optional(Labels),
430
+ name: S.String,
431
+ parent: Parent,
432
+ parents: S.optional(ParentList),
433
+ updateTime: S.String,
434
+ }),
435
+ ).annotate({ identifier: "GetFolderDetailsResponse" }) as any as S.Schema<GetFolderDetailsResponse>;
436
+
437
+ export interface GetOrganizationRequest {
438
+ /** Organization identifier - containerId as well as UUID identifier is supported. */
439
+ id: string;
440
+ }
441
+ export const GetOrganizationRequest = /*@__PURE__*/ S.suspend(() =>
442
+ S.Struct({
443
+ id: S.String.pipe(T.Label()),
444
+ }).pipe(
445
+ T.Http({
446
+ method: "GET",
447
+ uri: "/v2/organizations/{id}",
448
+ code: 200,
449
+ baseUrl: "https://resource-manager.api.stackit.cloud",
450
+ }),
451
+ ),
452
+ ).annotate({ identifier: "GetOrganizationRequest" }) as any as S.Schema<GetOrganizationRequest>;
453
+
454
+ export interface OrganizationResponse {
455
+ /** Globally unique, user-friendly identifier. */
456
+ containerId: string;
457
+ /** Timestamp at which the organization was created. */
458
+ creationTime: string;
459
+ labels?: Labels;
460
+ lifecycleState: LifecycleState;
461
+ /** Organization name. */
462
+ name: string;
463
+ /** Globally unique, organization identifier. */
464
+ organizationId: string;
465
+ /** Timestamp at which the organization was last modified. */
466
+ updateTime: string;
467
+ }
468
+ export const OrganizationResponse = /*@__PURE__*/ S.suspend(() =>
469
+ S.Struct({
470
+ containerId: S.String,
471
+ creationTime: S.String,
472
+ labels: S.optional(Labels),
473
+ lifecycleState: LifecycleState,
474
+ name: S.String,
475
+ organizationId: S.String,
476
+ updateTime: S.String,
477
+ }),
478
+ ).annotate({ identifier: "OrganizationResponse" }) as any as S.Schema<OrganizationResponse>;
479
+
480
+ export interface GetProjectRequest {
481
+ /** Project identifier - containerId as well as UUID identifier is supported. */
482
+ id: string;
483
+ includeParents?: boolean;
484
+ }
485
+ export const GetProjectRequest = /*@__PURE__*/ S.suspend(() =>
486
+ S.Struct({
487
+ id: S.String.pipe(T.Label()),
488
+ includeParents: S.optional(S.Boolean.pipe(T.Query())),
489
+ }).pipe(
490
+ T.Http({
491
+ method: "GET",
492
+ uri: "/v2/projects/{id}",
493
+ code: 200,
494
+ baseUrl: "https://resource-manager.api.stackit.cloud",
495
+ }),
496
+ ),
497
+ ).annotate({ identifier: "GetProjectRequest" }) as any as S.Schema<GetProjectRequest>;
498
+
499
+ export interface GetProjectResponse {
500
+ /** Globally unique identifier. */
501
+ containerId: string;
502
+ /** Timestamp at which the project was created. */
503
+ creationTime: string;
504
+ labels?: Labels;
505
+ lifecycleState: LifecycleState;
506
+ /** Project name. */
507
+ name: string;
508
+ parent: Parent;
509
+ parents?: ParentList;
510
+ /** Globally unique identifier. */
511
+ projectId: string;
512
+ /** Timestamp at which the project was last modified. */
513
+ updateTime: string;
514
+ }
515
+ export const GetProjectResponse = /*@__PURE__*/ S.suspend(() =>
516
+ S.Struct({
517
+ containerId: S.String,
518
+ creationTime: S.String,
519
+ labels: S.optional(Labels),
520
+ lifecycleState: LifecycleState,
521
+ name: S.String,
522
+ parent: Parent,
523
+ parents: S.optional(ParentList),
524
+ projectId: S.String,
525
+ updateTime: S.String,
526
+ }),
527
+ ).annotate({ identifier: "GetProjectResponse" }) as any as S.Schema<GetProjectResponse>;
528
+
529
+ export type ListFoldersRequestContainerIdsList = Array<string>;
530
+ export const ListFoldersRequestContainerIdsList = /*@__PURE__*/ S.Array(
531
+ S.String,
532
+ ) as any as S.Schema<ListFoldersRequestContainerIdsList>;
533
+
534
+ export interface ListFoldersRequest {
535
+ /** Identifier of the parent resource container - containerId as well as UUID identifier is supported. */
536
+ containerParentId?: string;
537
+ /** List of container identifiers - containerId as well as UUID identifier is supported. */
538
+ containerIds?: ListFoldersRequestContainerIdsList;
539
+ /** E-Mail address of the user for whom the visible resource containers should be filtered. */
540
+ member?: string;
541
+ /** The maximum number of projects to return in the response. If not present, an appropriate default will be used. If maximum is exceeded, maximum is used. */
542
+ limit?: number;
543
+ /** The offset of the first item in the collection to return. */
544
+ offset?: number;
545
+ /** A timestamp to specify the beginning of the creationTime from which entries should be returned. If not given, defaults to the beginning of time. */
546
+ creation_time_start?: string;
547
+ }
548
+ export const ListFoldersRequest = /*@__PURE__*/ S.suspend(() =>
549
+ S.Struct({
550
+ containerParentId: S.optional(S.String.pipe(T.Query())),
551
+ containerIds: S.optional(ListFoldersRequestContainerIdsList.pipe(T.Query())),
552
+ member: S.optional(S.String.pipe(T.Query())),
553
+ limit: S.optional(S.Number.pipe(T.Query())),
554
+ offset: S.optional(S.Number.pipe(T.Query())),
555
+ creation_time_start: S.optional(S.String.pipe(T.Query("creation-time-start"))),
556
+ }).pipe(
557
+ T.Http({
558
+ method: "GET",
559
+ uri: "/v2/folders",
560
+ code: 200,
561
+ baseUrl: "https://resource-manager.api.stackit.cloud",
562
+ }),
563
+ ),
564
+ ).annotate({ identifier: "ListFoldersRequest" }) as any as S.Schema<ListFoldersRequest>;
565
+
566
+ export interface ListFoldersResponseItemsItem {
567
+ /** Globally unique folder identifier. */
568
+ containerId: string;
569
+ /** Timestamp at which the folder was created. */
570
+ creationTime: string;
571
+ /** Globally unique folder identifier. */
572
+ folderId: string;
573
+ labels?: Labels;
574
+ /** Name of the folder. */
575
+ name: string;
576
+ parent: Parent;
577
+ /** Timestamp at which the folder was created. */
578
+ updateTime: string;
579
+ }
580
+ export const ListFoldersResponseItemsItem = /*@__PURE__*/ S.suspend(() =>
581
+ S.Struct({
582
+ containerId: S.String,
583
+ creationTime: S.String,
584
+ folderId: S.String,
585
+ labels: S.optional(Labels),
586
+ name: S.String,
587
+ parent: Parent,
588
+ updateTime: S.String,
589
+ }),
590
+ ).annotate({
591
+ identifier: "ListFoldersResponseItemsItem",
592
+ }) as any as S.Schema<ListFoldersResponseItemsItem>;
593
+
594
+ export type ListFoldersResponseItemsList = Array<ListFoldersResponseItemsItem>;
595
+ export const ListFoldersResponseItemsList = /*@__PURE__*/ S.Array(
596
+ ListFoldersResponseItemsItem,
597
+ ) as any as S.Schema<ListFoldersResponseItemsList>;
598
+
599
+ export interface ListFoldersResponse {
600
+ items: ListFoldersResponseItemsList;
601
+ limit: number;
602
+ offset: number;
603
+ }
604
+ export const ListFoldersResponse = /*@__PURE__*/ S.suspend(() =>
605
+ S.Struct({
606
+ items: ListFoldersResponseItemsList,
607
+ limit: S.Number,
608
+ offset: S.Number,
609
+ }),
610
+ ).annotate({ identifier: "ListFoldersResponse" }) as any as S.Schema<ListFoldersResponse>;
611
+
612
+ export type ListOrganizationsRequestContainerIdsList = Array<string>;
613
+ export const ListOrganizationsRequestContainerIdsList = /*@__PURE__*/ S.Array(
614
+ S.String,
615
+ ) as any as S.Schema<ListOrganizationsRequestContainerIdsList>;
616
+
617
+ export interface ListOrganizationsRequest {
618
+ /** Organization identifiers - containerId as well as UUID identifier is supported. A combination of both is not allowed. */
619
+ containerIds?: ListOrganizationsRequestContainerIdsList;
620
+ /** E-Mail address of the user for whom the visible resource containers should be filtered. */
621
+ member?: string;
622
+ /** The maximum number of projects to return in the response. If not present, an appropriate default will be used. If maximum is exceeded, maximum is used. */
623
+ limit?: number;
624
+ /** The offset of the first item in the collection to return. */
625
+ offset?: number;
626
+ /** A timestamp to specify the beginning of the creationTime from which entries should be returned. If not given, defaults to the beginning of time. */
627
+ creation_time_start?: string;
628
+ }
629
+ export const ListOrganizationsRequest = /*@__PURE__*/ S.suspend(() =>
630
+ S.Struct({
631
+ containerIds: S.optional(ListOrganizationsRequestContainerIdsList.pipe(T.Query())),
632
+ member: S.optional(S.String.pipe(T.Query())),
633
+ limit: S.optional(S.Number.pipe(T.Query())),
634
+ offset: S.optional(S.Number.pipe(T.Query())),
635
+ creation_time_start: S.optional(S.String.pipe(T.Query("creation-time-start"))),
636
+ }).pipe(
637
+ T.Http({
638
+ method: "GET",
639
+ uri: "/v2/organizations",
640
+ code: 200,
641
+ baseUrl: "https://resource-manager.api.stackit.cloud",
642
+ }),
643
+ ),
644
+ ).annotate({ identifier: "ListOrganizationsRequest" }) as any as S.Schema<ListOrganizationsRequest>;
645
+
646
+ export interface ListOrganizationsResponseItemsItem {
647
+ /** Globally unique, user-friendly identifier. */
648
+ containerId: string;
649
+ /** Timestamp at which the organization was created. */
650
+ creationTime: string;
651
+ labels?: Labels;
652
+ lifecycleState: LifecycleState;
653
+ /** Name of the organization. */
654
+ name: string;
655
+ /** Globally unique, organization identifier. */
656
+ organizationId: string;
657
+ /** Timestamp at which the organization was last modified. */
658
+ updateTime: string;
659
+ }
660
+ export const ListOrganizationsResponseItemsItem = /*@__PURE__*/ S.suspend(() =>
661
+ S.Struct({
662
+ containerId: S.String,
663
+ creationTime: S.String,
664
+ labels: S.optional(Labels),
665
+ lifecycleState: LifecycleState,
666
+ name: S.String,
667
+ organizationId: S.String,
668
+ updateTime: S.String,
669
+ }),
670
+ ).annotate({
671
+ identifier: "ListOrganizationsResponseItemsItem",
672
+ }) as any as S.Schema<ListOrganizationsResponseItemsItem>;
673
+
674
+ export type ListOrganizationsResponseItemsList = Array<ListOrganizationsResponseItemsItem>;
675
+ export const ListOrganizationsResponseItemsList = /*@__PURE__*/ S.Array(
676
+ ListOrganizationsResponseItemsItem,
677
+ ) as any as S.Schema<ListOrganizationsResponseItemsList>;
678
+
679
+ export interface ListOrganizationsResponse {
680
+ items: ListOrganizationsResponseItemsList;
681
+ limit: number;
682
+ offset: number;
683
+ }
684
+ export const ListOrganizationsResponse = /*@__PURE__*/ S.suspend(() =>
685
+ S.Struct({
686
+ items: ListOrganizationsResponseItemsList,
687
+ limit: S.Number,
688
+ offset: S.Number,
689
+ }),
690
+ ).annotate({
691
+ identifier: "ListOrganizationsResponse",
692
+ }) as any as S.Schema<ListOrganizationsResponse>;
693
+
694
+ export type ListProjectsRequestContainerIdsList = Array<string>;
695
+ export const ListProjectsRequestContainerIdsList = /*@__PURE__*/ S.Array(
696
+ S.String,
697
+ ) as any as S.Schema<ListProjectsRequestContainerIdsList>;
698
+
699
+ export interface ListProjectsRequest {
700
+ /** Identifier of the parent resource container - containerId as well as UUID identifier is supported. */
701
+ containerParentId?: string;
702
+ /** List of container identifiers - containerId as well as UUID identifier is supported. */
703
+ containerIds?: ListProjectsRequestContainerIdsList;
704
+ /** E-Mail address of the user for whom the visible resource containers should be filtered. */
705
+ member?: string;
706
+ /** The offset of the first item in the collection to return. */
707
+ offset?: number;
708
+ /** The maximum number of projects to return in the response. If not present, an appropriate default will be used. If maximum is exceeded, maximum is used. */
709
+ limit?: number;
710
+ /** A timestamp to specify the beginning of the creationTime from which entries should be returned. If not given, defaults to the beginning of time. */
711
+ creation_time_start?: string;
712
+ }
713
+ export const ListProjectsRequest = /*@__PURE__*/ S.suspend(() =>
714
+ S.Struct({
715
+ containerParentId: S.optional(S.String.pipe(T.Query())),
716
+ containerIds: S.optional(ListProjectsRequestContainerIdsList.pipe(T.Query())),
717
+ member: S.optional(S.String.pipe(T.Query())),
718
+ offset: S.optional(S.Number.pipe(T.Query())),
719
+ limit: S.optional(S.Number.pipe(T.Query())),
720
+ creation_time_start: S.optional(S.String.pipe(T.Query("creation-time-start"))),
721
+ }).pipe(
722
+ T.Http({
723
+ method: "GET",
724
+ uri: "/v2/projects",
725
+ code: 200,
726
+ baseUrl: "https://resource-manager.api.stackit.cloud",
727
+ }),
728
+ ),
729
+ ).annotate({ identifier: "ListProjectsRequest" }) as any as S.Schema<ListProjectsRequest>;
730
+
731
+ export type ListProjectsResponseItemsList = Array<Project>;
732
+ export const ListProjectsResponseItemsList = /*@__PURE__*/ S.Array(
733
+ Project,
734
+ ) as any as S.Schema<ListProjectsResponseItemsList>;
735
+
736
+ export interface ListProjectsResponse {
737
+ items: ListProjectsResponseItemsList;
738
+ limit: number;
739
+ offset: number;
740
+ }
741
+ export const ListProjectsResponse = /*@__PURE__*/ S.suspend(() =>
742
+ S.Struct({
743
+ items: ListProjectsResponseItemsList,
744
+ limit: S.Number,
745
+ offset: S.Number,
746
+ }),
747
+ ).annotate({ identifier: "ListProjectsResponse" }) as any as S.Schema<ListProjectsResponse>;
748
+
749
+ /** Key-value string pairs attached to an existing resource container. Certain labels may be enforced via organizational policies. Setting an individual label's value to `null` removes/deletes that label from the resource. * **Key:** Must be between 1 and 63 characters long (excluding an optional domain prefix). Must start and end with an alphanumeric character `[a-zA-Z0-9]` and can contain alphanumerics, dashes (-), underscores (_), and dots (.). May include an optional domain prefix up to 250 characters (a lowercase DNS subdomain containing `[a-z0-9]`, `-`, and `.`) followed by a slash (/). Total maximum key length is 314 characters. * **Value:** Must be 63 characters or less. May be empty (""). If non-empty, must start and end with an alphanumeric character `[a-zA-Z0-9]` and can contain alphanumerics, dashes (-), underscores (_), and dots (.). > Note: Additional naming restrictions may apply depending on your specific organization.* */
750
+ export type UpdateLabels = { [key: string]: string | null | undefined };
751
+ export const UpdateLabels = /*@__PURE__*/ S.Record(
752
+ S.String,
753
+ S.NullOr(S.String),
754
+ ) as any as S.Schema<UpdateLabels>;
755
+
756
+ export interface PartialUpdateFolderRequest {
757
+ /** Folder identifier - containerId as well as UUID identifier is supported. */
758
+ containerId: string;
759
+ /** New parent identifier for the resource container - containerId as well as UUID identifier is supported. */
760
+ containerParentId?: string;
761
+ labels?: UpdateLabels;
762
+ /** New name for the resource container matching the regex `^[a-zA-ZäüöÄÜÖ0-9]( ?[a-zA-ZäüöÄÜÖß0-9_+&-]){0,39}$`. */
763
+ name?: string;
764
+ }
765
+ export const PartialUpdateFolderRequest = /*@__PURE__*/ S.suspend(() =>
766
+ S.Struct({
767
+ containerId: S.String.pipe(T.Label()),
768
+ containerParentId: S.optional(S.String),
769
+ labels: S.optional(UpdateLabels),
770
+ name: S.optional(S.String),
771
+ }).pipe(
772
+ T.Http({
773
+ method: "PATCH",
774
+ uri: "/v2/folders/{containerId}",
775
+ code: 200,
776
+ baseUrl: "https://resource-manager.api.stackit.cloud",
777
+ }),
778
+ ),
779
+ ).annotate({
780
+ identifier: "PartialUpdateFolderRequest",
781
+ }) as any as S.Schema<PartialUpdateFolderRequest>;
782
+
783
+ export interface PartialUpdateOrganizationRequest {
784
+ /** Organization identifier - containerId as well as UUID identifier is supported. */
785
+ id: string;
786
+ labels?: UpdateLabels;
787
+ /** The new name of the organization matching the regex `^[a-zA-ZäüöÄÜÖ0-9]( ?[a-zA-ZäüöÄÜÖß0-9_+&-]){0,39}$`. */
788
+ name?: string;
789
+ }
790
+ export const PartialUpdateOrganizationRequest = /*@__PURE__*/ S.suspend(() =>
791
+ S.Struct({
792
+ id: S.String.pipe(T.Label()),
793
+ labels: S.optional(UpdateLabels),
794
+ name: S.optional(S.String),
795
+ }).pipe(
796
+ T.Http({
797
+ method: "PATCH",
798
+ uri: "/v2/organizations/{id}",
799
+ code: 200,
800
+ baseUrl: "https://resource-manager.api.stackit.cloud",
801
+ }),
802
+ ),
803
+ ).annotate({
804
+ identifier: "PartialUpdateOrganizationRequest",
805
+ }) as any as S.Schema<PartialUpdateOrganizationRequest>;
806
+
807
+ export interface PartialUpdateProjectRequest {
808
+ /** Project identifier - containerId as well as UUID identifier is supported. */
809
+ id: string;
810
+ /** New parent identifier for the resource container - containerId as well as UUID identifier is supported. */
811
+ containerParentId?: string;
812
+ labels?: UpdateLabels;
813
+ /** New name for the resource container matching the regex `^[a-zA-ZäüöÄÜÖ0-9]( ?[a-zA-ZäüöÄÜÖß0-9_+&-]){0,39}$`. */
814
+ name?: string;
815
+ }
816
+ export const PartialUpdateProjectRequest = /*@__PURE__*/ S.suspend(() =>
817
+ S.Struct({
818
+ id: S.String.pipe(T.Label()),
819
+ containerParentId: S.optional(S.String),
820
+ labels: S.optional(UpdateLabels),
821
+ name: S.optional(S.String),
822
+ }).pipe(
823
+ T.Http({
824
+ method: "PATCH",
825
+ uri: "/v2/projects/{id}",
826
+ code: 200,
827
+ baseUrl: "https://resource-manager.api.stackit.cloud",
828
+ }),
829
+ ),
830
+ ).annotate({
831
+ identifier: "PartialUpdateProjectRequest",
832
+ }) as any as S.Schema<PartialUpdateProjectRequest>;
833
+
834
+ export type CreateFolderError = BadRequest | Forbidden | Conflict | StackitOpError;
835
+ /** Create Folder Creates a new folder within a parent organization or folder. Authorization & Permissions: - Evaluated on Target Parent Container: resource-manager.folder.create (required permission on the target parent organization or folder to create a folder). */
836
+ export const createFolder: API.OperationMethod<
837
+ CreateFolderRequest,
838
+ FolderResponse,
839
+ CreateFolderError,
840
+ StackitOpContext
841
+ > = /*@__PURE__*/ API.make(() => ({
842
+ input: CreateFolderRequest,
843
+ output: FolderResponse,
844
+ errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
845
+ protocol: StackitProtocol,
846
+ retry: Retry.Retry,
847
+ }));
848
+
849
+ export type CreateProjectError = BadRequest | Forbidden | Conflict | StackitOpError;
850
+ /** Create Project Creates a new project within a parent container. - Creation request returns synchronously, while underlying resource provisioning runs asynchronously. - Initial lifecycle state is CREATING until provisioning completes. Authorization & Permissions: - Evaluated on Target Parent Container: resource-manager.project.create (required permission on the target parent organization or folder to create a project). */
851
+ export const createProject: API.OperationMethod<
852
+ CreateProjectRequest,
853
+ Project,
854
+ CreateProjectError,
855
+ StackitOpContext
856
+ > = /*@__PURE__*/ API.make(() => ({
857
+ input: CreateProjectRequest,
858
+ output: Project,
859
+ errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
860
+ protocol: StackitProtocol,
861
+ retry: Retry.Retry,
862
+ }));
863
+
864
+ export type DeleteFolderError = NotFound | Conflict | StackitOpError;
865
+ /** Delete Folder Delete a folder and its metadata. - Folder must not contain active child containers unless force deletion is enabled without attached projects. Authorization & Permissions: - Evaluated on Target Folder: resource-manager.folder.delete (required permission on the target folder to delete it). */
866
+ export const deleteFolder: API.OperationMethod<
867
+ DeleteFolderRequest,
868
+ DeleteFolderResponse,
869
+ DeleteFolderError,
870
+ StackitOpContext
871
+ > = /*@__PURE__*/ API.make(() => ({
872
+ input: DeleteFolderRequest,
873
+ output: DeleteFolderResponse,
874
+ errors: [NotFound, Conflict, UnknownStackitError],
875
+ protocol: StackitProtocol,
876
+ retry: Retry.Retry,
877
+ }));
878
+
879
+ export type DeleteFolderLabelsError = Conflict | StackitOpError;
880
+ /** Delete Folder Labels Deletes folder labels by specified keys, or removes all labels if no key is provided. Authorization & Permissions: - Evaluated on Target Folder: resource-manager.folder.edit (required permission on the target folder to delete its labels). */
881
+ export const deleteFolderLabels: API.OperationMethod<
882
+ DeleteFolderLabelsRequest,
883
+ DeleteFolderLabelsResponse,
884
+ DeleteFolderLabelsError,
885
+ StackitOpContext
886
+ > = /*@__PURE__*/ API.make(() => ({
887
+ input: DeleteFolderLabelsRequest,
888
+ output: DeleteFolderLabelsResponse,
889
+ errors: [Conflict, UnknownStackitError],
890
+ protocol: StackitProtocol,
891
+ retry: Retry.Retry,
892
+ }));
893
+
894
+ export type DeleteOrganizationLabelsError = Conflict | StackitOpError;
895
+ /** Delete Organization Labels Deletes organization labels by specified keys, or removes all labels if no key is provided. Authorization & Permissions: - Evaluated on Target Organization: resource-manager.organization.edit (required permission on the organization to delete labels). */
896
+ export const deleteOrganizationLabels: API.OperationMethod<
897
+ DeleteOrganizationLabelsRequest,
898
+ DeleteOrganizationLabelsResponse,
899
+ DeleteOrganizationLabelsError,
900
+ StackitOpContext
901
+ > = /*@__PURE__*/ API.make(() => ({
902
+ input: DeleteOrganizationLabelsRequest,
903
+ output: DeleteOrganizationLabelsResponse,
904
+ errors: [Conflict, UnknownStackitError],
905
+ protocol: StackitProtocol,
906
+ retry: Retry.Retry,
907
+ }));
908
+
909
+ export type DeleteProjectError = Conflict | StackitOpError;
910
+ /** Delete Project Triggers the deletion of a project. - Request returns synchronously, while deletion process runs asynchronously. - Initial lifecycle state is DELETING until workflow completes. Authorization & Permissions: - Evaluated on Target Project: resource-manager.project.delete (required permission on the project to delete it). */
911
+ export const deleteProject: API.OperationMethod<
912
+ DeleteProjectRequest,
913
+ DeleteProjectResponse,
914
+ DeleteProjectError,
915
+ StackitOpContext
916
+ > = /*@__PURE__*/ API.make(() => ({
917
+ input: DeleteProjectRequest,
918
+ output: DeleteProjectResponse,
919
+ errors: [Conflict, UnknownStackitError],
920
+ protocol: StackitProtocol,
921
+ retry: Retry.Retry,
922
+ }));
923
+
924
+ export type DeleteProjectLabelsError = Conflict | StackitOpError;
925
+ /** Delete Project Labels Deletes project labels by specified keys, or removes all labels if no key is provided. Authorization & Permissions: - Evaluated on Target Project: resource-manager.project.edit (required permission on the project to delete its labels). */
926
+ export const deleteProjectLabels: API.OperationMethod<
927
+ DeleteProjectLabelsRequest,
928
+ DeleteProjectLabelsResponse,
929
+ DeleteProjectLabelsError,
930
+ StackitOpContext
931
+ > = /*@__PURE__*/ API.make(() => ({
932
+ input: DeleteProjectLabelsRequest,
933
+ output: DeleteProjectLabelsResponse,
934
+ errors: [Conflict, UnknownStackitError],
935
+ protocol: StackitProtocol,
936
+ retry: Retry.Retry,
937
+ }));
938
+
939
+ export type GetFolderDetailsError = Forbidden | NotFound | StackitOpError;
940
+ /** Get Folder Details Returns metadata for a specific folder. Authorization & Permissions: - Evaluated on Target Folder: resource-manager.folder.get (required primary permission to retrieve folder details). - Evaluated on Parent Containers: resource-manager.organization.get and resource-manager.folder.get implicitly to resolve parent hierarchy details. */
941
+ export const getFolderDetails: API.OperationMethod<
942
+ GetFolderDetailsRequest,
943
+ GetFolderDetailsResponse,
944
+ GetFolderDetailsError,
945
+ StackitOpContext
946
+ > = /*@__PURE__*/ API.make(() => ({
947
+ input: GetFolderDetailsRequest,
948
+ output: GetFolderDetailsResponse,
949
+ errors: [Forbidden, NotFound, UnknownStackitError],
950
+ protocol: StackitProtocol,
951
+ retry: Retry.Retry,
952
+ }));
953
+
954
+ export type GetOrganizationError = NotFound | StackitOpError;
955
+ /** Get Organization Details Returns metadata for a specific organization. Authorization & Permissions: - Evaluated on Target Organization: resource-manager.organization.get (required permission on the organization to view its details). */
956
+ export const getOrganization: API.OperationMethod<
957
+ GetOrganizationRequest,
958
+ OrganizationResponse,
959
+ GetOrganizationError,
960
+ StackitOpContext
961
+ > = /*@__PURE__*/ API.make(() => ({
962
+ input: GetOrganizationRequest,
963
+ output: OrganizationResponse,
964
+ errors: [NotFound, UnknownStackitError],
965
+ protocol: StackitProtocol,
966
+ retry: Retry.Retry,
967
+ }));
968
+
969
+ export type GetProjectError = Forbidden | NotFound | StackitOpError;
970
+ /** Get Project Details Returns the project and its metadata. Authorization & Permissions: - Evaluated on Target Project: resource-manager.project.get (required primary permission to view project details). - Evaluated on Parent Containers: resource-manager.organization.get and resource-manager.folder.get on parent organizations/folders implicitly to resolve and include parent metadata in the response hierarchy. */
971
+ export const getProject: API.OperationMethod<
972
+ GetProjectRequest,
973
+ GetProjectResponse,
974
+ GetProjectError,
975
+ StackitOpContext
976
+ > = /*@__PURE__*/ API.make(() => ({
977
+ input: GetProjectRequest,
978
+ output: GetProjectResponse,
979
+ errors: [Forbidden, NotFound, UnknownStackitError],
980
+ protocol: StackitProtocol,
981
+ retry: Retry.Retry,
982
+ }));
983
+
984
+ export type ListFoldersError = BadRequest | Forbidden | Conflict | StackitOpError;
985
+ /** Get All Folders Returns all folders and their metadata that: - Are children of the specific containerParentId - Match the given containerIds - User is member of <br /> Filter: - Either containerParentId OR containerIds OR member must be passed - If containerId and containerParentId are given, both are used for filtering - containers must point to the same parent - If member and containerParentId are given, both are used for filtering - If member is given, containers must not point to the same container parent Authorization & Permissions: - When filtering by member: resource-manager.folder.direct.get is evaluated on target folders for the member; if caller differs from target member, system-level resource-manager.folder.get is required. - When filtering by containerParentId: resource-manager.folder.list is evaluated on the parent container. - When filtering by containerIds: resource-manager.folder.get is evaluated on the parent container of requested folders. */
986
+ export const listFolders: API.OperationMethod<
987
+ ListFoldersRequest,
988
+ ListFoldersResponse,
989
+ ListFoldersError,
990
+ StackitOpContext
991
+ > = /*@__PURE__*/ API.make(() => ({
992
+ input: ListFoldersRequest,
993
+ output: ListFoldersResponse,
994
+ errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
995
+ protocol: StackitProtocol,
996
+ retry: Retry.Retry,
997
+ }));
998
+
999
+ export type ListOrganizationsError = BadRequest | Forbidden | StackitOpError;
1000
+ /** Get all organizations of member Returns all organizations and their metadata accessible to the caller. - Filterable by containerIds or member. Authorization & Permissions: - Evaluated on Target Organizations: resource-manager.organization.list and/or (depending if containerIDs was used in the request) resource-manager.organization.get to filter and list accessible organizations. */
1001
+ export const listOrganizations: API.OperationMethod<
1002
+ ListOrganizationsRequest,
1003
+ ListOrganizationsResponse,
1004
+ ListOrganizationsError,
1005
+ StackitOpContext
1006
+ > = /*@__PURE__*/ API.make(() => ({
1007
+ input: ListOrganizationsRequest,
1008
+ output: ListOrganizationsResponse,
1009
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1010
+ protocol: StackitProtocol,
1011
+ retry: Retry.Retry,
1012
+ }));
1013
+
1014
+ export type ListProjectsError = BadRequest | Forbidden | StackitOpError;
1015
+ /** Get All Projects of a member. Returns all projects and their metadata that: - Are children of the specific containerParentId - Match the given containerIds - User is member of Filter: - Either containerParentId OR containerIds OR member must be passed - If containerId and containerParentId are given, both are used for filtering - containers must point to the same parent - If member and containerParentId are given, both are used for filtering - If member is given, containers must not point to the same container parent Authorization & Permissions: - Evaluated on Target Projects: resource-manager.project.get, resource-manager.project.list, or resource-manager.project.direct.get to filter and return accessible projects. */
1016
+ export const listProjects: API.OperationMethod<
1017
+ ListProjectsRequest,
1018
+ ListProjectsResponse,
1019
+ ListProjectsError,
1020
+ StackitOpContext
1021
+ > = /*@__PURE__*/ API.make(() => ({
1022
+ input: ListProjectsRequest,
1023
+ output: ListProjectsResponse,
1024
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1025
+ protocol: StackitProtocol,
1026
+ retry: Retry.Retry,
1027
+ }));
1028
+
1029
+ export type PartialUpdateFolderError = Forbidden | NotFound | Conflict | StackitOpError;
1030
+ /** Update Folder Update the folder and its metadata (name, labels, parent container). Authorization & Permissions: - Evaluated on Target Folder: resource-manager.folder.edit (required permission on the target folder to modify its details, labels, or parent). */
1031
+ export const partialUpdateFolder: API.OperationMethod<
1032
+ PartialUpdateFolderRequest,
1033
+ FolderResponse,
1034
+ PartialUpdateFolderError,
1035
+ StackitOpContext
1036
+ > = /*@__PURE__*/ API.make(() => ({
1037
+ input: PartialUpdateFolderRequest,
1038
+ output: FolderResponse,
1039
+ errors: [Forbidden, NotFound, Conflict, UnknownStackitError],
1040
+ protocol: StackitProtocol,
1041
+ retry: Retry.Retry,
1042
+ }));
1043
+
1044
+ export type PartialUpdateOrganizationError = NotFound | Conflict | StackitOpError;
1045
+ /** Update Organization Updates organization metadata (name, labels). Authorization & Permissions: - Evaluated on Target Organization: resource-manager.organization.edit (required permission on the organization to update metadata and labels). */
1046
+ export const partialUpdateOrganization: API.OperationMethod<
1047
+ PartialUpdateOrganizationRequest,
1048
+ OrganizationResponse,
1049
+ PartialUpdateOrganizationError,
1050
+ StackitOpContext
1051
+ > = /*@__PURE__*/ API.make(() => ({
1052
+ input: PartialUpdateOrganizationRequest,
1053
+ output: OrganizationResponse,
1054
+ errors: [NotFound, Conflict, UnknownStackitError],
1055
+ protocol: StackitProtocol,
1056
+ retry: Retry.Retry,
1057
+ }));
1058
+
1059
+ export type PartialUpdateProjectError = Forbidden | NotFound | Conflict | StackitOpError;
1060
+ /** Update Project Updates project metadata (name, labels, or parent hierarchy). Authorization & Permissions: - Evaluated on Target Project: resource-manager.project.edit (required permission on the project to modify its details, labels, or parent). */
1061
+ export const partialUpdateProject: API.OperationMethod<
1062
+ PartialUpdateProjectRequest,
1063
+ Project,
1064
+ PartialUpdateProjectError,
1065
+ StackitOpContext
1066
+ > = /*@__PURE__*/ API.make(() => ({
1067
+ input: PartialUpdateProjectRequest,
1068
+ output: Project,
1069
+ errors: [Forbidden, NotFound, Conflict, UnknownStackitError],
1070
+ protocol: StackitProtocol,
1071
+ retry: Retry.Retry,
1072
+ }));