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

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 +48 -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 +148 -0
  22. package/lib/protocol.js.map +1 -0
  23. package/lib/response-validation.test.d.ts +4 -0
  24. package/lib/response-validation.test.d.ts.map +1 -0
  25. package/lib/response-validation.test.js +31 -0
  26. package/lib/response-validation.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 +562 -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 +545 -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 +353 -0
  42. package/lib/services/authorization.js.map +1 -0
  43. package/lib/services/automation.d.ts +358 -0
  44. package/lib/services/automation.d.ts.map +1 -0
  45. package/lib/services/automation.js +426 -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 +992 -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 +197 -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 +188 -0
  58. package/lib/services/cost.js.map +1 -0
  59. package/lib/services/dns.d.ts +875 -0
  60. package/lib/services/dns.d.ts.map +1 -0
  61. package/lib/services/dns.js +854 -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 +339 -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 +375 -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 +423 -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 +552 -0
  78. package/lib/services/git.js.map +1 -0
  79. package/lib/services/iaas.d.ts +2965 -0
  80. package/lib/services/iaas.d.ts.map +1 -0
  81. package/lib/services/iaas.js +3768 -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 +513 -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 +703 -0
  94. package/lib/services/kms.js.map +1 -0
  95. package/lib/services/lb_ip_lists.d.ts +162 -0
  96. package/lib/services/lb_ip_lists.d.ts.map +1 -0
  97. package/lib/services/lb_ip_lists.js +173 -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 +542 -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 +636 -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 +498 -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 +611 -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 +356 -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 +319 -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 +889 -0
  126. package/lib/services/mongodb_flex.js.map +1 -0
  127. package/lib/services/object_storage.d.ts +446 -0
  128. package/lib/services/object_storage.d.ts.map +1 -0
  129. package/lib/services/object_storage.js +577 -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 +3407 -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 +623 -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 +789 -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 +1018 -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 +614 -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 +636 -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 +221 -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 +503 -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 +203 -0
  166. package/lib/services/run_command.js.map +1 -0
  167. package/lib/services/sca.d.ts +541 -0
  168. package/lib/services/sca.d.ts.map +1 -0
  169. package/lib/services/sca.js +478 -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 +718 -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 +659 -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 +474 -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 +364 -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 +523 -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 +159 -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 +845 -0
  198. package/lib/services/sfs.js.map +1 -0
  199. package/lib/services/ske.d.ts +536 -0
  200. package/lib/services/ske.d.ts.map +1 -0
  201. package/lib/services/ske.js +598 -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 +1087 -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 +393 -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 +550 -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 +523 -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 +301 -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 +627 -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 +1013 -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 +556 -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 +83 -3
  240. package/src/credentials.ts +90 -0
  241. package/src/errors.ts +50 -0
  242. package/src/index.ts +34 -0
  243. package/src/pagination.ts +73 -0
  244. package/src/protocol.ts +243 -0
  245. package/src/response-validation.test.ts +45 -0
  246. package/src/retry.ts +53 -0
  247. package/src/services/alb.ts +1409 -0
  248. package/src/services/alb_waf.ts +1347 -0
  249. package/src/services/authorization.ts +740 -0
  250. package/src/services/automation.ts +966 -0
  251. package/src/services/cdn.ts +2736 -0
  252. package/src/services/certificates.ts +450 -0
  253. package/src/services/cost.ts +484 -0
  254. package/src/services/dns.ts +2271 -0
  255. package/src/services/dremio.ts +803 -0
  256. package/src/services/edge.ts +839 -0
  257. package/src/services/functions.ts +1010 -0
  258. package/src/services/git.ts +1275 -0
  259. package/src/services/iaas.ts +8670 -0
  260. package/src/services/index.ts +51 -0
  261. package/src/services/intake.ts +1233 -0
  262. package/src/services/kms.ts +1638 -0
  263. package/src/services/lb_ip_lists.ts +377 -0
  264. package/src/services/load_balancer.ts +1342 -0
  265. package/src/services/logme.ts +1379 -0
  266. package/src/services/logs.ts +1150 -0
  267. package/src/services/mariadb.ts +1293 -0
  268. package/src/services/model_experiments.ts +797 -0
  269. package/src/services/model_serving.ts +697 -0
  270. package/src/services/mongodb_flex.ts +2078 -0
  271. package/src/services/object_storage.ts +1248 -0
  272. package/src/services/observability.ts +7856 -0
  273. package/src/services/opensearch.ts +1354 -0
  274. package/src/services/pim.ts +2090 -0
  275. package/src/services/postgres_flex.ts +2326 -0
  276. package/src/services/pubsub.ts +1336 -0
  277. package/src/services/rabbitmq.ts +1402 -0
  278. package/src/services/registry.ts +494 -0
  279. package/src/services/resource_manager.ts +1155 -0
  280. package/src/services/run_command.ts +441 -0
  281. package/src/services/sca.ts +1222 -0
  282. package/src/services/scf.ts +1537 -0
  283. package/src/services/secrets_manager.ts +1399 -0
  284. package/src/services/server_backup.ts +1032 -0
  285. package/src/services/server_update.ts +767 -0
  286. package/src/services/service_account.ts +1208 -0
  287. package/src/services/service_enablement.ts +359 -0
  288. package/src/services/sfs.ts +1913 -0
  289. package/src/services/ske.ts +1408 -0
  290. package/src/services/sqlserverflex.ts +2543 -0
  291. package/src/services/stackit_marketplace.ts +853 -0
  292. package/src/services/telemetry_link.ts +1245 -0
  293. package/src/services/telemetry_router.ts +1205 -0
  294. package/src/services/ufw.ts +704 -0
  295. package/src/services/valkey.ts +1357 -0
  296. package/src/services/vpn.ts +2554 -0
  297. package/src/services/workflows.ts +1361 -0
  298. package/src/traits.ts +65 -0
@@ -0,0 +1,2090 @@
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-stackit). Do not edit.
2
+ import * as S from "@distilled.cloud/core/schema";
3
+ import * as API from "@distilled.cloud/core/api";
4
+ import * as C from "@distilled.cloud/core/category";
5
+ import * as T from "../traits.ts";
6
+ import {
7
+ StackitProtocol,
8
+ type StackitOpError,
9
+ type StackitOpContext,
10
+ } from "../protocol.ts";
11
+ import { UnknownStackitError } from "../errors.ts";
12
+ import * as Retry from "../retry.ts";
13
+
14
+ export type { StackitOpError, StackitOpContext };
15
+
16
+ export class BadRequest
17
+ extends /*@__PURE__*/ T.applyErrorMatchers(
18
+ /*@__PURE__*/ S.TaggedError<BadRequest>()("BadRequest", {
19
+ code: S.Number,
20
+ message: S.String,
21
+ }).pipe(C.withBadRequestError),
22
+ [{ status: 400 }],
23
+ ) {}
24
+
25
+ export class Forbidden
26
+ extends /*@__PURE__*/ T.applyErrorMatchers(
27
+ /*@__PURE__*/ S.TaggedError<Forbidden>()("Forbidden", {
28
+ code: S.Number,
29
+ message: S.String,
30
+ }).pipe(C.withAuthError),
31
+ [{ status: 403 }],
32
+ ) {}
33
+
34
+ export class NotFound
35
+ extends /*@__PURE__*/ T.applyErrorMatchers(
36
+ /*@__PURE__*/ S.TaggedError<NotFound>()("NotFound", {
37
+ code: S.Number,
38
+ message: S.String,
39
+ }).pipe(C.withBadRequestError),
40
+ [{ status: 404 }],
41
+ ) {}
42
+
43
+ export type GetCategoryRequestLanguage = "en" | "de";
44
+ export const GetCategoryRequestLanguage = /*@__PURE__*/ S.String;
45
+
46
+ export interface GetCategoryRequest {
47
+ /** The unique identifier for a category. */
48
+ categoryId: string;
49
+ /** The language to retrieve the data in, available for en and de */
50
+ language?: GetCategoryRequestLanguage | (string & {});
51
+ }
52
+ export const GetCategoryRequest = /*@__PURE__*/ S.suspend(() =>
53
+ S.Struct({
54
+ categoryId: S.String.pipe(T.Label()),
55
+ language: S.optional(GetCategoryRequestLanguage.pipe(T.Query())),
56
+ }).pipe(
57
+ T.Http({
58
+ method: "GET",
59
+ uri: "/v2/categories/{categoryId}",
60
+ code: 200,
61
+ baseUrl: "https://pim.api.stackit.cloud",
62
+ }),
63
+ ),
64
+ ).annotate({
65
+ identifier: "GetCategoryRequest",
66
+ }) as any as S.Schema<GetCategoryRequest>;
67
+
68
+ export interface PublicCategory {
69
+ /** Description of the category */
70
+ description?: string;
71
+ /** The unique identifier for the category, which is object id from the DB */
72
+ id?: string | null;
73
+ /** URI of the category image */
74
+ image?: string;
75
+ /** Language of the category */
76
+ language?: string;
77
+ /** Category name */
78
+ name?: string;
79
+ /** Date when the current version was approved and became valid in PIM */
80
+ validStart?: string;
81
+ /** Number of the revision from PIM */
82
+ version?: string;
83
+ }
84
+ export const PublicCategory = /*@__PURE__*/ S.suspend(() =>
85
+ S.Struct({
86
+ description: S.optional(S.String),
87
+ id: S.optional(S.NullOr(S.String)),
88
+ image: S.optional(S.String),
89
+ language: S.optional(S.String),
90
+ name: S.optional(S.String),
91
+ validStart: S.optional(S.String),
92
+ version: S.optional(S.String),
93
+ }),
94
+ ).annotate({ identifier: "PublicCategory" }) as any as S.Schema<PublicCategory>;
95
+
96
+ export type GetProductRequestLanguage = "en" | "de";
97
+ export const GetProductRequestLanguage = /*@__PURE__*/ S.String;
98
+
99
+ export interface GetProductRequest {
100
+ /** The unique identifier for a product. */
101
+ productId: string;
102
+ /** The language to retrieve the data in, available for en and de */
103
+ language?: GetProductRequestLanguage | (string & {});
104
+ }
105
+ export const GetProductRequest = /*@__PURE__*/ S.suspend(() =>
106
+ S.Struct({
107
+ productId: S.String.pipe(T.Label()),
108
+ language: S.optional(GetProductRequestLanguage.pipe(T.Query())),
109
+ }).pipe(
110
+ T.Http({
111
+ method: "GET",
112
+ uri: "/v2/products/{productId}",
113
+ code: 200,
114
+ baseUrl: "https://pim.api.stackit.cloud",
115
+ }),
116
+ ),
117
+ ).annotate({
118
+ identifier: "GetProductRequest",
119
+ }) as any as S.Schema<GetProductRequest>;
120
+
121
+ /** Api identifier */
122
+ export type PublicProductApiIdentifierList = Array<string>;
123
+ export const PublicProductApiIdentifierList = /*@__PURE__*/ S.Array(
124
+ S.String,
125
+ ) as any as S.Schema<PublicProductApiIdentifierList>;
126
+
127
+ export interface PublicProduct {
128
+ /** Api identifier */
129
+ apiIdentifier?: PublicProductApiIdentifierList;
130
+ /** The unique identifier for the category, which is object id from the DB */
131
+ categoryId?: string | null;
132
+ /** Generic categorization to structure the customer's invoice transparently (e.g. `Compute Engine`, `Database`, `Storage`) */
133
+ categoryName?: string | null;
134
+ /** Description of the product */
135
+ description?: string;
136
+ /** Unique identifier of the product, which is object id from the DB */
137
+ id?: string | null;
138
+ /** URI of the category image */
139
+ image?: string;
140
+ /** Language of the product */
141
+ language?: string;
142
+ /** Extended name of the product */
143
+ longName?: string;
144
+ /** An abbreviated name of the product */
145
+ shortName?: string;
146
+ /** Date when the current version was approved and became valid in PIM */
147
+ validStart?: string;
148
+ /** Number of the revision from PIM */
149
+ version?: string;
150
+ }
151
+ export const PublicProduct = /*@__PURE__*/ S.suspend(() =>
152
+ S.Struct({
153
+ apiIdentifier: S.optional(PublicProductApiIdentifierList),
154
+ categoryId: S.optional(S.NullOr(S.String)),
155
+ categoryName: S.optional(S.NullOr(S.String)),
156
+ description: S.optional(S.String),
157
+ id: S.optional(S.NullOr(S.String)),
158
+ image: S.optional(S.String),
159
+ language: S.optional(S.String),
160
+ longName: S.optional(S.String),
161
+ shortName: S.optional(S.String),
162
+ validStart: S.optional(S.String),
163
+ version: S.optional(S.String),
164
+ }),
165
+ ).annotate({ identifier: "PublicProduct" }) as any as S.Schema<PublicProduct>;
166
+
167
+ export type GetProductMarketingDataRequestLanguage = "en" | "de";
168
+ export const GetProductMarketingDataRequestLanguage = /*@__PURE__*/ S.String;
169
+
170
+ export interface GetProductMarketingDataRequest {
171
+ /** The unique identifier for a product. */
172
+ productId: string;
173
+ /** The language to retrieve the data in, available for en and de */
174
+ language?: GetProductMarketingDataRequestLanguage | (string & {});
175
+ }
176
+ export const GetProductMarketingDataRequest = /*@__PURE__*/ S.suspend(() =>
177
+ S.Struct({
178
+ productId: S.String.pipe(T.Label()),
179
+ language: S.optional(
180
+ GetProductMarketingDataRequestLanguage.pipe(T.Query()),
181
+ ),
182
+ }).pipe(
183
+ T.Http({
184
+ method: "GET",
185
+ uri: "/v2/products/{productId}/marketing",
186
+ code: 200,
187
+ baseUrl: "https://pim.api.stackit.cloud",
188
+ }),
189
+ ),
190
+ ).annotate({
191
+ identifier: "GetProductMarketingDataRequest",
192
+ }) as any as S.Schema<GetProductMarketingDataRequest>;
193
+
194
+ export interface MarketingAdvantage {
195
+ /** Name of the advantage */
196
+ advantage?: string;
197
+ /** Description of the advantage */
198
+ position?: number;
199
+ }
200
+ export const MarketingAdvantage = /*@__PURE__*/ S.suspend(() =>
201
+ S.Struct({
202
+ advantage: S.optional(S.String),
203
+ position: S.optional(S.Number),
204
+ }),
205
+ ).annotate({
206
+ identifier: "MarketingAdvantage",
207
+ }) as any as S.Schema<MarketingAdvantage>;
208
+
209
+ /** List of advantages of the product */
210
+ export type PublicMarketingDataAdvantagesList = Array<MarketingAdvantage>;
211
+ export const PublicMarketingDataAdvantagesList = /*@__PURE__*/ S.Array(
212
+ MarketingAdvantage,
213
+ ) as any as S.Schema<PublicMarketingDataAdvantagesList>;
214
+
215
+ export interface MarketingApplication {
216
+ /** Description of the application */
217
+ application?: string;
218
+ /** Title of the application */
219
+ applicationTitle?: string;
220
+ /** Position of the application */
221
+ position?: number;
222
+ }
223
+ export const MarketingApplication = /*@__PURE__*/ S.suspend(() =>
224
+ S.Struct({
225
+ application: S.optional(S.String),
226
+ applicationTitle: S.optional(S.String),
227
+ position: S.optional(S.Number),
228
+ }),
229
+ ).annotate({
230
+ identifier: "MarketingApplication",
231
+ }) as any as S.Schema<MarketingApplication>;
232
+
233
+ /** List of applications provided by the product */
234
+ export type PublicMarketingDataApplicationsList = Array<MarketingApplication>;
235
+ export const PublicMarketingDataApplicationsList = /*@__PURE__*/ S.Array(
236
+ MarketingApplication,
237
+ ) as any as S.Schema<PublicMarketingDataApplicationsList>;
238
+
239
+ export interface MarketingFunction {
240
+ /** Name of the function */
241
+ function?: string;
242
+ /** Position of the function */
243
+ position?: number;
244
+ }
245
+ export const MarketingFunction = /*@__PURE__*/ S.suspend(() =>
246
+ S.Struct({
247
+ function: S.optional(S.String),
248
+ position: S.optional(S.Number),
249
+ }),
250
+ ).annotate({
251
+ identifier: "MarketingFunction",
252
+ }) as any as S.Schema<MarketingFunction>;
253
+
254
+ /** List of functions provided by the product */
255
+ export type PublicMarketingDataFunctionsList = Array<MarketingFunction>;
256
+ export const PublicMarketingDataFunctionsList = /*@__PURE__*/ S.Array(
257
+ MarketingFunction,
258
+ ) as any as S.Schema<PublicMarketingDataFunctionsList>;
259
+
260
+ export interface PublicMarketingData {
261
+ /** List of advantages of the product */
262
+ advantages?: PublicMarketingDataAdvantagesList;
263
+ /** List of applications provided by the product */
264
+ applications?: PublicMarketingDataApplicationsList;
265
+ /** List of functions provided by the product */
266
+ functions?: PublicMarketingDataFunctionsList;
267
+ /** Short description of what the product delivers */
268
+ headline?: string;
269
+ /** Unique identifier of the marketing product, which is object id from the DB */
270
+ id?: string | null;
271
+ /** Basic information of the product */
272
+ introductoryText?: string;
273
+ /** Language of the marketing data */
274
+ language?: string;
275
+ /** Extended name of the product */
276
+ longName?: string;
277
+ /** An abbreviated name of the product */
278
+ shortName?: string;
279
+ /** Internal ID of the product in PIM */
280
+ stId?: string;
281
+ /** Date when the current version was approved and became valid in PIM */
282
+ validStart?: string;
283
+ /** Number of the revision from PIM */
284
+ version?: string;
285
+ }
286
+ export const PublicMarketingData = /*@__PURE__*/ S.suspend(() =>
287
+ S.Struct({
288
+ advantages: S.optional(PublicMarketingDataAdvantagesList),
289
+ applications: S.optional(PublicMarketingDataApplicationsList),
290
+ functions: S.optional(PublicMarketingDataFunctionsList),
291
+ headline: S.optional(S.String),
292
+ id: S.optional(S.NullOr(S.String)),
293
+ introductoryText: S.optional(S.String),
294
+ language: S.optional(S.String),
295
+ longName: S.optional(S.String),
296
+ shortName: S.optional(S.String),
297
+ stId: S.optional(S.String),
298
+ validStart: S.optional(S.String),
299
+ version: S.optional(S.String),
300
+ }),
301
+ ).annotate({
302
+ identifier: "PublicMarketingData",
303
+ }) as any as S.Schema<PublicMarketingData>;
304
+
305
+ export type GetSKURequestLanguage = "en" | "de";
306
+ export const GetSKURequestLanguage = /*@__PURE__*/ S.String;
307
+
308
+ export interface GetSKURequest {
309
+ /** The unique identifier for a SKU. */
310
+ skuId: string;
311
+ /** The language to retrieve the data in, available for en and de */
312
+ language?: GetSKURequestLanguage | (string & {});
313
+ }
314
+ export const GetSKURequest = /*@__PURE__*/ S.suspend(() =>
315
+ S.Struct({
316
+ skuId: S.String.pipe(T.Label()),
317
+ language: S.optional(GetSKURequestLanguage.pipe(T.Query())),
318
+ }).pipe(
319
+ T.Http({
320
+ method: "GET",
321
+ uri: "/v2/skus/{skuId}",
322
+ code: 200,
323
+ baseUrl: "https://pim.api.stackit.cloud",
324
+ }),
325
+ ),
326
+ ).annotate({ identifier: "GetSKURequest" }) as any as S.Schema<GetSKURequest>;
327
+
328
+ export interface FinOpsFocus {
329
+ /** FinOps Focus service category */
330
+ serviceCategory?: string;
331
+ /** FinOps Focus service subcategory */
332
+ serviceSubCategory?: string;
333
+ }
334
+ export const FinOpsFocus = /*@__PURE__*/ S.suspend(() =>
335
+ S.Struct({
336
+ serviceCategory: S.optional(S.String),
337
+ serviceSubCategory: S.optional(S.String),
338
+ }),
339
+ ).annotate({ identifier: "FinOpsFocus" }) as any as S.Schema<FinOpsFocus>;
340
+
341
+ /** Prices' currency code regarding ISO4217 */
342
+ export type CurrencyCodes = "EUR" | "USD" | "GBP";
343
+ export const CurrencyCodes = /*@__PURE__*/ S.String;
344
+
345
+ /** Prices' currency symbol */
346
+ export type CurrencySymbols = "€" | "$";
347
+ export const CurrencySymbols = /*@__PURE__*/ S.String;
348
+
349
+ export interface Price {
350
+ currencyCode?: CurrencyCodes;
351
+ currencySymbol?: CurrencySymbols | null;
352
+ /** Monthly price value that is valid at request time, shown with full precision */
353
+ monthlyPrice?: string | null;
354
+ /** Used in Portal rounded to the minimal usable precision 2 digits after 0 */
355
+ roundedMonthlyPrice?: string;
356
+ /** Used in Portal rounded to the minimal usable precision 2 digits after 0 */
357
+ roundedValue?: string;
358
+ validFrom?: string;
359
+ /** Price value that is valid at request time, shown with full precision with 11 decimals */
360
+ value?: string;
361
+ /** Price as integer representation 1e11 */
362
+ valueAsInt?: number;
363
+ }
364
+ export const Price = /*@__PURE__*/ S.suspend(() =>
365
+ S.Struct({
366
+ currencyCode: S.optional(CurrencyCodes),
367
+ currencySymbol: S.optional(S.NullOr(CurrencySymbols)),
368
+ monthlyPrice: S.optional(S.NullOr(S.String)),
369
+ roundedMonthlyPrice: S.optional(S.String),
370
+ roundedValue: S.optional(S.String),
371
+ validFrom: S.optional(S.String),
372
+ value: S.optional(S.String),
373
+ valueAsInt: S.optional(S.Number),
374
+ }),
375
+ ).annotate({ identifier: "Price" }) as any as S.Schema<Price>;
376
+
377
+ /** List of prices */
378
+ export type GetSKUResponsePricesList = Array<Price>;
379
+ export const GetSKUResponsePricesList = /*@__PURE__*/ S.Array(
380
+ Price,
381
+ ) as any as S.Schema<GetSKUResponsePricesList>;
382
+
383
+ /** List of unique service look up ids (ASCII ordered, ascending) */
384
+ export type GetSKUResponseServiceIdList = Array<string>;
385
+ export const GetSKUResponseServiceIdList = /*@__PURE__*/ S.Array(
386
+ S.String,
387
+ ) as any as S.Schema<GetSKUResponseServiceIdList>;
388
+
389
+ /** Performance Classes */
390
+ export type PublicDatabaseSpecificAttributesPerformanceClassesList =
391
+ Array<string>;
392
+ export const PublicDatabaseSpecificAttributesPerformanceClassesList =
393
+ /*@__PURE__*/ S.Array(
394
+ S.String,
395
+ ) as any as S.Schema<PublicDatabaseSpecificAttributesPerformanceClassesList>;
396
+
397
+ export interface PublicDatabaseSpecificAttributes {
398
+ discriminator: string;
399
+ /** diskStoragePerNode */
400
+ diskStoragePerNode?: string | null;
401
+ /** Flavor */
402
+ flavor?: string | null;
403
+ /** Nodes */
404
+ nodes?: number | null;
405
+ /** Performance Classes */
406
+ performanceClasses?: PublicDatabaseSpecificAttributesPerformanceClassesList;
407
+ /** RAM (in GB) */
408
+ ram?: number | null;
409
+ /** Max Storage in Gb */
410
+ storageMaxGb?: number | null;
411
+ /** Min Storage in Gb */
412
+ storageMinGb?: number | null;
413
+ /** Type (e.g. `single`, `replica`) */
414
+ type?: string | null;
415
+ /** Number of vCPU */
416
+ vCPU?: number | null;
417
+ }
418
+ export const PublicDatabaseSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
419
+ S.Struct({
420
+ discriminator: S.String,
421
+ diskStoragePerNode: S.optional(S.NullOr(S.String)),
422
+ flavor: S.optional(S.NullOr(S.String)),
423
+ nodes: S.optional(S.NullOr(S.Number)),
424
+ performanceClasses: S.optional(
425
+ PublicDatabaseSpecificAttributesPerformanceClassesList,
426
+ ),
427
+ ram: S.optional(S.NullOr(S.Number)),
428
+ storageMaxGb: S.optional(S.NullOr(S.Number)),
429
+ storageMinGb: S.optional(S.NullOr(S.Number)),
430
+ type: S.optional(S.NullOr(S.String)),
431
+ vCPU: S.optional(S.NullOr(S.Number)),
432
+ }),
433
+ ).annotate({
434
+ identifier: "PublicDatabaseSpecificAttributes",
435
+ }) as any as S.Schema<PublicDatabaseSpecificAttributes>;
436
+
437
+ export interface ArchivingSpecificAttributes {
438
+ discriminator: string;
439
+ /** metro */
440
+ metro?: boolean | null;
441
+ }
442
+ export const ArchivingSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
443
+ S.Struct({
444
+ discriminator: S.String,
445
+ metro: S.optional(S.NullOr(S.Boolean)),
446
+ }),
447
+ ).annotate({
448
+ identifier: "ArchivingSpecificAttributes",
449
+ }) as any as S.Schema<ArchivingSpecificAttributes>;
450
+
451
+ export interface ComputeEngineSpecificAttributes {
452
+ discriminator: string;
453
+ /** Flavor */
454
+ flavor?: string | null;
455
+ /** Hardware */
456
+ hardware?: string | null;
457
+ /** metro */
458
+ metro?: boolean | null;
459
+ /** Operating System (e.g. `windows`, `windows-managed`) */
460
+ os?: string | null;
461
+ /** RAM (in GB) */
462
+ ram?: number | null;
463
+ /** Number of vCPU */
464
+ vCPU?: number | null;
465
+ }
466
+ export const ComputeEngineSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
467
+ S.Struct({
468
+ discriminator: S.String,
469
+ flavor: S.optional(S.NullOr(S.String)),
470
+ hardware: S.optional(S.NullOr(S.String)),
471
+ metro: S.optional(S.NullOr(S.Boolean)),
472
+ os: S.optional(S.NullOr(S.String)),
473
+ ram: S.optional(S.NullOr(S.Number)),
474
+ vCPU: S.optional(S.NullOr(S.Number)),
475
+ }),
476
+ ).annotate({
477
+ identifier: "ComputeEngineSpecificAttributes",
478
+ }) as any as S.Schema<ComputeEngineSpecificAttributes>;
479
+
480
+ export type ComputeEngineGPUSpecificAttributes =
481
+ ComputeEngineSpecificAttributes;
482
+ export const ComputeEngineGPUSpecificAttributes =
483
+ ComputeEngineSpecificAttributes;
484
+
485
+ export interface NetworkSpecificAttributes {
486
+ /** Connection limit per Load Balancer */
487
+ connectionLimitPerLoadBalancer?: number | null;
488
+ discriminator: string;
489
+ /** Maximum Bandwidth */
490
+ maxBandWidth?: number | null;
491
+ /** Maximum Connections */
492
+ maxConnections?: number | null;
493
+ /** Plan ID */
494
+ planId?: string | null;
495
+ /** Record limit per zone */
496
+ recordLimitPerZone?: number | null;
497
+ /** Type (e.g. `single`, `replica`) */
498
+ type?: string | null;
499
+ }
500
+ export const NetworkSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
501
+ S.Struct({
502
+ connectionLimitPerLoadBalancer: S.optional(S.NullOr(S.Number)),
503
+ discriminator: S.String,
504
+ maxBandWidth: S.optional(S.NullOr(S.Number)),
505
+ maxConnections: S.optional(S.NullOr(S.Number)),
506
+ planId: S.optional(S.NullOr(S.String)),
507
+ recordLimitPerZone: S.optional(S.NullOr(S.Number)),
508
+ type: S.optional(S.NullOr(S.String)),
509
+ }),
510
+ ).annotate({
511
+ identifier: "NetworkSpecificAttributes",
512
+ }) as any as S.Schema<NetworkSpecificAttributes>;
513
+
514
+ export interface MessagingSpecificAttributes {
515
+ discriminator: string;
516
+ /** diskStoragePerNode */
517
+ diskStoragePerNode?: string | null;
518
+ /** Nodes */
519
+ nodes?: number | null;
520
+ /** RAM (in GB) */
521
+ ram?: number | null;
522
+ /** Type (e.g. `single`, `replica`) */
523
+ type?: string | null;
524
+ /** Number of vCPU */
525
+ vCPU?: number | null;
526
+ }
527
+ export const MessagingSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
528
+ S.Struct({
529
+ discriminator: S.String,
530
+ diskStoragePerNode: S.optional(S.NullOr(S.String)),
531
+ nodes: S.optional(S.NullOr(S.Number)),
532
+ ram: S.optional(S.NullOr(S.Number)),
533
+ type: S.optional(S.NullOr(S.String)),
534
+ vCPU: S.optional(S.NullOr(S.Number)),
535
+ }),
536
+ ).annotate({
537
+ identifier: "MessagingSpecificAttributes",
538
+ }) as any as S.Schema<MessagingSpecificAttributes>;
539
+
540
+ export interface LoggingAndMonitoringSpecificAttributes {
541
+ discriminator: string;
542
+ /** diskStoragePerNode */
543
+ diskStoragePerNode?: string | null;
544
+ /** metricPerMin */
545
+ metricPerMin?: number | null;
546
+ /** Nodes */
547
+ nodes?: number | null;
548
+ /** Targets */
549
+ targets?: number | null;
550
+ /** Type (e.g. `single`, `replica`) */
551
+ type?: string | null;
552
+ }
553
+ export const LoggingAndMonitoringSpecificAttributes = /*@__PURE__*/ S.suspend(
554
+ () =>
555
+ S.Struct({
556
+ discriminator: S.String,
557
+ diskStoragePerNode: S.optional(S.NullOr(S.String)),
558
+ metricPerMin: S.optional(S.NullOr(S.Number)),
559
+ nodes: S.optional(S.NullOr(S.Number)),
560
+ targets: S.optional(S.NullOr(S.Number)),
561
+ type: S.optional(S.NullOr(S.String)),
562
+ }),
563
+ ).annotate({
564
+ identifier: "LoggingAndMonitoringSpecificAttributes",
565
+ }) as any as S.Schema<LoggingAndMonitoringSpecificAttributes>;
566
+
567
+ export type ConfidentialComputingSpecificAttributes =
568
+ ComputeEngineSpecificAttributes;
569
+ export const ConfidentialComputingSpecificAttributes =
570
+ ComputeEngineSpecificAttributes;
571
+
572
+ export interface StorageSpecificAttributes {
573
+ /** Storage Class type */
574
+ class?: string | null;
575
+ discriminator: string;
576
+ /** Storage maxIOPerSec */
577
+ maxIOPerSec?: number | null;
578
+ /** Storage maxTroughInMB */
579
+ maxTroughInMB?: number | null;
580
+ /** metro */
581
+ metro?: boolean | null;
582
+ /** Storage (e.g. `image`, `postgresql`, `snapshot`, `volume`) */
583
+ storage?: string | null;
584
+ /** Type (e.g. 'capacity', 'input') */
585
+ type?: string | null;
586
+ }
587
+ export const StorageSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
588
+ S.Struct({
589
+ class: S.optional(S.NullOr(S.String)),
590
+ discriminator: S.String,
591
+ maxIOPerSec: S.optional(S.NullOr(S.Number)),
592
+ maxTroughInMB: S.optional(S.NullOr(S.Number)),
593
+ metro: S.optional(S.NullOr(S.Boolean)),
594
+ storage: S.optional(S.NullOr(S.String)),
595
+ type: S.optional(S.NullOr(S.String)),
596
+ }),
597
+ ).annotate({
598
+ identifier: "StorageSpecificAttributes",
599
+ }) as any as S.Schema<StorageSpecificAttributes>;
600
+
601
+ export interface DataAndAI {
602
+ discriminator: string;
603
+ /** Type (e.g. `capacity`, `performance`) */
604
+ type?: string | null;
605
+ }
606
+ export const DataAndAI = /*@__PURE__*/ S.suspend(() =>
607
+ S.Struct({
608
+ discriminator: S.String,
609
+ type: S.optional(S.NullOr(S.String)),
610
+ }),
611
+ ).annotate({ identifier: "DataAndAI" }) as any as S.Schema<DataAndAI>;
612
+
613
+ export interface RuntimeSpecificAttributes {
614
+ discriminator: string;
615
+ /** Plan ID */
616
+ planId?: string | null;
617
+ /** Type (e.g. `single`, `replica`) */
618
+ type?: string | null;
619
+ }
620
+ export const RuntimeSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
621
+ S.Struct({
622
+ discriminator: S.String,
623
+ planId: S.optional(S.NullOr(S.String)),
624
+ type: S.optional(S.NullOr(S.String)),
625
+ }),
626
+ ).annotate({
627
+ identifier: "RuntimeSpecificAttributes",
628
+ }) as any as S.Schema<RuntimeSpecificAttributes>;
629
+
630
+ /** Communication Channel */
631
+ export type SupportSpecificAttributesCommunicationChannelList = Array<string>;
632
+ export const SupportSpecificAttributesCommunicationChannelList =
633
+ /*@__PURE__*/ S.Array(
634
+ S.String,
635
+ ) as any as S.Schema<SupportSpecificAttributesCommunicationChannelList>;
636
+
637
+ export interface SupportSpecificAttributes {
638
+ /** Communication Channel */
639
+ communicationChannel?: SupportSpecificAttributesCommunicationChannelList;
640
+ /** Contract notice period in days */
641
+ contractNoticePeriodInDays?: number | null;
642
+ discriminator: string;
643
+ /** Escalation availability BC INC */
644
+ escalationAvailabilityBCINC?: string | null;
645
+ /** Escalation availability INC */
646
+ escalationAvailabilityINC?: string | null;
647
+ /** Escalation availability for Service Requests */
648
+ escalationAvailabilitySR?: string | null;
649
+ /** Escalation threshold BC INC (in minutes) */
650
+ escalationThresholdBCINCInMins?: number | null;
651
+ /** Escalation threshold INC (in minutes) */
652
+ escalationThresholdINCInMins?: number | null;
653
+ /** Escalation threshold for Service Requests */
654
+ escalationThresholdSRInMins?: number | null;
655
+ /** Financial Penalty for SLA Violation <80 (in %) */
656
+ finPenaltySLAVio80Pct?: number | null;
657
+ /** Financial Penalty for SLA Violation <90 - 80 (in %) */
658
+ finPenaltySLAVio90_80Pct?: number | null;
659
+ /** Initial runtime in months */
660
+ initialRuntimeInMonths?: number | null;
661
+ /** Lead time in workdays */
662
+ leadTimeInWorkDays?: number | null;
663
+ /** Location */
664
+ location?: string | null;
665
+ /** Project notice period in workdays */
666
+ projectNoticePeriodInWorkDays?: number | null;
667
+ /** Reaction time (in minutes) */
668
+ reactionTimeInMins?: number | null;
669
+ /** Repeated runtime in months */
670
+ repeatedRuntimeInMonths?: number | null;
671
+ /** Response time BC INC (in minutes) */
672
+ responseTimeBCINCInMins?: number | null;
673
+ /** Response time INC (in minutes) */
674
+ responseTimeINCInMins?: number | null;
675
+ /** Response time (in minutes) for Service Requests */
676
+ responseTimeSRInMins?: number | null;
677
+ /** Service hours BC INC */
678
+ serviceHoursBCINC?: string | null;
679
+ /** Service hours INC */
680
+ serviceHoursINC?: string | null;
681
+ /** Service hours for Service Requests */
682
+ serviceHoursSR?: string | null;
683
+ /** SLA goal in percentage */
684
+ slaGoalInPercentage?: number | null;
685
+ }
686
+ export const SupportSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
687
+ S.Struct({
688
+ communicationChannel: S.optional(
689
+ SupportSpecificAttributesCommunicationChannelList,
690
+ ),
691
+ contractNoticePeriodInDays: S.optional(S.NullOr(S.Number)),
692
+ discriminator: S.String,
693
+ escalationAvailabilityBCINC: S.optional(S.NullOr(S.String)),
694
+ escalationAvailabilityINC: S.optional(S.NullOr(S.String)),
695
+ escalationAvailabilitySR: S.optional(S.NullOr(S.String)),
696
+ escalationThresholdBCINCInMins: S.optional(S.NullOr(S.Number)),
697
+ escalationThresholdINCInMins: S.optional(S.NullOr(S.Number)),
698
+ escalationThresholdSRInMins: S.optional(S.NullOr(S.Number)),
699
+ finPenaltySLAVio80Pct: S.optional(S.NullOr(S.Number)),
700
+ finPenaltySLAVio90_80Pct: S.optional(
701
+ S.NullOr(S.Number).pipe(T.Body("finPenaltySLAVio90-80Pct")),
702
+ ),
703
+ initialRuntimeInMonths: S.optional(S.NullOr(S.Number)),
704
+ leadTimeInWorkDays: S.optional(S.NullOr(S.Number)),
705
+ location: S.optional(S.NullOr(S.String)),
706
+ projectNoticePeriodInWorkDays: S.optional(S.NullOr(S.Number)),
707
+ reactionTimeInMins: S.optional(S.NullOr(S.Number)),
708
+ repeatedRuntimeInMonths: S.optional(S.NullOr(S.Number)),
709
+ responseTimeBCINCInMins: S.optional(S.NullOr(S.Number)),
710
+ responseTimeINCInMins: S.optional(S.NullOr(S.Number)),
711
+ responseTimeSRInMins: S.optional(S.NullOr(S.Number)),
712
+ serviceHoursBCINC: S.optional(S.NullOr(S.String)),
713
+ serviceHoursINC: S.optional(S.NullOr(S.String)),
714
+ serviceHoursSR: S.optional(S.NullOr(S.String)),
715
+ slaGoalInPercentage: S.optional(S.NullOr(S.Number)),
716
+ }),
717
+ ).annotate({
718
+ identifier: "SupportSpecificAttributes",
719
+ }) as any as S.Schema<SupportSpecificAttributes>;
720
+
721
+ export interface DeveloperPlatformSpecificAttributes {
722
+ discriminator: string;
723
+ /** diskStoragePerNode */
724
+ diskStoragePerNode?: string | null;
725
+ /** Storage (e.g. `image`, `postgresql`, `snapshot`, `volume`) */
726
+ storage?: string | null;
727
+ /** Type (e.g. `single`, `replica`) */
728
+ type?: string | null;
729
+ }
730
+ export const DeveloperPlatformSpecificAttributes = /*@__PURE__*/ S.suspend(() =>
731
+ S.Struct({
732
+ discriminator: S.String,
733
+ diskStoragePerNode: S.optional(S.NullOr(S.String)),
734
+ storage: S.optional(S.NullOr(S.String)),
735
+ type: S.optional(S.NullOr(S.String)),
736
+ }),
737
+ ).annotate({
738
+ identifier: "DeveloperPlatformSpecificAttributes",
739
+ }) as any as S.Schema<DeveloperPlatformSpecificAttributes>;
740
+
741
+ export type GetSKUResponseProductSpecificAttributes =
742
+ | PublicDatabaseSpecificAttributes
743
+ | ArchivingSpecificAttributes
744
+ | ComputeEngineSpecificAttributes
745
+ | ComputeEngineSpecificAttributes
746
+ | NetworkSpecificAttributes
747
+ | MessagingSpecificAttributes
748
+ | LoggingAndMonitoringSpecificAttributes
749
+ | ComputeEngineSpecificAttributes
750
+ | StorageSpecificAttributes
751
+ | DataAndAI
752
+ | RuntimeSpecificAttributes
753
+ | SupportSpecificAttributes
754
+ | DeveloperPlatformSpecificAttributes;
755
+ export const GetSKUResponseProductSpecificAttributes =
756
+ /*@__PURE__*/ S.Unknown as any as S.Schema<GetSKUResponseProductSpecificAttributes>;
757
+
758
+ export interface PublicSavingsPlan {
759
+ /** Discount percentage for the savings plan */
760
+ discount?: number;
761
+ /** Number of years the savings plan is valid */
762
+ validityPeriodInYears?: number;
763
+ }
764
+ export const PublicSavingsPlan = /*@__PURE__*/ S.suspend(() =>
765
+ S.Struct({
766
+ discount: S.optional(S.Number),
767
+ validityPeriodInYears: S.optional(S.Number),
768
+ }),
769
+ ).annotate({
770
+ identifier: "PublicSavingsPlan",
771
+ }) as any as S.Schema<PublicSavingsPlan>;
772
+
773
+ export type GetSKUResponseSavingsPlansList = Array<PublicSavingsPlan>;
774
+ export const GetSKUResponseSavingsPlansList = /*@__PURE__*/ S.Array(
775
+ PublicSavingsPlan,
776
+ ) as any as S.Schema<GetSKUResponseSavingsPlansList>;
777
+
778
+ export interface GetSKUResponse {
779
+ /** The unique identifier for the category, which is object id from the DB */
780
+ categoryId: string | null;
781
+ /** Generic categorization to structure the customer's invoice transparently (e.g. `Compute Engine`, `Database`, `Storage`) */
782
+ categoryName: string | null;
783
+ /** CPU overprovisioning */
784
+ cpuOverprovisioning?: boolean | null;
785
+ /** Attribute that indicates if product is deprecated or not. */
786
+ deprecated: string | null;
787
+ /** Documentation URL */
788
+ documentation: string | null;
789
+ finOpsFocus: FinOpsFocus;
790
+ /** Category designation one level below the generic designation that describes the overall product group to which all the SKUs are allocated to. */
791
+ generalProductGroup: string | null;
792
+ /** SKU ID \ Complete SAP article number with prefix. Will be shown on the invoice like this */
793
+ id: string;
794
+ /** Language of sku */
795
+ language?: string;
796
+ /** Name of license */
797
+ licenseName?: string | null;
798
+ /** State of the SKU following the mandatory product‘s maturity model progress (e.g. `beta`, `ga`) */
799
+ maturityModelState: string | null;
800
+ /** Metric of service */
801
+ metric?: string | null;
802
+ /** How the line item will appear on the bill */
803
+ name: string | null;
804
+ /** Attribute that indicates if PriceList is visible or not. */
805
+ priceListVisibility: string | null;
806
+ /** List of prices */
807
+ prices: GetSKUResponsePricesList;
808
+ /** The unique identifier for the product, which is object id from the DB */
809
+ productId: string | null;
810
+ /** Generic product (e.g. `Windows Server`, `Server Backup Management`, `Server`) */
811
+ productName: string | null;
812
+ /** Rate type of service */
813
+ rateType?: string | null;
814
+ /** Region of sku */
815
+ region: string;
816
+ /** List of unique service look up ids (ASCII ordered, ascending) */
817
+ serviceId?: GetSKUResponseServiceIdList;
818
+ /** Technical differentiation */
819
+ technicalProductGroup?: string | null;
820
+ /** Tier max value */
821
+ tierMaxValue?: number | null;
822
+ /** Tier min value */
823
+ tierMinValue?: number | null;
824
+ /** Service name */
825
+ title: string;
826
+ /** The unit of measurement for the invoiced items, as to be displayed on the invoice. */
827
+ unit: string;
828
+ /** Unit billing */
829
+ unitBilling: string;
830
+ /** Date when the current version was approved and became valid in PIM */
831
+ validStart: string;
832
+ /** Number of the revision from PIM */
833
+ version: string;
834
+ productSpecificAttributes?: GetSKUResponseProductSpecificAttributes;
835
+ savingsPlans?: GetSKUResponseSavingsPlansList;
836
+ }
837
+ export const GetSKUResponse = /*@__PURE__*/ S.suspend(() =>
838
+ S.Struct({
839
+ categoryId: S.NullOr(S.String),
840
+ categoryName: S.NullOr(S.String),
841
+ cpuOverprovisioning: S.optional(S.NullOr(S.Boolean)),
842
+ deprecated: S.NullOr(S.String),
843
+ documentation: S.NullOr(S.String),
844
+ finOpsFocus: FinOpsFocus,
845
+ generalProductGroup: S.NullOr(S.String),
846
+ id: S.String,
847
+ language: S.optional(S.String),
848
+ licenseName: S.optional(S.NullOr(S.String)),
849
+ maturityModelState: S.NullOr(S.String),
850
+ metric: S.optional(S.NullOr(S.String)),
851
+ name: S.NullOr(S.String),
852
+ priceListVisibility: S.NullOr(S.String),
853
+ prices: GetSKUResponsePricesList,
854
+ productId: S.NullOr(S.String),
855
+ productName: S.NullOr(S.String),
856
+ rateType: S.optional(S.NullOr(S.String)),
857
+ region: S.String,
858
+ serviceId: S.optional(GetSKUResponseServiceIdList),
859
+ technicalProductGroup: S.optional(S.NullOr(S.String)),
860
+ tierMaxValue: S.optional(S.NullOr(S.Number)),
861
+ tierMinValue: S.optional(S.NullOr(S.Number)),
862
+ title: S.String,
863
+ unit: S.String,
864
+ unitBilling: S.String,
865
+ validStart: S.String,
866
+ version: S.String,
867
+ productSpecificAttributes: S.optional(
868
+ GetSKUResponseProductSpecificAttributes,
869
+ ),
870
+ savingsPlans: S.optional(GetSKUResponseSavingsPlansList),
871
+ }),
872
+ ).annotate({ identifier: "GetSKUResponse" }) as any as S.Schema<GetSKUResponse>;
873
+
874
+ export type GetSTAXSKURequestLanguage = "en" | "de";
875
+ export const GetSTAXSKURequestLanguage = /*@__PURE__*/ S.String;
876
+
877
+ export interface GetSTAXSKURequest {
878
+ /** The unique identifier for a SKU. */
879
+ skuId: string;
880
+ /** The language to retrieve the data in, available for en and de */
881
+ language?: GetSTAXSKURequestLanguage | (string & {});
882
+ }
883
+ export const GetSTAXSKURequest = /*@__PURE__*/ S.suspend(() =>
884
+ S.Struct({
885
+ skuId: S.String.pipe(T.Label()),
886
+ language: S.optional(GetSTAXSKURequestLanguage.pipe(T.Query())),
887
+ }).pipe(
888
+ T.Http({
889
+ method: "GET",
890
+ uri: "/v2/stackitx/skus/{skuId}",
891
+ code: 200,
892
+ baseUrl: "https://pim.api.stackit.cloud",
893
+ }),
894
+ ),
895
+ ).annotate({
896
+ identifier: "GetSTAXSKURequest",
897
+ }) as any as S.Schema<GetSTAXSKURequest>;
898
+
899
+ /** List of prices */
900
+ export type GetSTAXSKUResponsePricesList = Array<Price>;
901
+ export const GetSTAXSKUResponsePricesList = /*@__PURE__*/ S.Array(
902
+ Price,
903
+ ) as any as S.Schema<GetSTAXSKUResponsePricesList>;
904
+
905
+ /** List of unique service look up ids (ASCII ordered, ascending) */
906
+ export type GetSTAXSKUResponseServiceIdList = Array<string>;
907
+ export const GetSTAXSKUResponseServiceIdList = /*@__PURE__*/ S.Array(
908
+ S.String,
909
+ ) as any as S.Schema<GetSTAXSKUResponseServiceIdList>;
910
+
911
+ export type GetSTAXSKUResponseProductSpecificAttributes =
912
+ | PublicDatabaseSpecificAttributes
913
+ | ArchivingSpecificAttributes
914
+ | ComputeEngineSpecificAttributes
915
+ | ComputeEngineSpecificAttributes
916
+ | NetworkSpecificAttributes
917
+ | MessagingSpecificAttributes
918
+ | LoggingAndMonitoringSpecificAttributes
919
+ | ComputeEngineSpecificAttributes
920
+ | StorageSpecificAttributes
921
+ | DataAndAI
922
+ | RuntimeSpecificAttributes
923
+ | SupportSpecificAttributes
924
+ | DeveloperPlatformSpecificAttributes;
925
+ export const GetSTAXSKUResponseProductSpecificAttributes =
926
+ /*@__PURE__*/ S.Unknown as any as S.Schema<GetSTAXSKUResponseProductSpecificAttributes>;
927
+
928
+ export type GetSTAXSKUResponseSavingsPlansList = Array<PublicSavingsPlan>;
929
+ export const GetSTAXSKUResponseSavingsPlansList = /*@__PURE__*/ S.Array(
930
+ PublicSavingsPlan,
931
+ ) as any as S.Schema<GetSTAXSKUResponseSavingsPlansList>;
932
+
933
+ export interface GetSTAXSKUResponse {
934
+ /** The unique identifier for the category, which is object id from the DB */
935
+ categoryId: string | null;
936
+ /** Generic categorization to structure the customer's invoice transparently (e.g. `Compute Engine`, `Database`, `Storage`) */
937
+ categoryName: string | null;
938
+ /** CPU overprovisioning */
939
+ cpuOverprovisioning?: boolean | null;
940
+ /** Attribute that indicates if product is deprecated or not. */
941
+ deprecated: string | null;
942
+ /** Documentation URL */
943
+ documentation: string | null;
944
+ finOpsFocus: FinOpsFocus;
945
+ /** Category designation one level below the generic designation that describes the overall product group to which all the SKUs are allocated to. */
946
+ generalProductGroup: string | null;
947
+ /** SKU ID \ Complete SAP article number with prefix. Will be shown on the invoice like this */
948
+ id: string;
949
+ /** Language of sku */
950
+ language?: string;
951
+ /** Name of license */
952
+ licenseName?: string | null;
953
+ /** State of the SKU following the mandatory product‘s maturity model progress (e.g. `beta`, `ga`) */
954
+ maturityModelState: string | null;
955
+ /** Metric of service */
956
+ metric?: string | null;
957
+ /** How the line item will appear on the bill */
958
+ name: string | null;
959
+ /** Attribute that indicates if PriceList is visible or not. */
960
+ priceListVisibility: string | null;
961
+ /** List of prices */
962
+ prices: GetSTAXSKUResponsePricesList;
963
+ /** The unique identifier for the product, which is object id from the DB */
964
+ productId: string | null;
965
+ /** Generic product (e.g. `Windows Server`, `Server Backup Management`, `Server`) */
966
+ productName: string | null;
967
+ /** Rate type of service */
968
+ rateType?: string | null;
969
+ /** Region of sku */
970
+ region: string;
971
+ /** List of unique service look up ids (ASCII ordered, ascending) */
972
+ serviceId?: GetSTAXSKUResponseServiceIdList;
973
+ /** Technical differentiation */
974
+ technicalProductGroup?: string | null;
975
+ /** Tier max value */
976
+ tierMaxValue?: number | null;
977
+ /** Tier min value */
978
+ tierMinValue?: number | null;
979
+ /** Service name */
980
+ title: string;
981
+ /** The unit of measurement for the invoiced items, as to be displayed on the invoice. */
982
+ unit: string;
983
+ /** Unit billing */
984
+ unitBilling: string;
985
+ /** Date when the current version was approved and became valid in PIM */
986
+ validStart: string;
987
+ /** Number of the revision from PIM */
988
+ version: string;
989
+ productSpecificAttributes?: GetSTAXSKUResponseProductSpecificAttributes;
990
+ savingsPlans?: GetSTAXSKUResponseSavingsPlansList;
991
+ }
992
+ export const GetSTAXSKUResponse = /*@__PURE__*/ S.suspend(() =>
993
+ S.Struct({
994
+ categoryId: S.NullOr(S.String),
995
+ categoryName: S.NullOr(S.String),
996
+ cpuOverprovisioning: S.optional(S.NullOr(S.Boolean)),
997
+ deprecated: S.NullOr(S.String),
998
+ documentation: S.NullOr(S.String),
999
+ finOpsFocus: FinOpsFocus,
1000
+ generalProductGroup: S.NullOr(S.String),
1001
+ id: S.String,
1002
+ language: S.optional(S.String),
1003
+ licenseName: S.optional(S.NullOr(S.String)),
1004
+ maturityModelState: S.NullOr(S.String),
1005
+ metric: S.optional(S.NullOr(S.String)),
1006
+ name: S.NullOr(S.String),
1007
+ priceListVisibility: S.NullOr(S.String),
1008
+ prices: GetSTAXSKUResponsePricesList,
1009
+ productId: S.NullOr(S.String),
1010
+ productName: S.NullOr(S.String),
1011
+ rateType: S.optional(S.NullOr(S.String)),
1012
+ region: S.String,
1013
+ serviceId: S.optional(GetSTAXSKUResponseServiceIdList),
1014
+ technicalProductGroup: S.optional(S.NullOr(S.String)),
1015
+ tierMaxValue: S.optional(S.NullOr(S.Number)),
1016
+ tierMinValue: S.optional(S.NullOr(S.Number)),
1017
+ title: S.String,
1018
+ unit: S.String,
1019
+ unitBilling: S.String,
1020
+ validStart: S.String,
1021
+ version: S.String,
1022
+ productSpecificAttributes: S.optional(
1023
+ GetSTAXSKUResponseProductSpecificAttributes,
1024
+ ),
1025
+ savingsPlans: S.optional(GetSTAXSKUResponseSavingsPlansList),
1026
+ }),
1027
+ ).annotate({
1028
+ identifier: "GetSTAXSKUResponse",
1029
+ }) as any as S.Schema<GetSTAXSKUResponse>;
1030
+
1031
+ export type ListCategoriesRequestLanguage = "en" | "de";
1032
+ export const ListCategoriesRequestLanguage = /*@__PURE__*/ S.String;
1033
+
1034
+ export interface ListCategoriesRequest {
1035
+ /** The number of items to retrieve per page */
1036
+ pageSize?: number;
1037
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1038
+ cursor?: string;
1039
+ /** The category's name to retrieve the data for */
1040
+ categoryName?: string;
1041
+ /** The language to retrieve the data in, available for en and de */
1042
+ language?: ListCategoriesRequestLanguage | (string & {});
1043
+ }
1044
+ export const ListCategoriesRequest = /*@__PURE__*/ S.suspend(() =>
1045
+ S.Struct({
1046
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1047
+ cursor: S.optional(S.String.pipe(T.Query())),
1048
+ categoryName: S.optional(S.String.pipe(T.Query())),
1049
+ language: S.optional(ListCategoriesRequestLanguage.pipe(T.Query())),
1050
+ }).pipe(
1051
+ T.Http({
1052
+ method: "GET",
1053
+ uri: "/v2/categories",
1054
+ code: 200,
1055
+ baseUrl: "https://pim.api.stackit.cloud",
1056
+ }),
1057
+ ),
1058
+ ).annotate({
1059
+ identifier: "ListCategoriesRequest",
1060
+ }) as any as S.Schema<ListCategoriesRequest>;
1061
+
1062
+ export type ListCategoriesResponseDataList = Array<PublicCategory>;
1063
+ export const ListCategoriesResponseDataList = /*@__PURE__*/ S.Array(
1064
+ PublicCategory,
1065
+ ) as any as S.Schema<ListCategoriesResponseDataList>;
1066
+
1067
+ export interface MetaInformation {
1068
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1069
+ nextCursor?: string;
1070
+ /** The number of items per page */
1071
+ pageSize?: number;
1072
+ }
1073
+ export const MetaInformation = /*@__PURE__*/ S.suspend(() =>
1074
+ S.Struct({
1075
+ nextCursor: S.optional(S.String),
1076
+ pageSize: S.optional(S.Number),
1077
+ }),
1078
+ ).annotate({
1079
+ identifier: "MetaInformation",
1080
+ }) as any as S.Schema<MetaInformation>;
1081
+
1082
+ export interface ListCategoriesResponse {
1083
+ data?: ListCategoriesResponseDataList;
1084
+ meta?: MetaInformation;
1085
+ }
1086
+ export const ListCategoriesResponse = /*@__PURE__*/ S.suspend(() =>
1087
+ S.Struct({
1088
+ data: S.optional(ListCategoriesResponseDataList),
1089
+ meta: S.optional(MetaInformation),
1090
+ }),
1091
+ ).annotate({
1092
+ identifier: "ListCategoriesResponse",
1093
+ }) as any as S.Schema<ListCategoriesResponse>;
1094
+
1095
+ export type ListCategoryProductsRequestLanguage = "en" | "de";
1096
+ export const ListCategoryProductsRequestLanguage = /*@__PURE__*/ S.String;
1097
+
1098
+ export interface ListCategoryProductsRequest {
1099
+ /** The unique identifier for a category. */
1100
+ categoryId: string;
1101
+ /** The number of items to retrieve per page */
1102
+ pageSize?: number;
1103
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1104
+ cursor?: string;
1105
+ /** The product's name to retrieve the data for */
1106
+ productName?: string;
1107
+ /** The language to retrieve the data in, available for en and de */
1108
+ language?: ListCategoryProductsRequestLanguage | (string & {});
1109
+ }
1110
+ export const ListCategoryProductsRequest = /*@__PURE__*/ S.suspend(() =>
1111
+ S.Struct({
1112
+ categoryId: S.String.pipe(T.Label()),
1113
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1114
+ cursor: S.optional(S.String.pipe(T.Query())),
1115
+ productName: S.optional(S.String.pipe(T.Query())),
1116
+ language: S.optional(ListCategoryProductsRequestLanguage.pipe(T.Query())),
1117
+ }).pipe(
1118
+ T.Http({
1119
+ method: "GET",
1120
+ uri: "/v2/categories/{categoryId}/products",
1121
+ code: 200,
1122
+ baseUrl: "https://pim.api.stackit.cloud",
1123
+ }),
1124
+ ),
1125
+ ).annotate({
1126
+ identifier: "ListCategoryProductsRequest",
1127
+ }) as any as S.Schema<ListCategoryProductsRequest>;
1128
+
1129
+ export type ListCategoryProductsResponseDataList = Array<PublicProduct>;
1130
+ export const ListCategoryProductsResponseDataList = /*@__PURE__*/ S.Array(
1131
+ PublicProduct,
1132
+ ) as any as S.Schema<ListCategoryProductsResponseDataList>;
1133
+
1134
+ export interface ListCategoryProductsResponse {
1135
+ data?: ListCategoryProductsResponseDataList;
1136
+ meta?: MetaInformation;
1137
+ }
1138
+ export const ListCategoryProductsResponse = /*@__PURE__*/ S.suspend(() =>
1139
+ S.Struct({
1140
+ data: S.optional(ListCategoryProductsResponseDataList),
1141
+ meta: S.optional(MetaInformation),
1142
+ }),
1143
+ ).annotate({
1144
+ identifier: "ListCategoryProductsResponse",
1145
+ }) as any as S.Schema<ListCategoryProductsResponse>;
1146
+
1147
+ export type ListMarketingDataRequestLanguage = "en" | "de";
1148
+ export const ListMarketingDataRequestLanguage = /*@__PURE__*/ S.String;
1149
+
1150
+ export interface ListMarketingDataRequest {
1151
+ /** The number of items to retrieve per page */
1152
+ pageSize?: number;
1153
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1154
+ cursor?: string;
1155
+ /** The language to retrieve the data in, available for en and de */
1156
+ language?: ListMarketingDataRequestLanguage | (string & {});
1157
+ /** The product's name to retrieve the data for */
1158
+ productName?: string;
1159
+ }
1160
+ export const ListMarketingDataRequest = /*@__PURE__*/ S.suspend(() =>
1161
+ S.Struct({
1162
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1163
+ cursor: S.optional(S.String.pipe(T.Query())),
1164
+ language: S.optional(ListMarketingDataRequestLanguage.pipe(T.Query())),
1165
+ productName: S.optional(S.String.pipe(T.Query())),
1166
+ }).pipe(
1167
+ T.Http({
1168
+ method: "GET",
1169
+ uri: "/v2/marketing",
1170
+ code: 200,
1171
+ baseUrl: "https://pim.api.stackit.cloud",
1172
+ }),
1173
+ ),
1174
+ ).annotate({
1175
+ identifier: "ListMarketingDataRequest",
1176
+ }) as any as S.Schema<ListMarketingDataRequest>;
1177
+
1178
+ export type ListMarketingDataResponseDataList = Array<PublicMarketingData>;
1179
+ export const ListMarketingDataResponseDataList = /*@__PURE__*/ S.Array(
1180
+ PublicMarketingData,
1181
+ ) as any as S.Schema<ListMarketingDataResponseDataList>;
1182
+
1183
+ export interface ListMarketingDataResponse {
1184
+ data?: ListMarketingDataResponseDataList;
1185
+ meta?: MetaInformation;
1186
+ }
1187
+ export const ListMarketingDataResponse = /*@__PURE__*/ S.suspend(() =>
1188
+ S.Struct({
1189
+ data: S.optional(ListMarketingDataResponseDataList),
1190
+ meta: S.optional(MetaInformation),
1191
+ }),
1192
+ ).annotate({
1193
+ identifier: "ListMarketingDataResponse",
1194
+ }) as any as S.Schema<ListMarketingDataResponse>;
1195
+
1196
+ export type ListProductsRequestLanguage = "en" | "de";
1197
+ export const ListProductsRequestLanguage = /*@__PURE__*/ S.String;
1198
+
1199
+ export interface ListProductsRequest {
1200
+ /** The number of items to retrieve per page */
1201
+ pageSize?: number;
1202
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1203
+ cursor?: string;
1204
+ /** The category's name to retrieve the data for */
1205
+ categoryName?: string;
1206
+ /** The product's name to retrieve the data for */
1207
+ productName?: string;
1208
+ /** The language to retrieve the data in, available for en and de */
1209
+ language?: ListProductsRequestLanguage | (string & {});
1210
+ }
1211
+ export const ListProductsRequest = /*@__PURE__*/ S.suspend(() =>
1212
+ S.Struct({
1213
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1214
+ cursor: S.optional(S.String.pipe(T.Query())),
1215
+ categoryName: S.optional(S.String.pipe(T.Query())),
1216
+ productName: S.optional(S.String.pipe(T.Query())),
1217
+ language: S.optional(ListProductsRequestLanguage.pipe(T.Query())),
1218
+ }).pipe(
1219
+ T.Http({
1220
+ method: "GET",
1221
+ uri: "/v2/products",
1222
+ code: 200,
1223
+ baseUrl: "https://pim.api.stackit.cloud",
1224
+ }),
1225
+ ),
1226
+ ).annotate({
1227
+ identifier: "ListProductsRequest",
1228
+ }) as any as S.Schema<ListProductsRequest>;
1229
+
1230
+ export type ListProductsResponseDataList = Array<PublicProduct>;
1231
+ export const ListProductsResponseDataList = /*@__PURE__*/ S.Array(
1232
+ PublicProduct,
1233
+ ) as any as S.Schema<ListProductsResponseDataList>;
1234
+
1235
+ export interface ListProductsResponse {
1236
+ data?: ListProductsResponseDataList;
1237
+ meta?: MetaInformation;
1238
+ }
1239
+ export const ListProductsResponse = /*@__PURE__*/ S.suspend(() =>
1240
+ S.Struct({
1241
+ data: S.optional(ListProductsResponseDataList),
1242
+ meta: S.optional(MetaInformation),
1243
+ }),
1244
+ ).annotate({
1245
+ identifier: "ListProductsResponse",
1246
+ }) as any as S.Schema<ListProductsResponse>;
1247
+
1248
+ export type ListProductSKUsRequestLanguage = "en" | "de";
1249
+ export const ListProductSKUsRequestLanguage = /*@__PURE__*/ S.String;
1250
+
1251
+ export type ListProductSKUsRequestRegionList = Array<string>;
1252
+ export const ListProductSKUsRequestRegionList = /*@__PURE__*/ S.Array(
1253
+ S.String,
1254
+ ) as any as S.Schema<ListProductSKUsRequestRegionList>;
1255
+
1256
+ export interface ListProductSKUsRequest {
1257
+ /** The unique identifier for a product. */
1258
+ productId: string;
1259
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1260
+ cursor?: string;
1261
+ /** The number of items to retrieve per page */
1262
+ pageSize?: number;
1263
+ /** The language to retrieve the data in, available for en and de */
1264
+ language?: ListProductSKUsRequestLanguage | (string & {});
1265
+ /** The SKU's name to retrieve the data for */
1266
+ skuName?: string;
1267
+ /** The region to retrieve the data in */
1268
+ region?: ListProductSKUsRequestRegionList;
1269
+ }
1270
+ export const ListProductSKUsRequest = /*@__PURE__*/ S.suspend(() =>
1271
+ S.Struct({
1272
+ productId: S.String.pipe(T.Label()),
1273
+ cursor: S.optional(S.String.pipe(T.Query())),
1274
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1275
+ language: S.optional(ListProductSKUsRequestLanguage.pipe(T.Query())),
1276
+ skuName: S.optional(S.String.pipe(T.Query())),
1277
+ region: S.optional(ListProductSKUsRequestRegionList.pipe(T.Query())),
1278
+ }).pipe(
1279
+ T.Http({
1280
+ method: "GET",
1281
+ uri: "/v2/products/{productId}/skus",
1282
+ code: 200,
1283
+ baseUrl: "https://pim.api.stackit.cloud",
1284
+ }),
1285
+ ),
1286
+ ).annotate({
1287
+ identifier: "ListProductSKUsRequest",
1288
+ }) as any as S.Schema<ListProductSKUsRequest>;
1289
+
1290
+ /** List of prices */
1291
+ export type PublicSKUPricesList = Array<Price>;
1292
+ export const PublicSKUPricesList = /*@__PURE__*/ S.Array(
1293
+ Price,
1294
+ ) as any as S.Schema<PublicSKUPricesList>;
1295
+
1296
+ /** List of unique service look up ids (ASCII ordered, ascending) */
1297
+ export type PublicSKUServiceIdList = Array<string>;
1298
+ export const PublicSKUServiceIdList = /*@__PURE__*/ S.Array(
1299
+ S.String,
1300
+ ) as any as S.Schema<PublicSKUServiceIdList>;
1301
+
1302
+ export type PublicSKUProductSpecificAttributes =
1303
+ | PublicDatabaseSpecificAttributes
1304
+ | ArchivingSpecificAttributes
1305
+ | ComputeEngineSpecificAttributes
1306
+ | ComputeEngineSpecificAttributes
1307
+ | NetworkSpecificAttributes
1308
+ | MessagingSpecificAttributes
1309
+ | LoggingAndMonitoringSpecificAttributes
1310
+ | ComputeEngineSpecificAttributes
1311
+ | StorageSpecificAttributes
1312
+ | DataAndAI
1313
+ | RuntimeSpecificAttributes
1314
+ | SupportSpecificAttributes
1315
+ | DeveloperPlatformSpecificAttributes;
1316
+ export const PublicSKUProductSpecificAttributes =
1317
+ /*@__PURE__*/ S.Unknown as any as S.Schema<PublicSKUProductSpecificAttributes>;
1318
+
1319
+ export type PublicSKUSavingsPlansList = Array<PublicSavingsPlan>;
1320
+ export const PublicSKUSavingsPlansList = /*@__PURE__*/ S.Array(
1321
+ PublicSavingsPlan,
1322
+ ) as any as S.Schema<PublicSKUSavingsPlansList>;
1323
+
1324
+ export interface PublicSKU {
1325
+ /** The unique identifier for the category, which is object id from the DB */
1326
+ categoryId: string | null;
1327
+ /** Generic categorization to structure the customer's invoice transparently (e.g. `Compute Engine`, `Database`, `Storage`) */
1328
+ categoryName: string | null;
1329
+ /** CPU overprovisioning */
1330
+ cpuOverprovisioning?: boolean | null;
1331
+ /** Attribute that indicates if product is deprecated or not. */
1332
+ deprecated: string | null;
1333
+ /** Documentation URL */
1334
+ documentation: string | null;
1335
+ finOpsFocus: FinOpsFocus;
1336
+ /** Category designation one level below the generic designation that describes the overall product group to which all the SKUs are allocated to. */
1337
+ generalProductGroup: string | null;
1338
+ /** SKU ID \ Complete SAP article number with prefix. Will be shown on the invoice like this */
1339
+ id: string;
1340
+ /** Language of sku */
1341
+ language?: string;
1342
+ /** Name of license */
1343
+ licenseName?: string | null;
1344
+ /** State of the SKU following the mandatory product‘s maturity model progress (e.g. `beta`, `ga`) */
1345
+ maturityModelState: string | null;
1346
+ /** Metric of service */
1347
+ metric?: string | null;
1348
+ /** How the line item will appear on the bill */
1349
+ name: string | null;
1350
+ /** Attribute that indicates if PriceList is visible or not. */
1351
+ priceListVisibility: string | null;
1352
+ /** List of prices */
1353
+ prices: PublicSKUPricesList;
1354
+ /** The unique identifier for the product, which is object id from the DB */
1355
+ productId: string | null;
1356
+ /** Generic product (e.g. `Windows Server`, `Server Backup Management`, `Server`) */
1357
+ productName: string | null;
1358
+ /** Rate type of service */
1359
+ rateType?: string | null;
1360
+ /** Region of sku */
1361
+ region: string;
1362
+ /** List of unique service look up ids (ASCII ordered, ascending) */
1363
+ serviceId?: PublicSKUServiceIdList;
1364
+ /** Technical differentiation */
1365
+ technicalProductGroup?: string | null;
1366
+ /** Tier max value */
1367
+ tierMaxValue?: number | null;
1368
+ /** Tier min value */
1369
+ tierMinValue?: number | null;
1370
+ /** Service name */
1371
+ title: string;
1372
+ /** The unit of measurement for the invoiced items, as to be displayed on the invoice. */
1373
+ unit: string;
1374
+ /** Unit billing */
1375
+ unitBilling: string;
1376
+ /** Date when the current version was approved and became valid in PIM */
1377
+ validStart: string;
1378
+ /** Number of the revision from PIM */
1379
+ version: string;
1380
+ productSpecificAttributes?: PublicSKUProductSpecificAttributes;
1381
+ savingsPlans?: PublicSKUSavingsPlansList;
1382
+ }
1383
+ export const PublicSKU = /*@__PURE__*/ S.suspend(() =>
1384
+ S.Struct({
1385
+ categoryId: S.NullOr(S.String),
1386
+ categoryName: S.NullOr(S.String),
1387
+ cpuOverprovisioning: S.optional(S.NullOr(S.Boolean)),
1388
+ deprecated: S.NullOr(S.String),
1389
+ documentation: S.NullOr(S.String),
1390
+ finOpsFocus: FinOpsFocus,
1391
+ generalProductGroup: S.NullOr(S.String),
1392
+ id: S.String,
1393
+ language: S.optional(S.String),
1394
+ licenseName: S.optional(S.NullOr(S.String)),
1395
+ maturityModelState: S.NullOr(S.String),
1396
+ metric: S.optional(S.NullOr(S.String)),
1397
+ name: S.NullOr(S.String),
1398
+ priceListVisibility: S.NullOr(S.String),
1399
+ prices: PublicSKUPricesList,
1400
+ productId: S.NullOr(S.String),
1401
+ productName: S.NullOr(S.String),
1402
+ rateType: S.optional(S.NullOr(S.String)),
1403
+ region: S.String,
1404
+ serviceId: S.optional(PublicSKUServiceIdList),
1405
+ technicalProductGroup: S.optional(S.NullOr(S.String)),
1406
+ tierMaxValue: S.optional(S.NullOr(S.Number)),
1407
+ tierMinValue: S.optional(S.NullOr(S.Number)),
1408
+ title: S.String,
1409
+ unit: S.String,
1410
+ unitBilling: S.String,
1411
+ validStart: S.String,
1412
+ version: S.String,
1413
+ productSpecificAttributes: S.optional(PublicSKUProductSpecificAttributes),
1414
+ savingsPlans: S.optional(PublicSKUSavingsPlansList),
1415
+ }),
1416
+ ).annotate({ identifier: "PublicSKU" }) as any as S.Schema<PublicSKU>;
1417
+
1418
+ export type ListProductSKUsResponseDataList = Array<PublicSKU>;
1419
+ export const ListProductSKUsResponseDataList = /*@__PURE__*/ S.Array(
1420
+ PublicSKU,
1421
+ ) as any as S.Schema<ListProductSKUsResponseDataList>;
1422
+
1423
+ export interface ListProductSKUsResponse {
1424
+ data?: ListProductSKUsResponseDataList;
1425
+ meta?: MetaInformation;
1426
+ }
1427
+ export const ListProductSKUsResponse = /*@__PURE__*/ S.suspend(() =>
1428
+ S.Struct({
1429
+ data: S.optional(ListProductSKUsResponseDataList),
1430
+ meta: S.optional(MetaInformation),
1431
+ }),
1432
+ ).annotate({
1433
+ identifier: "ListProductSKUsResponse",
1434
+ }) as any as S.Schema<ListProductSKUsResponse>;
1435
+
1436
+ export type ListProductSTAXSKUsRequestLanguage = "en" | "de";
1437
+ export const ListProductSTAXSKUsRequestLanguage = /*@__PURE__*/ S.String;
1438
+
1439
+ export type ListProductSTAXSKUsRequestRegionList = Array<string>;
1440
+ export const ListProductSTAXSKUsRequestRegionList = /*@__PURE__*/ S.Array(
1441
+ S.String,
1442
+ ) as any as S.Schema<ListProductSTAXSKUsRequestRegionList>;
1443
+
1444
+ export interface ListProductSTAXSKUsRequest {
1445
+ /** The unique identifier for a product. */
1446
+ productId: string;
1447
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1448
+ cursor?: string;
1449
+ /** The number of items to retrieve per page */
1450
+ pageSize?: number;
1451
+ /** The language to retrieve the data in, available for en and de */
1452
+ language?: ListProductSTAXSKUsRequestLanguage | (string & {});
1453
+ /** The SKU's name to retrieve the data for */
1454
+ skuName?: string;
1455
+ /** The region to retrieve the data in */
1456
+ region?: ListProductSTAXSKUsRequestRegionList;
1457
+ }
1458
+ export const ListProductSTAXSKUsRequest = /*@__PURE__*/ S.suspend(() =>
1459
+ S.Struct({
1460
+ productId: S.String.pipe(T.Label()),
1461
+ cursor: S.optional(S.String.pipe(T.Query())),
1462
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1463
+ language: S.optional(ListProductSTAXSKUsRequestLanguage.pipe(T.Query())),
1464
+ skuName: S.optional(S.String.pipe(T.Query())),
1465
+ region: S.optional(ListProductSTAXSKUsRequestRegionList.pipe(T.Query())),
1466
+ }).pipe(
1467
+ T.Http({
1468
+ method: "GET",
1469
+ uri: "/v2/products/{productId}/stackitx/skus",
1470
+ code: 200,
1471
+ baseUrl: "https://pim.api.stackit.cloud",
1472
+ }),
1473
+ ),
1474
+ ).annotate({
1475
+ identifier: "ListProductSTAXSKUsRequest",
1476
+ }) as any as S.Schema<ListProductSTAXSKUsRequest>;
1477
+
1478
+ export type ListProductSTAXSKUsResponseDataList = Array<PublicSKU>;
1479
+ export const ListProductSTAXSKUsResponseDataList = /*@__PURE__*/ S.Array(
1480
+ PublicSKU,
1481
+ ) as any as S.Schema<ListProductSTAXSKUsResponseDataList>;
1482
+
1483
+ export interface ListProductSTAXSKUsResponse {
1484
+ data?: ListProductSTAXSKUsResponseDataList;
1485
+ meta?: MetaInformation;
1486
+ }
1487
+ export const ListProductSTAXSKUsResponse = /*@__PURE__*/ S.suspend(() =>
1488
+ S.Struct({
1489
+ data: S.optional(ListProductSTAXSKUsResponseDataList),
1490
+ meta: S.optional(MetaInformation),
1491
+ }),
1492
+ ).annotate({
1493
+ identifier: "ListProductSTAXSKUsResponse",
1494
+ }) as any as S.Schema<ListProductSTAXSKUsResponse>;
1495
+
1496
+ export type ListSKUsRequestLanguage = "en" | "de";
1497
+ export const ListSKUsRequestLanguage = /*@__PURE__*/ S.String;
1498
+
1499
+ export type ListSKUsRequestRegionList = Array<string>;
1500
+ export const ListSKUsRequestRegionList = /*@__PURE__*/ S.Array(
1501
+ S.String,
1502
+ ) as any as S.Schema<ListSKUsRequestRegionList>;
1503
+
1504
+ export interface ListSKUsRequest {
1505
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1506
+ cursor?: string;
1507
+ /** The number of items to retrieve per page */
1508
+ pageSize?: number;
1509
+ /** The language to retrieve the data in, available for en and de */
1510
+ language?: ListSKUsRequestLanguage | (string & {});
1511
+ /** The category's name to retrieve the data for */
1512
+ categoryName?: string;
1513
+ /** The product's name to retrieve the data for */
1514
+ productName?: string;
1515
+ /** The SKU's name to retrieve the data for */
1516
+ skuName?: string;
1517
+ /** The region to retrieve the data in */
1518
+ region?: ListSKUsRequestRegionList;
1519
+ }
1520
+ export const ListSKUsRequest = /*@__PURE__*/ S.suspend(() =>
1521
+ S.Struct({
1522
+ cursor: S.optional(S.String.pipe(T.Query())),
1523
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1524
+ language: S.optional(ListSKUsRequestLanguage.pipe(T.Query())),
1525
+ categoryName: S.optional(S.String.pipe(T.Query())),
1526
+ productName: S.optional(S.String.pipe(T.Query())),
1527
+ skuName: S.optional(S.String.pipe(T.Query())),
1528
+ region: S.optional(ListSKUsRequestRegionList.pipe(T.Query())),
1529
+ }).pipe(
1530
+ T.Http({
1531
+ method: "GET",
1532
+ uri: "/v2/skus",
1533
+ code: 200,
1534
+ baseUrl: "https://pim.api.stackit.cloud",
1535
+ }),
1536
+ ),
1537
+ ).annotate({
1538
+ identifier: "ListSKUsRequest",
1539
+ }) as any as S.Schema<ListSKUsRequest>;
1540
+
1541
+ export type ListSKUsResponseDataList = Array<PublicSKU>;
1542
+ export const ListSKUsResponseDataList = /*@__PURE__*/ S.Array(
1543
+ PublicSKU,
1544
+ ) as any as S.Schema<ListSKUsResponseDataList>;
1545
+
1546
+ export interface ListSKUsResponse {
1547
+ data?: ListSKUsResponseDataList;
1548
+ meta?: MetaInformation;
1549
+ }
1550
+ export const ListSKUsResponse = /*@__PURE__*/ S.suspend(() =>
1551
+ S.Struct({
1552
+ data: S.optional(ListSKUsResponseDataList),
1553
+ meta: S.optional(MetaInformation),
1554
+ }),
1555
+ ).annotate({
1556
+ identifier: "ListSKUsResponse",
1557
+ }) as any as S.Schema<ListSKUsResponse>;
1558
+
1559
+ export type ListSTAXSKUsRequestLanguage = "en" | "de";
1560
+ export const ListSTAXSKUsRequestLanguage = /*@__PURE__*/ S.String;
1561
+
1562
+ export type ListSTAXSKUsRequestRegionList = Array<string>;
1563
+ export const ListSTAXSKUsRequestRegionList = /*@__PURE__*/ S.Array(
1564
+ S.String,
1565
+ ) as any as S.Schema<ListSTAXSKUsRequestRegionList>;
1566
+
1567
+ export interface ListSTAXSKUsRequest {
1568
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1569
+ cursor?: string;
1570
+ /** The number of items to retrieve per page */
1571
+ pageSize?: number;
1572
+ /** The language to retrieve the data in, available for en and de */
1573
+ language?: ListSTAXSKUsRequestLanguage | (string & {});
1574
+ /** The category's name to retrieve the data for */
1575
+ categoryName?: string;
1576
+ /** The product's name to retrieve the data for */
1577
+ productName?: string;
1578
+ /** The SKU's name to retrieve the data for */
1579
+ skuName?: string;
1580
+ /** The region to retrieve the data in */
1581
+ region?: ListSTAXSKUsRequestRegionList;
1582
+ }
1583
+ export const ListSTAXSKUsRequest = /*@__PURE__*/ S.suspend(() =>
1584
+ S.Struct({
1585
+ cursor: S.optional(S.String.pipe(T.Query())),
1586
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1587
+ language: S.optional(ListSTAXSKUsRequestLanguage.pipe(T.Query())),
1588
+ categoryName: S.optional(S.String.pipe(T.Query())),
1589
+ productName: S.optional(S.String.pipe(T.Query())),
1590
+ skuName: S.optional(S.String.pipe(T.Query())),
1591
+ region: S.optional(ListSTAXSKUsRequestRegionList.pipe(T.Query())),
1592
+ }).pipe(
1593
+ T.Http({
1594
+ method: "GET",
1595
+ uri: "/v2/stackitx/skus",
1596
+ code: 200,
1597
+ baseUrl: "https://pim.api.stackit.cloud",
1598
+ }),
1599
+ ),
1600
+ ).annotate({
1601
+ identifier: "ListSTAXSKUsRequest",
1602
+ }) as any as S.Schema<ListSTAXSKUsRequest>;
1603
+
1604
+ export type ListSTAXSKUsResponseDataList = Array<PublicSKU>;
1605
+ export const ListSTAXSKUsResponseDataList = /*@__PURE__*/ S.Array(
1606
+ PublicSKU,
1607
+ ) as any as S.Schema<ListSTAXSKUsResponseDataList>;
1608
+
1609
+ export interface ListSTAXSKUsResponse {
1610
+ data?: ListSTAXSKUsResponseDataList;
1611
+ meta?: MetaInformation;
1612
+ }
1613
+ export const ListSTAXSKUsResponse = /*@__PURE__*/ S.suspend(() =>
1614
+ S.Struct({
1615
+ data: S.optional(ListSTAXSKUsResponseDataList),
1616
+ meta: S.optional(MetaInformation),
1617
+ }),
1618
+ ).annotate({
1619
+ identifier: "ListSTAXSKUsResponse",
1620
+ }) as any as S.Schema<ListSTAXSKUsResponse>;
1621
+
1622
+ export type SearchSKUsRequestLanguage = "en" | "de";
1623
+ export const SearchSKUsRequestLanguage = /*@__PURE__*/ S.String;
1624
+
1625
+ export interface SearchSKUsRequest {
1626
+ /** The language to retrieve the data in, available for en and de */
1627
+ language?: SearchSKUsRequestLanguage | (string & {});
1628
+ /** The number of items to retrieve per page */
1629
+ pageSize?: number;
1630
+ /** The cursor base64 encoded is used to retrieve the next page of results */
1631
+ cursor?: string;
1632
+ /** Generic categorization to structure the customer's invoice transparently (e.g. `Compute Engine`, `Database`, `Storage`) */
1633
+ categoryName?: string;
1634
+ /** Storage Class type */
1635
+ class?: string;
1636
+ /** Communication Channel */
1637
+ communicationChannel?: string;
1638
+ /** Connection limit per Load Balancer */
1639
+ connectionLimitPerLoadBalancer?: number;
1640
+ /** Contract notice period in days */
1641
+ contractNoticePeriodInDays?: number | null;
1642
+ /** Attribute that indicates if product is deprecated or not. */
1643
+ deprecated?: string;
1644
+ /** diskStoragePerNode */
1645
+ diskStoragePerNode?: string;
1646
+ /** Documentation URL */
1647
+ documentation?: string;
1648
+ /** Escalation availability BC INC */
1649
+ escalationAvailabilityBCINC?: string | null;
1650
+ /** Escalation availability INC */
1651
+ escalationAvailabilityINC?: string | null;
1652
+ /** Escalation availability for Service Requests */
1653
+ escalationAvailabilitySR?: string | null;
1654
+ /** Escalation threshold BC INC (in minutes) */
1655
+ escalationThresholdBCINCInMins?: number | null;
1656
+ /** Escalation threshold INC (in minutes) */
1657
+ escalationThresholdINCInMins?: number | null;
1658
+ /** Escalation threshold for Service Requests */
1659
+ escalationThresholdSRInMins?: number | null;
1660
+ /** Financial Penalty for SLA Violation <80 (in %) */
1661
+ finPenaltySLAVio80Pct?: number | null;
1662
+ /** Financial Penalty for SLA Violation <90 - 80 (in %) */
1663
+ finPenaltySLAVio90_80Pct?: number | null;
1664
+ /** Flavor */
1665
+ flavor?: string;
1666
+ /** Category designation one level below the generic designation that describes the overall product group to which all the SKUs are allocated to. */
1667
+ generalProductGroup?: string;
1668
+ /** Hardware */
1669
+ hardware?: string;
1670
+ /** Initial runtime in months */
1671
+ initialRuntimeInMonths?: number | null;
1672
+ /** Lead time in workdays */
1673
+ leadTimeInWorkDays?: number | null;
1674
+ /** Location */
1675
+ location?: string | null;
1676
+ /** State of the SKU following the mandatory product‘s maturity model progress (e.g. `beta`, `ga`) */
1677
+ maturityModelState?: string;
1678
+ /** Storage maxIOPerSec */
1679
+ maxIOPerSec?: number;
1680
+ /** Storage maxTroughInMB */
1681
+ maxTroughInMB?: number;
1682
+ /** metricPerMin */
1683
+ metricPerMin?: number;
1684
+ /** metro */
1685
+ metro?: boolean;
1686
+ /** Monthly price value that is valid at request time, shown with full precision */
1687
+ monthlyPrice?: string;
1688
+ /** How the line item will appear on the bill */
1689
+ name?: string;
1690
+ /** Nodes */
1691
+ nodes?: number;
1692
+ /** Operating System (e.g. `windows`, `windows-managed`) */
1693
+ os?: string;
1694
+ /** Attribute that indicates if PriceList is visible or not. */
1695
+ priceListVisibility?: string;
1696
+ /** Generic product (e.g. `Windows Server`, `Server Backup Management`, `Server`) */
1697
+ productName?: string;
1698
+ /** Project notice period in workdays */
1699
+ projectNoticePeriodInWorkDays?: number | null;
1700
+ /** RAM (in GB) */
1701
+ ram?: number;
1702
+ /** Reaction time (in minutes) */
1703
+ reactionTimeInMins?: number | null;
1704
+ /** Record limit per zone */
1705
+ recordLimitPerZone?: number;
1706
+ /** Region of sku */
1707
+ region?: string;
1708
+ /** Repeated runtime in months */
1709
+ repeatedRuntimeInMonths?: number | null;
1710
+ /** Response time BC INC (in minutes) */
1711
+ responseTimeBCINCInMins?: number | null;
1712
+ /** Response time INC (in minutes) */
1713
+ responseTimeINCInMins?: number | null;
1714
+ /** Response time (in minutes) for Service Requests */
1715
+ responseTimeSRInMins?: number | null;
1716
+ /** Service hours BC INC */
1717
+ serviceHoursBCINC?: string | null;
1718
+ /** Service hours INC */
1719
+ serviceHoursINC?: string | null;
1720
+ /** Service hours for Service Requests */
1721
+ serviceHoursSR?: string | null;
1722
+ /** List of unique service look up ids (ASCII ordered, ascending) */
1723
+ serviceId?: string;
1724
+ /** SKU ID \ Complete SAP article number with prefix. Will be shown on the invoice like this */
1725
+ sku?: string;
1726
+ /** SLA goal in percentage */
1727
+ slaGoalInPercentage?: number | null;
1728
+ /** Storage (e.g. `image`, `postgresql`, `snapshot`, `volume`) */
1729
+ storage?: string;
1730
+ /** Max Storage in Gb */
1731
+ storageMaxGb?: number;
1732
+ /** Min Storage in Gb */
1733
+ storageMinGb?: number;
1734
+ /** Targets */
1735
+ targets?: number;
1736
+ /** Technical differentiation */
1737
+ technicalProductGroup?: string;
1738
+ /** Service name */
1739
+ title?: string;
1740
+ /** Type (e.g. `single`, `replica`) */
1741
+ type?: string;
1742
+ /** The unit of measurement for the invoiced items, as to be displayed on the invoice. */
1743
+ unit?: string;
1744
+ /** Unit billing */
1745
+ unitBilling?: string;
1746
+ /** Number of vCPU */
1747
+ vCPU?: number;
1748
+ /** Price valid from */
1749
+ validFrom?: string;
1750
+ /** Price value that is valid at request time, shown with full precision with 11 decimals */
1751
+ value?: string;
1752
+ }
1753
+ export const SearchSKUsRequest = /*@__PURE__*/ S.suspend(() =>
1754
+ S.Struct({
1755
+ language: S.optional(SearchSKUsRequestLanguage.pipe(T.Query())),
1756
+ pageSize: S.optional(S.Number.pipe(T.Query())),
1757
+ cursor: S.optional(S.String.pipe(T.Query())),
1758
+ categoryName: S.optional(S.String),
1759
+ class: S.optional(S.String),
1760
+ communicationChannel: S.optional(S.String),
1761
+ connectionLimitPerLoadBalancer: S.optional(S.Number),
1762
+ contractNoticePeriodInDays: S.optional(S.NullOr(S.Number)),
1763
+ deprecated: S.optional(S.String),
1764
+ diskStoragePerNode: S.optional(S.String),
1765
+ documentation: S.optional(S.String),
1766
+ escalationAvailabilityBCINC: S.optional(S.NullOr(S.String)),
1767
+ escalationAvailabilityINC: S.optional(S.NullOr(S.String)),
1768
+ escalationAvailabilitySR: S.optional(S.NullOr(S.String)),
1769
+ escalationThresholdBCINCInMins: S.optional(S.NullOr(S.Number)),
1770
+ escalationThresholdINCInMins: S.optional(S.NullOr(S.Number)),
1771
+ escalationThresholdSRInMins: S.optional(S.NullOr(S.Number)),
1772
+ finPenaltySLAVio80Pct: S.optional(S.NullOr(S.Number)),
1773
+ finPenaltySLAVio90_80Pct: S.optional(
1774
+ S.NullOr(S.Number).pipe(T.Body("finPenaltySLAVio90-80Pct")),
1775
+ ),
1776
+ flavor: S.optional(S.String),
1777
+ generalProductGroup: S.optional(S.String),
1778
+ hardware: S.optional(S.String),
1779
+ initialRuntimeInMonths: S.optional(S.NullOr(S.Number)),
1780
+ leadTimeInWorkDays: S.optional(S.NullOr(S.Number)),
1781
+ location: S.optional(S.NullOr(S.String)),
1782
+ maturityModelState: S.optional(S.String),
1783
+ maxIOPerSec: S.optional(S.Number),
1784
+ maxTroughInMB: S.optional(S.Number),
1785
+ metricPerMin: S.optional(S.Number),
1786
+ metro: S.optional(S.Boolean),
1787
+ monthlyPrice: S.optional(S.String),
1788
+ name: S.optional(S.String),
1789
+ nodes: S.optional(S.Number),
1790
+ os: S.optional(S.String),
1791
+ priceListVisibility: S.optional(S.String),
1792
+ productName: S.optional(S.String),
1793
+ projectNoticePeriodInWorkDays: S.optional(S.NullOr(S.Number)),
1794
+ ram: S.optional(S.Number),
1795
+ reactionTimeInMins: S.optional(S.NullOr(S.Number)),
1796
+ recordLimitPerZone: S.optional(S.Number),
1797
+ region: S.optional(S.String),
1798
+ repeatedRuntimeInMonths: S.optional(S.NullOr(S.Number)),
1799
+ responseTimeBCINCInMins: S.optional(S.NullOr(S.Number)),
1800
+ responseTimeINCInMins: S.optional(S.NullOr(S.Number)),
1801
+ responseTimeSRInMins: S.optional(S.NullOr(S.Number)),
1802
+ serviceHoursBCINC: S.optional(S.NullOr(S.String)),
1803
+ serviceHoursINC: S.optional(S.NullOr(S.String)),
1804
+ serviceHoursSR: S.optional(S.NullOr(S.String)),
1805
+ serviceId: S.optional(S.String),
1806
+ sku: S.optional(S.String),
1807
+ slaGoalInPercentage: S.optional(S.NullOr(S.Number)),
1808
+ storage: S.optional(S.String),
1809
+ storageMaxGb: S.optional(S.Number),
1810
+ storageMinGb: S.optional(S.Number),
1811
+ targets: S.optional(S.Number),
1812
+ technicalProductGroup: S.optional(S.String),
1813
+ title: S.optional(S.String),
1814
+ type: S.optional(S.String),
1815
+ unit: S.optional(S.String),
1816
+ unitBilling: S.optional(S.String),
1817
+ vCPU: S.optional(S.Number),
1818
+ validFrom: S.optional(S.String),
1819
+ value: S.optional(S.String),
1820
+ }).pipe(
1821
+ T.Http({
1822
+ method: "POST",
1823
+ uri: "/v2/skus/search",
1824
+ code: 200,
1825
+ baseUrl: "https://pim.api.stackit.cloud",
1826
+ }),
1827
+ ),
1828
+ ).annotate({
1829
+ identifier: "SearchSKUsRequest",
1830
+ }) as any as S.Schema<SearchSKUsRequest>;
1831
+
1832
+ export type SearchSKUsResponseDataList = Array<PublicSKU>;
1833
+ export const SearchSKUsResponseDataList = /*@__PURE__*/ S.Array(
1834
+ PublicSKU,
1835
+ ) as any as S.Schema<SearchSKUsResponseDataList>;
1836
+
1837
+ export interface SearchSKUsResponse {
1838
+ data?: SearchSKUsResponseDataList;
1839
+ meta?: MetaInformation;
1840
+ }
1841
+ export const SearchSKUsResponse = /*@__PURE__*/ S.suspend(() =>
1842
+ S.Struct({
1843
+ data: S.optional(SearchSKUsResponseDataList),
1844
+ meta: S.optional(MetaInformation),
1845
+ }),
1846
+ ).annotate({
1847
+ identifier: "SearchSKUsResponse",
1848
+ }) as any as S.Schema<SearchSKUsResponse>;
1849
+
1850
+ export type GetCategoryError =
1851
+ | BadRequest
1852
+ | Forbidden
1853
+ | NotFound
1854
+ | StackitOpError;
1855
+ /** Get category by ID Retrieves a specific category by its ID, available for general public. */
1856
+ export const getCategory: API.OperationMethod<
1857
+ GetCategoryRequest,
1858
+ PublicCategory,
1859
+ GetCategoryError,
1860
+ StackitOpContext
1861
+ > = /*@__PURE__*/ API.make(() => ({
1862
+ input: GetCategoryRequest,
1863
+ output: PublicCategory,
1864
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1865
+ protocol: StackitProtocol,
1866
+ retry: Retry.Retry,
1867
+ }));
1868
+
1869
+ export type GetProductError =
1870
+ | BadRequest
1871
+ | Forbidden
1872
+ | NotFound
1873
+ | StackitOpError;
1874
+ /** Get product by ID Retrieves a specific product by its ID, available for general public. */
1875
+ export const getProduct: API.OperationMethod<
1876
+ GetProductRequest,
1877
+ PublicProduct,
1878
+ GetProductError,
1879
+ StackitOpContext
1880
+ > = /*@__PURE__*/ API.make(() => ({
1881
+ input: GetProductRequest,
1882
+ output: PublicProduct,
1883
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1884
+ protocol: StackitProtocol,
1885
+ retry: Retry.Retry,
1886
+ }));
1887
+
1888
+ export type GetProductMarketingDataError =
1889
+ | BadRequest
1890
+ | Forbidden
1891
+ | NotFound
1892
+ | StackitOpError;
1893
+ /** Get marketing data for a product Retrieves the marketing data for a specific product, available for general public. */
1894
+ export const getProductMarketingData: API.OperationMethod<
1895
+ GetProductMarketingDataRequest,
1896
+ PublicMarketingData,
1897
+ GetProductMarketingDataError,
1898
+ StackitOpContext
1899
+ > = /*@__PURE__*/ API.make(() => ({
1900
+ input: GetProductMarketingDataRequest,
1901
+ output: PublicMarketingData,
1902
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1903
+ protocol: StackitProtocol,
1904
+ retry: Retry.Retry,
1905
+ }));
1906
+
1907
+ export type GetSKUError = BadRequest | Forbidden | NotFound | StackitOpError;
1908
+ /** Get SKU by ID Retrieves a specific SKU by its ID, available for general public. */
1909
+ export const getSKU: API.OperationMethod<
1910
+ GetSKURequest,
1911
+ GetSKUResponse,
1912
+ GetSKUError,
1913
+ StackitOpContext
1914
+ > = /*@__PURE__*/ API.make(() => ({
1915
+ input: GetSKURequest,
1916
+ output: GetSKUResponse,
1917
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1918
+ protocol: StackitProtocol,
1919
+ retry: Retry.Retry,
1920
+ }));
1921
+
1922
+ export type GetSTAXSKUError =
1923
+ | BadRequest
1924
+ | Forbidden
1925
+ | NotFound
1926
+ | StackitOpError;
1927
+ /** Get STACKIT:X SKU by ID Retrieves a specific STACKIT:X SKU by its ID, available for general public. */
1928
+ export const getSTAXSKU: API.OperationMethod<
1929
+ GetSTAXSKURequest,
1930
+ GetSTAXSKUResponse,
1931
+ GetSTAXSKUError,
1932
+ StackitOpContext
1933
+ > = /*@__PURE__*/ API.make(() => ({
1934
+ input: GetSTAXSKURequest,
1935
+ output: GetSTAXSKUResponse,
1936
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1937
+ protocol: StackitProtocol,
1938
+ retry: Retry.Retry,
1939
+ }));
1940
+
1941
+ export type ListCategoriesError = BadRequest | Forbidden | StackitOpError;
1942
+ /** List all categories Returns all categories, available for general public. */
1943
+ export const listCategories: API.OperationMethod<
1944
+ ListCategoriesRequest,
1945
+ ListCategoriesResponse,
1946
+ ListCategoriesError,
1947
+ StackitOpContext
1948
+ > = /*@__PURE__*/ API.make(() => ({
1949
+ input: ListCategoriesRequest,
1950
+ output: ListCategoriesResponse,
1951
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1952
+ protocol: StackitProtocol,
1953
+ retry: Retry.Retry,
1954
+ }));
1955
+
1956
+ export type ListCategoryProductsError =
1957
+ | BadRequest
1958
+ | Forbidden
1959
+ | NotFound
1960
+ | StackitOpError;
1961
+ /** List products in a category Retrieves a specific category's products, available for general public. */
1962
+ export const listCategoryProducts: API.OperationMethod<
1963
+ ListCategoryProductsRequest,
1964
+ ListCategoryProductsResponse,
1965
+ ListCategoryProductsError,
1966
+ StackitOpContext
1967
+ > = /*@__PURE__*/ API.make(() => ({
1968
+ input: ListCategoryProductsRequest,
1969
+ output: ListCategoryProductsResponse,
1970
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1971
+ protocol: StackitProtocol,
1972
+ retry: Retry.Retry,
1973
+ }));
1974
+
1975
+ export type ListMarketingDataError = BadRequest | Forbidden | StackitOpError;
1976
+ /** List all marketing materials Retrieves a list of all marketing materials for all products, available for general public. */
1977
+ export const listMarketingData: API.OperationMethod<
1978
+ ListMarketingDataRequest,
1979
+ ListMarketingDataResponse,
1980
+ ListMarketingDataError,
1981
+ StackitOpContext
1982
+ > = /*@__PURE__*/ API.make(() => ({
1983
+ input: ListMarketingDataRequest,
1984
+ output: ListMarketingDataResponse,
1985
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1986
+ protocol: StackitProtocol,
1987
+ retry: Retry.Retry,
1988
+ }));
1989
+
1990
+ export type ListProductsError = BadRequest | Forbidden | StackitOpError;
1991
+ /** List all products Retrieves a list of all products, available for general public. */
1992
+ export const listProducts: API.OperationMethod<
1993
+ ListProductsRequest,
1994
+ ListProductsResponse,
1995
+ ListProductsError,
1996
+ StackitOpContext
1997
+ > = /*@__PURE__*/ API.make(() => ({
1998
+ input: ListProductsRequest,
1999
+ output: ListProductsResponse,
2000
+ errors: [BadRequest, Forbidden, UnknownStackitError],
2001
+ protocol: StackitProtocol,
2002
+ retry: Retry.Retry,
2003
+ }));
2004
+
2005
+ export type ListProductSKUsError =
2006
+ | BadRequest
2007
+ | Forbidden
2008
+ | NotFound
2009
+ | StackitOpError;
2010
+ /** List SKUs for a product Retrieves a list of all SKUs of a product, available for general public. */
2011
+ export const listProductSKUs: API.OperationMethod<
2012
+ ListProductSKUsRequest,
2013
+ ListProductSKUsResponse,
2014
+ ListProductSKUsError,
2015
+ StackitOpContext
2016
+ > = /*@__PURE__*/ API.make(() => ({
2017
+ input: ListProductSKUsRequest,
2018
+ output: ListProductSKUsResponse,
2019
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
2020
+ protocol: StackitProtocol,
2021
+ retry: Retry.Retry,
2022
+ }));
2023
+
2024
+ export type ListProductSTAXSKUsError =
2025
+ | BadRequest
2026
+ | Forbidden
2027
+ | NotFound
2028
+ | StackitOpError;
2029
+ /** List STACKIT:X SKUs for a product Retrieves a list of all STACKIT:X SKUs of a product, available for general public. */
2030
+ export const listProductSTAXSKUs: API.OperationMethod<
2031
+ ListProductSTAXSKUsRequest,
2032
+ ListProductSTAXSKUsResponse,
2033
+ ListProductSTAXSKUsError,
2034
+ StackitOpContext
2035
+ > = /*@__PURE__*/ API.make(() => ({
2036
+ input: ListProductSTAXSKUsRequest,
2037
+ output: ListProductSTAXSKUsResponse,
2038
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
2039
+ protocol: StackitProtocol,
2040
+ retry: Retry.Retry,
2041
+ }));
2042
+
2043
+ export type ListSKUsError = BadRequest | Forbidden | StackitOpError;
2044
+ /** List all SKUs Retrieves a list of all SKUs, available for general public. */
2045
+ export const listSKUs: API.OperationMethod<
2046
+ ListSKUsRequest,
2047
+ ListSKUsResponse,
2048
+ ListSKUsError,
2049
+ StackitOpContext
2050
+ > = /*@__PURE__*/ API.make(() => ({
2051
+ input: ListSKUsRequest,
2052
+ output: ListSKUsResponse,
2053
+ errors: [BadRequest, Forbidden, UnknownStackitError],
2054
+ protocol: StackitProtocol,
2055
+ retry: Retry.Retry,
2056
+ }));
2057
+
2058
+ export type ListSTAXSKUsError = BadRequest | Forbidden | StackitOpError;
2059
+ /** List all STACKIT:X SKUs Get all STACKIT:X SKUs data that has maturity model different than alpha. */
2060
+ export const listSTAXSKUs: API.OperationMethod<
2061
+ ListSTAXSKUsRequest,
2062
+ ListSTAXSKUsResponse,
2063
+ ListSTAXSKUsError,
2064
+ StackitOpContext
2065
+ > = /*@__PURE__*/ API.make(() => ({
2066
+ input: ListSTAXSKUsRequest,
2067
+ output: ListSTAXSKUsResponse,
2068
+ errors: [BadRequest, Forbidden, UnknownStackitError],
2069
+ protocol: StackitProtocol,
2070
+ retry: Retry.Retry,
2071
+ }));
2072
+
2073
+ export type SearchSKUsError =
2074
+ | BadRequest
2075
+ | Forbidden
2076
+ | NotFound
2077
+ | StackitOpError;
2078
+ /** Performs a SKUs search with specific attributes Accepts a JSON object with a predefined set of optional attributes to be used as search criteria. */
2079
+ export const searchSKUs: API.OperationMethod<
2080
+ SearchSKUsRequest,
2081
+ SearchSKUsResponse,
2082
+ SearchSKUsError,
2083
+ StackitOpContext
2084
+ > = /*@__PURE__*/ API.make(() => ({
2085
+ input: SearchSKUsRequest,
2086
+ output: SearchSKUsResponse,
2087
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
2088
+ protocol: StackitProtocol,
2089
+ retry: Retry.Retry,
2090
+ }));