@distilled.cloud/stackit 0.0.0-placeholder → 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.
- package/LICENSE +201 -0
- package/README.md +34 -0
- package/lib/credentials.d.ts +29 -0
- package/lib/credentials.d.ts.map +1 -0
- package/lib/credentials.js +49 -0
- package/lib/credentials.js.map +1 -0
- package/lib/errors.d.ts +36 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +26 -0
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +30 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +30 -0
- package/lib/index.js.map +1 -0
- package/lib/pagination.d.ts +9 -0
- package/lib/pagination.d.ts.map +1 -0
- package/lib/pagination.js +48 -0
- package/lib/pagination.js.map +1 -0
- package/lib/protocol.d.ts +32 -0
- package/lib/protocol.d.ts.map +1 -0
- package/lib/protocol.js +148 -0
- package/lib/protocol.js.map +1 -0
- package/lib/response-validation.test.d.ts +4 -0
- package/lib/response-validation.test.d.ts.map +1 -0
- package/lib/response-validation.test.js +31 -0
- package/lib/response-validation.test.js.map +1 -0
- package/lib/retry.d.ts +31 -0
- package/lib/retry.d.ts.map +1 -0
- package/lib/retry.js +31 -0
- package/lib/retry.js.map +1 -0
- package/lib/services/alb.d.ts +603 -0
- package/lib/services/alb.d.ts.map +1 -0
- package/lib/services/alb.js +562 -0
- package/lib/services/alb.js.map +1 -0
- package/lib/services/alb_waf.d.ts +526 -0
- package/lib/services/alb_waf.d.ts.map +1 -0
- package/lib/services/alb_waf.js +545 -0
- package/lib/services/alb_waf.js.map +1 -0
- package/lib/services/authorization.d.ts +251 -0
- package/lib/services/authorization.d.ts.map +1 -0
- package/lib/services/authorization.js +353 -0
- package/lib/services/authorization.js.map +1 -0
- package/lib/services/automation.d.ts +358 -0
- package/lib/services/automation.d.ts.map +1 -0
- package/lib/services/automation.js +426 -0
- package/lib/services/automation.js.map +1 -0
- package/lib/services/cdn.d.ts +1239 -0
- package/lib/services/cdn.d.ts.map +1 -0
- package/lib/services/cdn.js +992 -0
- package/lib/services/cdn.js.map +1 -0
- package/lib/services/certificates.d.ts +201 -0
- package/lib/services/certificates.d.ts.map +1 -0
- package/lib/services/certificates.js +197 -0
- package/lib/services/certificates.js.map +1 -0
- package/lib/services/cost.d.ts +222 -0
- package/lib/services/cost.d.ts.map +1 -0
- package/lib/services/cost.js +188 -0
- package/lib/services/cost.js.map +1 -0
- package/lib/services/dns.d.ts +875 -0
- package/lib/services/dns.d.ts.map +1 -0
- package/lib/services/dns.js +854 -0
- package/lib/services/dns.js.map +1 -0
- package/lib/services/dremio.d.ts +358 -0
- package/lib/services/dremio.d.ts.map +1 -0
- package/lib/services/dremio.js +339 -0
- package/lib/services/dremio.js.map +1 -0
- package/lib/services/edge.d.ts +312 -0
- package/lib/services/edge.d.ts.map +1 -0
- package/lib/services/edge.js +375 -0
- package/lib/services/edge.js.map +1 -0
- package/lib/services/functions.d.ts +409 -0
- package/lib/services/functions.d.ts.map +1 -0
- package/lib/services/functions.js +423 -0
- package/lib/services/functions.js.map +1 -0
- package/lib/services/git.d.ts +497 -0
- package/lib/services/git.d.ts.map +1 -0
- package/lib/services/git.js +552 -0
- package/lib/services/git.js.map +1 -0
- package/lib/services/iaas.d.ts +2965 -0
- package/lib/services/iaas.d.ts.map +1 -0
- package/lib/services/iaas.js +3768 -0
- package/lib/services/iaas.js.map +1 -0
- package/lib/services/index.d.ts +51 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/index.js +52 -0
- package/lib/services/index.js.map +1 -0
- package/lib/services/intake.d.ts +555 -0
- package/lib/services/intake.d.ts.map +1 -0
- package/lib/services/intake.js +513 -0
- package/lib/services/intake.js.map +1 -0
- package/lib/services/kms.d.ts +654 -0
- package/lib/services/kms.d.ts.map +1 -0
- package/lib/services/kms.js +703 -0
- package/lib/services/kms.js.map +1 -0
- package/lib/services/lb_ip_lists.d.ts +162 -0
- package/lib/services/lb_ip_lists.d.ts.map +1 -0
- package/lib/services/lb_ip_lists.js +173 -0
- package/lib/services/lb_ip_lists.js.map +1 -0
- package/lib/services/load_balancer.d.ts +563 -0
- package/lib/services/load_balancer.d.ts.map +1 -0
- package/lib/services/load_balancer.js +542 -0
- package/lib/services/load_balancer.js.map +1 -0
- package/lib/services/logme.d.ts +516 -0
- package/lib/services/logme.d.ts.map +1 -0
- package/lib/services/logme.js +636 -0
- package/lib/services/logme.js.map +1 -0
- package/lib/services/logs.d.ts +436 -0
- package/lib/services/logs.d.ts.map +1 -0
- package/lib/services/logs.js +498 -0
- package/lib/services/logs.js.map +1 -0
- package/lib/services/mariadb.d.ts +479 -0
- package/lib/services/mariadb.d.ts.map +1 -0
- package/lib/services/mariadb.js +611 -0
- package/lib/services/mariadb.js.map +1 -0
- package/lib/services/model_experiments.d.ts +306 -0
- package/lib/services/model_experiments.d.ts.map +1 -0
- package/lib/services/model_experiments.js +356 -0
- package/lib/services/model_experiments.js.map +1 -0
- package/lib/services/model_serving.d.ts +289 -0
- package/lib/services/model_serving.d.ts.map +1 -0
- package/lib/services/model_serving.js +319 -0
- package/lib/services/model_serving.js.map +1 -0
- package/lib/services/mongodb_flex.d.ts +826 -0
- package/lib/services/mongodb_flex.d.ts.map +1 -0
- package/lib/services/mongodb_flex.js +889 -0
- package/lib/services/mongodb_flex.js.map +1 -0
- package/lib/services/object_storage.d.ts +446 -0
- package/lib/services/object_storage.d.ts.map +1 -0
- package/lib/services/object_storage.js +577 -0
- package/lib/services/object_storage.js.map +1 -0
- package/lib/services/observability.d.ts +2750 -0
- package/lib/services/observability.d.ts.map +1 -0
- package/lib/services/observability.js +3407 -0
- package/lib/services/observability.js.map +1 -0
- package/lib/services/opensearch.d.ts +505 -0
- package/lib/services/opensearch.d.ts.map +1 -0
- package/lib/services/opensearch.js +623 -0
- package/lib/services/opensearch.js.map +1 -0
- package/lib/services/pim.d.ts +997 -0
- package/lib/services/pim.d.ts.map +1 -0
- package/lib/services/pim.js +789 -0
- package/lib/services/pim.js.map +1 -0
- package/lib/services/postgres_flex.d.ts +854 -0
- package/lib/services/postgres_flex.d.ts.map +1 -0
- package/lib/services/postgres_flex.js +1018 -0
- package/lib/services/postgres_flex.js.map +1 -0
- package/lib/services/pubsub.d.ts +489 -0
- package/lib/services/pubsub.d.ts.map +1 -0
- package/lib/services/pubsub.js +614 -0
- package/lib/services/pubsub.js.map +1 -0
- package/lib/services/rabbitmq.d.ts +523 -0
- package/lib/services/rabbitmq.d.ts.map +1 -0
- package/lib/services/rabbitmq.js +636 -0
- package/lib/services/rabbitmq.js.map +1 -0
- package/lib/services/registry.d.ts +212 -0
- package/lib/services/registry.d.ts.map +1 -0
- package/lib/services/registry.js +221 -0
- package/lib/services/registry.js.map +1 -0
- package/lib/services/resource_manager.d.ts +458 -0
- package/lib/services/resource_manager.d.ts.map +1 -0
- package/lib/services/resource_manager.js +503 -0
- package/lib/services/resource_manager.js.map +1 -0
- package/lib/services/run_command.d.ts +175 -0
- package/lib/services/run_command.d.ts.map +1 -0
- package/lib/services/run_command.js +203 -0
- package/lib/services/run_command.js.map +1 -0
- package/lib/services/sca.d.ts +541 -0
- package/lib/services/sca.d.ts.map +1 -0
- package/lib/services/sca.js +478 -0
- package/lib/services/sca.js.map +1 -0
- package/lib/services/scf.d.ts +498 -0
- package/lib/services/scf.d.ts.map +1 -0
- package/lib/services/scf.js +718 -0
- package/lib/services/scf.js.map +1 -0
- package/lib/services/secrets_manager.d.ts +505 -0
- package/lib/services/secrets_manager.d.ts.map +1 -0
- package/lib/services/secrets_manager.js +659 -0
- package/lib/services/secrets_manager.js.map +1 -0
- package/lib/services/server_backup.d.ts +380 -0
- package/lib/services/server_backup.d.ts.map +1 -0
- package/lib/services/server_backup.js +474 -0
- package/lib/services/server_backup.js.map +1 -0
- package/lib/services/server_update.d.ts +292 -0
- package/lib/services/server_update.d.ts.map +1 -0
- package/lib/services/server_update.js +364 -0
- package/lib/services/server_update.js.map +1 -0
- package/lib/services/service_account.d.ts +465 -0
- package/lib/services/service_account.d.ts.map +1 -0
- package/lib/services/service_account.js +523 -0
- package/lib/services/service_account.js.map +1 -0
- package/lib/services/service_enablement.d.ts +149 -0
- package/lib/services/service_enablement.d.ts.map +1 -0
- package/lib/services/service_enablement.js +159 -0
- package/lib/services/service_enablement.js.map +1 -0
- package/lib/services/sfs.d.ts +721 -0
- package/lib/services/sfs.d.ts.map +1 -0
- package/lib/services/sfs.js +845 -0
- package/lib/services/sfs.js.map +1 -0
- package/lib/services/ske.d.ts +536 -0
- package/lib/services/ske.d.ts.map +1 -0
- package/lib/services/ske.js +598 -0
- package/lib/services/ske.js.map +1 -0
- package/lib/services/sqlserverflex.d.ts +956 -0
- package/lib/services/sqlserverflex.d.ts.map +1 -0
- package/lib/services/sqlserverflex.js +1087 -0
- package/lib/services/sqlserverflex.js.map +1 -0
- package/lib/services/stackit_marketplace.d.ts +288 -0
- package/lib/services/stackit_marketplace.d.ts.map +1 -0
- package/lib/services/stackit_marketplace.js +393 -0
- package/lib/services/stackit_marketplace.js.map +1 -0
- package/lib/services/telemetry_link.d.ts +443 -0
- package/lib/services/telemetry_link.d.ts.map +1 -0
- package/lib/services/telemetry_link.js +550 -0
- package/lib/services/telemetry_link.js.map +1 -0
- package/lib/services/telemetry_router.d.ts +493 -0
- package/lib/services/telemetry_router.d.ts.map +1 -0
- package/lib/services/telemetry_router.js +523 -0
- package/lib/services/telemetry_router.js.map +1 -0
- package/lib/services/ufw.d.ts +295 -0
- package/lib/services/ufw.d.ts.map +1 -0
- package/lib/services/ufw.js +301 -0
- package/lib/services/ufw.js.map +1 -0
- package/lib/services/valkey.d.ts +505 -0
- package/lib/services/valkey.d.ts.map +1 -0
- package/lib/services/valkey.js +627 -0
- package/lib/services/valkey.js.map +1 -0
- package/lib/services/vpn.d.ts +1024 -0
- package/lib/services/vpn.d.ts.map +1 -0
- package/lib/services/vpn.js +1013 -0
- package/lib/services/vpn.js.map +1 -0
- package/lib/services/workflows.d.ts +600 -0
- package/lib/services/workflows.d.ts.map +1 -0
- package/lib/services/workflows.js +556 -0
- package/lib/services/workflows.js.map +1 -0
- package/lib/traits.d.ts +24 -0
- package/lib/traits.d.ts.map +1 -0
- package/lib/traits.js +15 -0
- package/lib/traits.js.map +1 -0
- package/package.json +78 -7
- package/src/credentials.ts +90 -0
- package/src/errors.ts +50 -0
- package/src/index.ts +34 -0
- package/src/pagination.ts +73 -0
- package/src/protocol.ts +243 -0
- package/src/response-validation.test.ts +45 -0
- package/src/retry.ts +53 -0
- package/src/services/alb.ts +1409 -0
- package/src/services/alb_waf.ts +1347 -0
- package/src/services/authorization.ts +740 -0
- package/src/services/automation.ts +966 -0
- package/src/services/cdn.ts +2736 -0
- package/src/services/certificates.ts +450 -0
- package/src/services/cost.ts +484 -0
- package/src/services/dns.ts +2271 -0
- package/src/services/dremio.ts +803 -0
- package/src/services/edge.ts +839 -0
- package/src/services/functions.ts +1010 -0
- package/src/services/git.ts +1275 -0
- package/src/services/iaas.ts +8670 -0
- package/src/services/index.ts +51 -0
- package/src/services/intake.ts +1233 -0
- package/src/services/kms.ts +1638 -0
- package/src/services/lb_ip_lists.ts +377 -0
- package/src/services/load_balancer.ts +1342 -0
- package/src/services/logme.ts +1379 -0
- package/src/services/logs.ts +1150 -0
- package/src/services/mariadb.ts +1293 -0
- package/src/services/model_experiments.ts +797 -0
- package/src/services/model_serving.ts +697 -0
- package/src/services/mongodb_flex.ts +2078 -0
- package/src/services/object_storage.ts +1248 -0
- package/src/services/observability.ts +7856 -0
- package/src/services/opensearch.ts +1354 -0
- package/src/services/pim.ts +2090 -0
- package/src/services/postgres_flex.ts +2326 -0
- package/src/services/pubsub.ts +1336 -0
- package/src/services/rabbitmq.ts +1402 -0
- package/src/services/registry.ts +494 -0
- package/src/services/resource_manager.ts +1155 -0
- package/src/services/run_command.ts +441 -0
- package/src/services/sca.ts +1222 -0
- package/src/services/scf.ts +1537 -0
- package/src/services/secrets_manager.ts +1399 -0
- package/src/services/server_backup.ts +1032 -0
- package/src/services/server_update.ts +767 -0
- package/src/services/service_account.ts +1208 -0
- package/src/services/service_enablement.ts +359 -0
- package/src/services/sfs.ts +1913 -0
- package/src/services/ske.ts +1408 -0
- package/src/services/sqlserverflex.ts +2543 -0
- package/src/services/stackit_marketplace.ts +853 -0
- package/src/services/telemetry_link.ts +1245 -0
- package/src/services/telemetry_router.ts +1205 -0
- package/src/services/ufw.ts +704 -0
- package/src/services/valkey.ts +1357 -0
- package/src/services/vpn.ts +2554 -0
- package/src/services/workflows.ts +1361 -0
- package/src/traits.ts +65 -0
|
@@ -0,0 +1,1342 @@
|
|
|
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 Redacted from "effect/Redacted";
|
|
4
|
+
import * as API from "@distilled.cloud/core/api";
|
|
5
|
+
import * as C from "@distilled.cloud/core/category";
|
|
6
|
+
import * as T from "../traits.ts";
|
|
7
|
+
import {
|
|
8
|
+
StackitProtocol,
|
|
9
|
+
type StackitOpError,
|
|
10
|
+
type StackitOpContext,
|
|
11
|
+
} from "../protocol.ts";
|
|
12
|
+
import { UnknownStackitError } from "../errors.ts";
|
|
13
|
+
import * as Retry from "../retry.ts";
|
|
14
|
+
|
|
15
|
+
export type { StackitOpError, StackitOpContext };
|
|
16
|
+
|
|
17
|
+
export class BadRequest
|
|
18
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
19
|
+
/*@__PURE__*/ S.TaggedError<BadRequest>()("BadRequest", {
|
|
20
|
+
code: S.Number,
|
|
21
|
+
message: S.String,
|
|
22
|
+
}).pipe(C.withBadRequestError),
|
|
23
|
+
[{ status: 400 }],
|
|
24
|
+
) {}
|
|
25
|
+
|
|
26
|
+
export class Conflict
|
|
27
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
28
|
+
/*@__PURE__*/ S.TaggedError<Conflict>()("Conflict", {
|
|
29
|
+
code: S.Number,
|
|
30
|
+
message: S.String,
|
|
31
|
+
}).pipe(C.withConflictError),
|
|
32
|
+
[{ status: 409 }],
|
|
33
|
+
) {}
|
|
34
|
+
|
|
35
|
+
export class Forbidden
|
|
36
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
37
|
+
/*@__PURE__*/ S.TaggedError<Forbidden>()("Forbidden", {
|
|
38
|
+
code: S.Number,
|
|
39
|
+
message: S.String,
|
|
40
|
+
}).pipe(C.withAuthError),
|
|
41
|
+
[{ status: 403 }],
|
|
42
|
+
) {}
|
|
43
|
+
|
|
44
|
+
export class NotFound
|
|
45
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
46
|
+
/*@__PURE__*/ S.TaggedError<NotFound>()("NotFound", {
|
|
47
|
+
code: S.Number,
|
|
48
|
+
message: S.String,
|
|
49
|
+
}).pipe(C.withBadRequestError),
|
|
50
|
+
[{ status: 404 }],
|
|
51
|
+
) {}
|
|
52
|
+
|
|
53
|
+
export interface CreateCredentialsRequest {
|
|
54
|
+
projectId: string;
|
|
55
|
+
region: string;
|
|
56
|
+
/** Credential name */
|
|
57
|
+
displayName?: string;
|
|
58
|
+
/** A valid password used for an existing STACKIT Observability instance, which is used during basic auth. */
|
|
59
|
+
password?: string | Redacted.Redacted<string>;
|
|
60
|
+
/** A valid username used for an existing STACKIT Observability instance, which is used during basic auth. */
|
|
61
|
+
username?: string;
|
|
62
|
+
}
|
|
63
|
+
export const CreateCredentialsRequest = /*@__PURE__*/ S.suspend(() =>
|
|
64
|
+
S.Struct({
|
|
65
|
+
projectId: S.String.pipe(T.Label()),
|
|
66
|
+
region: S.String.pipe(T.Label()),
|
|
67
|
+
displayName: S.optional(S.String),
|
|
68
|
+
password: S.optional(S.String.pipe(T.SensitiveValue({}))),
|
|
69
|
+
username: S.optional(S.String),
|
|
70
|
+
}).pipe(
|
|
71
|
+
T.Http({
|
|
72
|
+
method: "POST",
|
|
73
|
+
uri: "/v2/projects/{projectId}/regions/{region}/credentials",
|
|
74
|
+
code: 200,
|
|
75
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
76
|
+
}),
|
|
77
|
+
),
|
|
78
|
+
).annotate({
|
|
79
|
+
identifier: "CreateCredentialsRequest",
|
|
80
|
+
}) as any as S.Schema<CreateCredentialsRequest>;
|
|
81
|
+
|
|
82
|
+
export interface CredentialsResponse {
|
|
83
|
+
/** The credentials reference can be used for observability of the Load Balancer. */
|
|
84
|
+
credentialsRef?: string;
|
|
85
|
+
/** Credential name */
|
|
86
|
+
displayName?: string;
|
|
87
|
+
/** Region of the Credential */
|
|
88
|
+
region?: string;
|
|
89
|
+
/** The username used for the STACKIT Observability instance */
|
|
90
|
+
username?: string;
|
|
91
|
+
}
|
|
92
|
+
export const CredentialsResponse = /*@__PURE__*/ S.suspend(() =>
|
|
93
|
+
S.Struct({
|
|
94
|
+
credentialsRef: S.optional(S.String),
|
|
95
|
+
displayName: S.optional(S.String),
|
|
96
|
+
region: S.optional(S.String),
|
|
97
|
+
username: S.optional(S.String),
|
|
98
|
+
}),
|
|
99
|
+
).annotate({
|
|
100
|
+
identifier: "CredentialsResponse",
|
|
101
|
+
}) as any as S.Schema<CredentialsResponse>;
|
|
102
|
+
|
|
103
|
+
export interface CreateCredentialsResponse {
|
|
104
|
+
credential?: CredentialsResponse;
|
|
105
|
+
}
|
|
106
|
+
export const CreateCredentialsResponse = /*@__PURE__*/ S.suspend(() =>
|
|
107
|
+
S.Struct({
|
|
108
|
+
credential: S.optional(CredentialsResponse),
|
|
109
|
+
}),
|
|
110
|
+
).annotate({
|
|
111
|
+
identifier: "CreateCredentialsResponse",
|
|
112
|
+
}) as any as S.Schema<CreateCredentialsResponse>;
|
|
113
|
+
|
|
114
|
+
/** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
|
|
115
|
+
export type CreateLoadBalancerRequestLabelsMap = {
|
|
116
|
+
[key: string]: string | undefined;
|
|
117
|
+
};
|
|
118
|
+
export const CreateLoadBalancerRequestLabelsMap = /*@__PURE__*/ S.Record(
|
|
119
|
+
S.String,
|
|
120
|
+
S.String,
|
|
121
|
+
) as any as S.Schema<CreateLoadBalancerRequestLabelsMap>;
|
|
122
|
+
|
|
123
|
+
/** Protocol is the highest network protocol we understand to load balance. Currently only PROTOCOL_TCP, PROTOCOL_TCP_PROXY and PROTOCOL_TLS_PASSTHROUGH are supported. */
|
|
124
|
+
export type ListenerInputProtocol =
|
|
125
|
+
| "PROTOCOL_UNSPECIFIED"
|
|
126
|
+
| "PROTOCOL_TCP"
|
|
127
|
+
| "PROTOCOL_UDP"
|
|
128
|
+
| "PROTOCOL_TCP_PROXY"
|
|
129
|
+
| "PROTOCOL_TLS_PASSTHROUGH";
|
|
130
|
+
export const ListenerInputProtocol = /*@__PURE__*/ S.String;
|
|
131
|
+
|
|
132
|
+
export interface ServerNameIndicator {
|
|
133
|
+
/** The domain name for this SNI config. */
|
|
134
|
+
name?: string;
|
|
135
|
+
}
|
|
136
|
+
export const ServerNameIndicator = /*@__PURE__*/ S.suspend(() =>
|
|
137
|
+
S.Struct({
|
|
138
|
+
name: S.optional(S.String),
|
|
139
|
+
}),
|
|
140
|
+
).annotate({
|
|
141
|
+
identifier: "ServerNameIndicator",
|
|
142
|
+
}) as any as S.Schema<ServerNameIndicator>;
|
|
143
|
+
|
|
144
|
+
/** Server Name Indicators config for domains to be routed to the desired target pool for this listener. */
|
|
145
|
+
export type ListenerInputServerNameIndicatorsList = Array<ServerNameIndicator>;
|
|
146
|
+
export const ListenerInputServerNameIndicatorsList = /*@__PURE__*/ S.Array(
|
|
147
|
+
ServerNameIndicator,
|
|
148
|
+
) as any as S.Schema<ListenerInputServerNameIndicatorsList>;
|
|
149
|
+
|
|
150
|
+
/** ProtocolOptionsTCP options to be configured for the PROTOCOL_TCP, PROTOCOL_TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH protocols. TCP options for the SNI listeners with the same port must be the same. */
|
|
151
|
+
export interface OptionsTCP {
|
|
152
|
+
/** The connection idle timeout to be used with the protocol. The default value is set to 5 minutes, and the maximum value is one hour. */
|
|
153
|
+
idleTimeout?: string;
|
|
154
|
+
}
|
|
155
|
+
export const OptionsTCP = /*@__PURE__*/ S.suspend(() =>
|
|
156
|
+
S.Struct({
|
|
157
|
+
idleTimeout: S.optional(S.String),
|
|
158
|
+
}),
|
|
159
|
+
).annotate({ identifier: "OptionsTCP" }) as any as S.Schema<OptionsTCP>;
|
|
160
|
+
|
|
161
|
+
/** ProtocolOptionsUDP options to be configured for the PROTOCOL_UDP protocol. */
|
|
162
|
+
export interface OptionsUDP {
|
|
163
|
+
/** The connection idle timeout to be used with the protocol. The default value is set to 1 minute, and the maximum value is 2 minutes. */
|
|
164
|
+
idleTimeout?: string;
|
|
165
|
+
}
|
|
166
|
+
export const OptionsUDP = /*@__PURE__*/ S.suspend(() =>
|
|
167
|
+
S.Struct({
|
|
168
|
+
idleTimeout: S.optional(S.String),
|
|
169
|
+
}),
|
|
170
|
+
).annotate({ identifier: "OptionsUDP" }) as any as S.Schema<OptionsUDP>;
|
|
171
|
+
|
|
172
|
+
export interface ListenerInput {
|
|
173
|
+
displayName?: string;
|
|
174
|
+
/** Port number where we listen for traffic */
|
|
175
|
+
port?: number;
|
|
176
|
+
/** Protocol is the highest network protocol we understand to load balance. Currently only PROTOCOL_TCP, PROTOCOL_TCP_PROXY and PROTOCOL_TLS_PASSTHROUGH are supported. */
|
|
177
|
+
protocol?: ListenerInputProtocol | (string & {});
|
|
178
|
+
/** Server Name Indicators config for domains to be routed to the desired target pool for this listener. */
|
|
179
|
+
serverNameIndicators?: ListenerInputServerNameIndicatorsList;
|
|
180
|
+
/** Reference target pool by target pool name. */
|
|
181
|
+
targetPool?: string;
|
|
182
|
+
tcp?: OptionsTCP;
|
|
183
|
+
udp?: OptionsUDP;
|
|
184
|
+
}
|
|
185
|
+
export const ListenerInput = /*@__PURE__*/ S.suspend(() =>
|
|
186
|
+
S.Struct({
|
|
187
|
+
displayName: S.optional(S.String),
|
|
188
|
+
port: S.optional(S.Number),
|
|
189
|
+
protocol: S.optional(ListenerInputProtocol),
|
|
190
|
+
serverNameIndicators: S.optional(ListenerInputServerNameIndicatorsList),
|
|
191
|
+
targetPool: S.optional(S.String),
|
|
192
|
+
tcp: S.optional(OptionsTCP),
|
|
193
|
+
udp: S.optional(OptionsUDP),
|
|
194
|
+
}),
|
|
195
|
+
).annotate({ identifier: "ListenerInput" }) as any as S.Schema<ListenerInput>;
|
|
196
|
+
|
|
197
|
+
/** There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. */
|
|
198
|
+
export type CreateLoadBalancerRequestListenersList = Array<ListenerInput>;
|
|
199
|
+
export const CreateLoadBalancerRequestListenersList = /*@__PURE__*/ S.Array(
|
|
200
|
+
ListenerInput,
|
|
201
|
+
) as any as S.Schema<CreateLoadBalancerRequestListenersList>;
|
|
202
|
+
|
|
203
|
+
/** The role defines how the load balancer is using the network. Currently only ROLE_LISTENERS_AND_TARGETS is supported. */
|
|
204
|
+
export type NetworkRole =
|
|
205
|
+
| "ROLE_UNSPECIFIED"
|
|
206
|
+
| "ROLE_LISTENERS_AND_TARGETS"
|
|
207
|
+
| "ROLE_LISTENERS"
|
|
208
|
+
| "ROLE_TARGETS";
|
|
209
|
+
export const NetworkRole = /*@__PURE__*/ S.String;
|
|
210
|
+
|
|
211
|
+
export interface Network {
|
|
212
|
+
/** Openstack network ID */
|
|
213
|
+
networkId?: string;
|
|
214
|
+
/** The role defines how the load balancer is using the network. Currently only ROLE_LISTENERS_AND_TARGETS is supported. */
|
|
215
|
+
role?: NetworkRole | (string & {});
|
|
216
|
+
}
|
|
217
|
+
export const Network = /*@__PURE__*/ S.suspend(() =>
|
|
218
|
+
S.Struct({
|
|
219
|
+
networkId: S.optional(S.String),
|
|
220
|
+
role: S.optional(NetworkRole),
|
|
221
|
+
}),
|
|
222
|
+
).annotate({ identifier: "Network" }) as any as S.Schema<Network>;
|
|
223
|
+
|
|
224
|
+
/** List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation. */
|
|
225
|
+
export type CreateLoadBalancerRequestNetworksList = Array<Network>;
|
|
226
|
+
export const CreateLoadBalancerRequestNetworksList = /*@__PURE__*/ S.Array(
|
|
227
|
+
Network,
|
|
228
|
+
) as any as S.Schema<CreateLoadBalancerRequestNetworksList>;
|
|
229
|
+
|
|
230
|
+
/** Load Balancer is accessible only from an IP address in this range */
|
|
231
|
+
export type LoadbalancerOptionAccessControlAllowedSourceRangesList =
|
|
232
|
+
Array<string>;
|
|
233
|
+
export const LoadbalancerOptionAccessControlAllowedSourceRangesList =
|
|
234
|
+
/*@__PURE__*/ S.Array(
|
|
235
|
+
S.String,
|
|
236
|
+
) as any as S.Schema<LoadbalancerOptionAccessControlAllowedSourceRangesList>;
|
|
237
|
+
|
|
238
|
+
/** Use this option to limit the IP ranges that can use the load balancer. */
|
|
239
|
+
export interface LoadbalancerOptionAccessControl {
|
|
240
|
+
/** Load Balancer is accessible only from an IP address in this range */
|
|
241
|
+
allowedSourceRanges?: LoadbalancerOptionAccessControlAllowedSourceRangesList;
|
|
242
|
+
}
|
|
243
|
+
export const LoadbalancerOptionAccessControl = /*@__PURE__*/ S.suspend(() =>
|
|
244
|
+
S.Struct({
|
|
245
|
+
allowedSourceRanges: S.optional(
|
|
246
|
+
LoadbalancerOptionAccessControlAllowedSourceRangesList,
|
|
247
|
+
),
|
|
248
|
+
}),
|
|
249
|
+
).annotate({
|
|
250
|
+
identifier: "LoadbalancerOptionAccessControl",
|
|
251
|
+
}) as any as S.Schema<LoadbalancerOptionAccessControl>;
|
|
252
|
+
|
|
253
|
+
export interface LoadbalancerOptionLogs {
|
|
254
|
+
/** Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Load Balancer. */
|
|
255
|
+
credentialsRef?: string;
|
|
256
|
+
/** The Observability(Logs)/Loki remote write Push URL you want the logs to be shipped to. */
|
|
257
|
+
pushUrl?: string;
|
|
258
|
+
}
|
|
259
|
+
export const LoadbalancerOptionLogs = /*@__PURE__*/ S.suspend(() =>
|
|
260
|
+
S.Struct({
|
|
261
|
+
credentialsRef: S.optional(S.String),
|
|
262
|
+
pushUrl: S.optional(S.String),
|
|
263
|
+
}),
|
|
264
|
+
).annotate({
|
|
265
|
+
identifier: "LoadbalancerOptionLogs",
|
|
266
|
+
}) as any as S.Schema<LoadbalancerOptionLogs>;
|
|
267
|
+
|
|
268
|
+
export interface LoadbalancerOptionMetrics {
|
|
269
|
+
/** Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Load Balancer. */
|
|
270
|
+
credentialsRef?: string;
|
|
271
|
+
/** The Observability(Metrics)/Prometheus remote write push URL you want the metrics to be shipped to. */
|
|
272
|
+
pushUrl?: string;
|
|
273
|
+
}
|
|
274
|
+
export const LoadbalancerOptionMetrics = /*@__PURE__*/ S.suspend(() =>
|
|
275
|
+
S.Struct({
|
|
276
|
+
credentialsRef: S.optional(S.String),
|
|
277
|
+
pushUrl: S.optional(S.String),
|
|
278
|
+
}),
|
|
279
|
+
).annotate({
|
|
280
|
+
identifier: "LoadbalancerOptionMetrics",
|
|
281
|
+
}) as any as S.Schema<LoadbalancerOptionMetrics>;
|
|
282
|
+
|
|
283
|
+
/** We offer Load Balancer observability via STACKIT Observability or external solutions. */
|
|
284
|
+
export interface LoadbalancerOptionObservability {
|
|
285
|
+
logs?: LoadbalancerOptionLogs;
|
|
286
|
+
metrics?: LoadbalancerOptionMetrics;
|
|
287
|
+
}
|
|
288
|
+
export const LoadbalancerOptionObservability = /*@__PURE__*/ S.suspend(() =>
|
|
289
|
+
S.Struct({
|
|
290
|
+
logs: S.optional(LoadbalancerOptionLogs),
|
|
291
|
+
metrics: S.optional(LoadbalancerOptionMetrics),
|
|
292
|
+
}),
|
|
293
|
+
).annotate({
|
|
294
|
+
identifier: "LoadbalancerOptionObservability",
|
|
295
|
+
}) as any as S.Schema<LoadbalancerOptionObservability>;
|
|
296
|
+
|
|
297
|
+
/** Defines any optional functionality you want to have enabled on your load balancer. */
|
|
298
|
+
export interface LoadBalancerOptions {
|
|
299
|
+
accessControl?: LoadbalancerOptionAccessControl;
|
|
300
|
+
ephemeralAddress?: boolean;
|
|
301
|
+
observability?: LoadbalancerOptionObservability;
|
|
302
|
+
/** Load Balancer is accessible only via a private network ip address. Not changeable after creation. */
|
|
303
|
+
privateNetworkOnly?: boolean;
|
|
304
|
+
}
|
|
305
|
+
export const LoadBalancerOptions = /*@__PURE__*/ S.suspend(() =>
|
|
306
|
+
S.Struct({
|
|
307
|
+
accessControl: S.optional(LoadbalancerOptionAccessControl),
|
|
308
|
+
ephemeralAddress: S.optional(S.Boolean),
|
|
309
|
+
observability: S.optional(LoadbalancerOptionObservability),
|
|
310
|
+
privateNetworkOnly: S.optional(S.Boolean),
|
|
311
|
+
}),
|
|
312
|
+
).annotate({
|
|
313
|
+
identifier: "LoadBalancerOptions",
|
|
314
|
+
}) as any as S.Schema<LoadBalancerOptions>;
|
|
315
|
+
|
|
316
|
+
/** List of HTTP status codes that indicate a healthy response */
|
|
317
|
+
export type HttpHealthChecksOkStatusesList = Array<string>;
|
|
318
|
+
export const HttpHealthChecksOkStatusesList = /*@__PURE__*/ S.Array(
|
|
319
|
+
S.String,
|
|
320
|
+
) as any as S.Schema<HttpHealthChecksOkStatusesList>;
|
|
321
|
+
|
|
322
|
+
/** Set this to configure TLS settings. */
|
|
323
|
+
export interface TlsConfig {
|
|
324
|
+
/** Specifies a custom Certificate Authority (CA). When provided, the target pool will trust certificates signed by this CA, in addition to any system-trusted CAs. This is useful for scenarios where the target pool needs to communicate with servers using self-signed or internally-issued certificates. Enabled needs to be set to true and skip validation to false for this option. */
|
|
325
|
+
customCa?: string;
|
|
326
|
+
/** Enable TLS (Transport Layer Security) bridging for the connection between Application Load Balancer and targets in this pool. When enabled, public CAs are trusted. Can be used in tandem with the options either custom CA or skip validation or alone. */
|
|
327
|
+
enabled?: boolean;
|
|
328
|
+
/** Bypass certificate validation for TLS bridging in this target pool. This option is insecure and can only be used with public CAs by setting enabled true. Meant to be used for testing purposes only! */
|
|
329
|
+
skipCertificateValidation?: boolean;
|
|
330
|
+
}
|
|
331
|
+
export const TlsConfig = /*@__PURE__*/ S.suspend(() =>
|
|
332
|
+
S.Struct({
|
|
333
|
+
customCa: S.optional(S.String),
|
|
334
|
+
enabled: S.optional(S.Boolean),
|
|
335
|
+
skipCertificateValidation: S.optional(S.Boolean),
|
|
336
|
+
}),
|
|
337
|
+
).annotate({ identifier: "TlsConfig" }) as any as S.Schema<TlsConfig>;
|
|
338
|
+
|
|
339
|
+
/** Options for the HTTP health checking. */
|
|
340
|
+
export interface HttpHealthChecks {
|
|
341
|
+
/** List of HTTP status codes that indicate a healthy response */
|
|
342
|
+
okStatuses?: HttpHealthChecksOkStatusesList;
|
|
343
|
+
/** Path to send the health check request to */
|
|
344
|
+
path?: string;
|
|
345
|
+
tls?: TlsConfig;
|
|
346
|
+
}
|
|
347
|
+
export const HttpHealthChecks = /*@__PURE__*/ S.suspend(() =>
|
|
348
|
+
S.Struct({
|
|
349
|
+
okStatuses: S.optional(HttpHealthChecksOkStatusesList),
|
|
350
|
+
path: S.optional(S.String),
|
|
351
|
+
tls: S.optional(TlsConfig),
|
|
352
|
+
}),
|
|
353
|
+
).annotate({
|
|
354
|
+
identifier: "HttpHealthChecks",
|
|
355
|
+
}) as any as S.Schema<HttpHealthChecks>;
|
|
356
|
+
|
|
357
|
+
export interface ActiveHealthCheck {
|
|
358
|
+
/** Overrides the default port used for health check probes. */
|
|
359
|
+
altPort?: number;
|
|
360
|
+
/** Healthy threshold of the health checking */
|
|
361
|
+
healthyThreshold?: number;
|
|
362
|
+
httpHealthChecks?: HttpHealthChecks;
|
|
363
|
+
/** Interval duration of health checking in seconds */
|
|
364
|
+
interval?: string;
|
|
365
|
+
/** Interval duration threshold of the health checking in seconds */
|
|
366
|
+
intervalJitter?: string;
|
|
367
|
+
/** Active health checking timeout duration in seconds */
|
|
368
|
+
timeout?: string;
|
|
369
|
+
/** Unhealthy threshold of the health checking */
|
|
370
|
+
unhealthyThreshold?: number;
|
|
371
|
+
}
|
|
372
|
+
export const ActiveHealthCheck = /*@__PURE__*/ S.suspend(() =>
|
|
373
|
+
S.Struct({
|
|
374
|
+
altPort: S.optional(S.Number),
|
|
375
|
+
healthyThreshold: S.optional(S.Number),
|
|
376
|
+
httpHealthChecks: S.optional(HttpHealthChecks),
|
|
377
|
+
interval: S.optional(S.String),
|
|
378
|
+
intervalJitter: S.optional(S.String),
|
|
379
|
+
timeout: S.optional(S.String),
|
|
380
|
+
unhealthyThreshold: S.optional(S.Number),
|
|
381
|
+
}),
|
|
382
|
+
).annotate({
|
|
383
|
+
identifier: "ActiveHealthCheck",
|
|
384
|
+
}) as any as S.Schema<ActiveHealthCheck>;
|
|
385
|
+
|
|
386
|
+
export interface SessionPersistence {
|
|
387
|
+
/** If enabled then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev. */
|
|
388
|
+
useSourceIpAddress?: boolean;
|
|
389
|
+
}
|
|
390
|
+
export const SessionPersistence = /*@__PURE__*/ S.suspend(() =>
|
|
391
|
+
S.Struct({
|
|
392
|
+
useSourceIpAddress: S.optional(S.Boolean),
|
|
393
|
+
}),
|
|
394
|
+
).annotate({
|
|
395
|
+
identifier: "SessionPersistence",
|
|
396
|
+
}) as any as S.Schema<SessionPersistence>;
|
|
397
|
+
|
|
398
|
+
export interface Target {
|
|
399
|
+
/** Target name */
|
|
400
|
+
displayName?: string;
|
|
401
|
+
/** Target IP. Must by unique within a target pool. */
|
|
402
|
+
ip?: string;
|
|
403
|
+
}
|
|
404
|
+
export const Target = /*@__PURE__*/ S.suspend(() =>
|
|
405
|
+
S.Struct({
|
|
406
|
+
displayName: S.optional(S.String),
|
|
407
|
+
ip: S.optional(S.String),
|
|
408
|
+
}),
|
|
409
|
+
).annotate({ identifier: "Target" }) as any as S.Schema<Target>;
|
|
410
|
+
|
|
411
|
+
/** List of all targets which will be used in the pool. Limited to 250. */
|
|
412
|
+
export type TargetPoolTargetsList = Array<Target>;
|
|
413
|
+
export const TargetPoolTargetsList = /*@__PURE__*/ S.Array(
|
|
414
|
+
Target,
|
|
415
|
+
) as any as S.Schema<TargetPoolTargetsList>;
|
|
416
|
+
|
|
417
|
+
export interface TargetPool {
|
|
418
|
+
activeHealthCheck?: ActiveHealthCheck;
|
|
419
|
+
/** Target pool name */
|
|
420
|
+
name?: string;
|
|
421
|
+
sessionPersistence?: SessionPersistence;
|
|
422
|
+
/** The number identifying the port where each target listens for traffic. */
|
|
423
|
+
targetPort?: number;
|
|
424
|
+
/** List of all targets which will be used in the pool. Limited to 250. */
|
|
425
|
+
targets?: TargetPoolTargetsList;
|
|
426
|
+
}
|
|
427
|
+
export const TargetPool = /*@__PURE__*/ S.suspend(() =>
|
|
428
|
+
S.Struct({
|
|
429
|
+
activeHealthCheck: S.optional(ActiveHealthCheck),
|
|
430
|
+
name: S.optional(S.String),
|
|
431
|
+
sessionPersistence: S.optional(SessionPersistence),
|
|
432
|
+
targetPort: S.optional(S.Number),
|
|
433
|
+
targets: S.optional(TargetPoolTargetsList),
|
|
434
|
+
}),
|
|
435
|
+
).annotate({ identifier: "TargetPool" }) as any as S.Schema<TargetPool>;
|
|
436
|
+
|
|
437
|
+
/** List of all target pools which will be used in the load balancer. Limited to 20. */
|
|
438
|
+
export type CreateLoadBalancerRequestTargetPoolsList = Array<TargetPool>;
|
|
439
|
+
export const CreateLoadBalancerRequestTargetPoolsList = /*@__PURE__*/ S.Array(
|
|
440
|
+
TargetPool,
|
|
441
|
+
) as any as S.Schema<CreateLoadBalancerRequestTargetPoolsList>;
|
|
442
|
+
|
|
443
|
+
export interface CreateLoadBalancerRequest {
|
|
444
|
+
projectId: string;
|
|
445
|
+
region: string;
|
|
446
|
+
/** Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation. */
|
|
447
|
+
disableTargetSecurityGroupAssignment?: boolean;
|
|
448
|
+
/** External load balancer IP address where this load balancer is exposed. Not changeable after creation. */
|
|
449
|
+
externalAddress?: string;
|
|
450
|
+
/** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
|
|
451
|
+
labels?: CreateLoadBalancerRequestLabelsMap;
|
|
452
|
+
/** There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. */
|
|
453
|
+
listeners?: CreateLoadBalancerRequestListenersList;
|
|
454
|
+
/** Load balancer name. Not changeable after creation. */
|
|
455
|
+
name?: string;
|
|
456
|
+
/** List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation. */
|
|
457
|
+
networks?: CreateLoadBalancerRequestNetworksList;
|
|
458
|
+
options?: LoadBalancerOptions;
|
|
459
|
+
/** Service Plan configures the size of the Load Balancer. Currently supported plans are p10, p50, p250 and p750. This list can change in the future where plan ids will be removed and new plans by added. That is the reason this is not an enum. */
|
|
460
|
+
planId?: string;
|
|
461
|
+
/** List of all target pools which will be used in the load balancer. Limited to 20. */
|
|
462
|
+
targetPools?: CreateLoadBalancerRequestTargetPoolsList;
|
|
463
|
+
/** Load balancer resource version. Must be empty or unset for creating load balancers, non-empty for updating load balancers. Semantics: While retrieving load balancers, this is the current version of this load balancer resource that changes during updates of the load balancers. On updates this field specified the load balancer version you calculated your update for instead of the future version to enable concurrency safe updates. Update calls will then report the new version in their result as you would see with a load balancer retrieval call later. There exist no total order of the version, so you can only compare it for equality, but not for less/greater than another version. Since the creation of load balancer is always intended to create the first version of it, there should be no existing version. That's why this field must by empty of not present in that case. */
|
|
464
|
+
version?: string;
|
|
465
|
+
}
|
|
466
|
+
export const CreateLoadBalancerRequest = /*@__PURE__*/ S.suspend(() =>
|
|
467
|
+
S.Struct({
|
|
468
|
+
projectId: S.String.pipe(T.Label()),
|
|
469
|
+
region: S.String.pipe(T.Label()),
|
|
470
|
+
disableTargetSecurityGroupAssignment: S.optional(S.Boolean),
|
|
471
|
+
externalAddress: S.optional(S.String),
|
|
472
|
+
labels: S.optional(CreateLoadBalancerRequestLabelsMap),
|
|
473
|
+
listeners: S.optional(CreateLoadBalancerRequestListenersList),
|
|
474
|
+
name: S.optional(S.String),
|
|
475
|
+
networks: S.optional(CreateLoadBalancerRequestNetworksList),
|
|
476
|
+
options: S.optional(LoadBalancerOptions),
|
|
477
|
+
planId: S.optional(S.String),
|
|
478
|
+
targetPools: S.optional(CreateLoadBalancerRequestTargetPoolsList),
|
|
479
|
+
version: S.optional(S.String),
|
|
480
|
+
}).pipe(
|
|
481
|
+
T.Http({
|
|
482
|
+
method: "POST",
|
|
483
|
+
uri: "/v2/projects/{projectId}/regions/{region}/load-balancers",
|
|
484
|
+
code: 200,
|
|
485
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
486
|
+
}),
|
|
487
|
+
),
|
|
488
|
+
).annotate({
|
|
489
|
+
identifier: "CreateLoadBalancerRequest",
|
|
490
|
+
}) as any as S.Schema<CreateLoadBalancerRequest>;
|
|
491
|
+
|
|
492
|
+
/** The error type specifies which part of the load balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the load balancer with try to use the provided IP and if not available reports TYPE_FIP_NOT_CONFIGURED error or TYPE_FIP_NOT_FOUND if the IP was deleted. */
|
|
493
|
+
export type LoadBalancerErrorType =
|
|
494
|
+
| "TYPE_UNSPECIFIED"
|
|
495
|
+
| "TYPE_INTERNAL"
|
|
496
|
+
| "TYPE_QUOTA_SECGROUP_EXCEEDED"
|
|
497
|
+
| "TYPE_QUOTA_SECGROUPRULE_EXCEEDED"
|
|
498
|
+
| "TYPE_PORT_NOT_CONFIGURED"
|
|
499
|
+
| "TYPE_FIP_NOT_CONFIGURED"
|
|
500
|
+
| "TYPE_TARGET_NOT_ACTIVE"
|
|
501
|
+
| "TYPE_METRICS_MISCONFIGURED"
|
|
502
|
+
| "TYPE_LOGS_MISCONFIGURED"
|
|
503
|
+
| "TYPE_FIP_NOT_FOUND"
|
|
504
|
+
| "TYPE_IP_EXHAUSTED"
|
|
505
|
+
| "TYPE_DNS_NOT_CONFIGURED"
|
|
506
|
+
| "TYPE_VM_PORT_NOT_CONFIGURED";
|
|
507
|
+
export const LoadBalancerErrorType = /*@__PURE__*/ S.String;
|
|
508
|
+
|
|
509
|
+
export interface LoadBalancerError {
|
|
510
|
+
/** The error description contains additional helpful user information to fix the error state of the load balancer. For example the IP 45.135.247.139 does not exist in the project, then the description will report: Floating IP "45.135.247.139" could not be found or if the IP was deleted then you will get a proper error message. */
|
|
511
|
+
description?: string;
|
|
512
|
+
/** The error type specifies which part of the load balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the load balancer with try to use the provided IP and if not available reports TYPE_FIP_NOT_CONFIGURED error or TYPE_FIP_NOT_FOUND if the IP was deleted. */
|
|
513
|
+
type?: LoadBalancerErrorType;
|
|
514
|
+
}
|
|
515
|
+
export const LoadBalancerError = /*@__PURE__*/ S.suspend(() =>
|
|
516
|
+
S.Struct({
|
|
517
|
+
description: S.optional(S.String),
|
|
518
|
+
type: S.optional(LoadBalancerErrorType),
|
|
519
|
+
}),
|
|
520
|
+
).annotate({
|
|
521
|
+
identifier: "LoadBalancerError",
|
|
522
|
+
}) as any as S.Schema<LoadBalancerError>;
|
|
523
|
+
|
|
524
|
+
/** Reports all errors a load balancer has. */
|
|
525
|
+
export type LoadBalancerErrorsList = Array<LoadBalancerError>;
|
|
526
|
+
export const LoadBalancerErrorsList = /*@__PURE__*/ S.Array(
|
|
527
|
+
LoadBalancerError,
|
|
528
|
+
) as any as S.Schema<LoadBalancerErrorsList>;
|
|
529
|
+
|
|
530
|
+
/** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
|
|
531
|
+
export type LoadBalancerLabelsMap = { [key: string]: string | undefined };
|
|
532
|
+
export const LoadBalancerLabelsMap = /*@__PURE__*/ S.Record(
|
|
533
|
+
S.String,
|
|
534
|
+
S.String,
|
|
535
|
+
) as any as S.Schema<LoadBalancerLabelsMap>;
|
|
536
|
+
|
|
537
|
+
/** Protocol is the highest network protocol we understand to load balance. Currently only PROTOCOL_TCP, PROTOCOL_TCP_PROXY and PROTOCOL_TLS_PASSTHROUGH are supported. */
|
|
538
|
+
export type ListenerProtocol =
|
|
539
|
+
| "PROTOCOL_UNSPECIFIED"
|
|
540
|
+
| "PROTOCOL_TCP"
|
|
541
|
+
| "PROTOCOL_UDP"
|
|
542
|
+
| "PROTOCOL_TCP_PROXY"
|
|
543
|
+
| "PROTOCOL_TLS_PASSTHROUGH";
|
|
544
|
+
export const ListenerProtocol = /*@__PURE__*/ S.String;
|
|
545
|
+
|
|
546
|
+
/** Server Name Indicators config for domains to be routed to the desired target pool for this listener. */
|
|
547
|
+
export type ListenerServerNameIndicatorsList = Array<ServerNameIndicator>;
|
|
548
|
+
export const ListenerServerNameIndicatorsList = /*@__PURE__*/ S.Array(
|
|
549
|
+
ServerNameIndicator,
|
|
550
|
+
) as any as S.Schema<ListenerServerNameIndicatorsList>;
|
|
551
|
+
|
|
552
|
+
export interface Listener {
|
|
553
|
+
displayName?: string;
|
|
554
|
+
/** Will be used to reference a listener and will replace display name in the future. Currently uses <protocol>-<port> as the name if no display name is given. */
|
|
555
|
+
name?: string;
|
|
556
|
+
/** Port number where we listen for traffic */
|
|
557
|
+
port?: number;
|
|
558
|
+
/** Protocol is the highest network protocol we understand to load balance. Currently only PROTOCOL_TCP, PROTOCOL_TCP_PROXY and PROTOCOL_TLS_PASSTHROUGH are supported. */
|
|
559
|
+
protocol?: ListenerProtocol;
|
|
560
|
+
/** Server Name Indicators config for domains to be routed to the desired target pool for this listener. */
|
|
561
|
+
serverNameIndicators?: ListenerServerNameIndicatorsList;
|
|
562
|
+
/** Reference target pool by target pool name. */
|
|
563
|
+
targetPool?: string;
|
|
564
|
+
tcp?: OptionsTCP;
|
|
565
|
+
udp?: OptionsUDP;
|
|
566
|
+
}
|
|
567
|
+
export const Listener = /*@__PURE__*/ S.suspend(() =>
|
|
568
|
+
S.Struct({
|
|
569
|
+
displayName: S.optional(S.String),
|
|
570
|
+
name: S.optional(S.String),
|
|
571
|
+
port: S.optional(S.Number),
|
|
572
|
+
protocol: S.optional(ListenerProtocol),
|
|
573
|
+
serverNameIndicators: S.optional(ListenerServerNameIndicatorsList),
|
|
574
|
+
targetPool: S.optional(S.String),
|
|
575
|
+
tcp: S.optional(OptionsTCP),
|
|
576
|
+
udp: S.optional(OptionsUDP),
|
|
577
|
+
}),
|
|
578
|
+
).annotate({ identifier: "Listener" }) as any as S.Schema<Listener>;
|
|
579
|
+
|
|
580
|
+
/** There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. */
|
|
581
|
+
export type LoadBalancerListenersList = Array<Listener>;
|
|
582
|
+
export const LoadBalancerListenersList = /*@__PURE__*/ S.Array(
|
|
583
|
+
Listener,
|
|
584
|
+
) as any as S.Schema<LoadBalancerListenersList>;
|
|
585
|
+
|
|
586
|
+
export interface SecurityGroup {
|
|
587
|
+
/** ID of the security Group */
|
|
588
|
+
id?: string;
|
|
589
|
+
/** Name of the security Group */
|
|
590
|
+
name?: string;
|
|
591
|
+
}
|
|
592
|
+
export const SecurityGroup = /*@__PURE__*/ S.suspend(() =>
|
|
593
|
+
S.Struct({
|
|
594
|
+
id: S.optional(S.String),
|
|
595
|
+
name: S.optional(S.String),
|
|
596
|
+
}),
|
|
597
|
+
).annotate({ identifier: "SecurityGroup" }) as any as S.Schema<SecurityGroup>;
|
|
598
|
+
|
|
599
|
+
/** List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation. */
|
|
600
|
+
export type LoadBalancerNetworksList = Array<Network>;
|
|
601
|
+
export const LoadBalancerNetworksList = /*@__PURE__*/ S.Array(
|
|
602
|
+
Network,
|
|
603
|
+
) as any as S.Schema<LoadBalancerNetworksList>;
|
|
604
|
+
|
|
605
|
+
export type LoadBalancerStatus =
|
|
606
|
+
| "STATUS_UNSPECIFIED"
|
|
607
|
+
| "STATUS_PENDING"
|
|
608
|
+
| "STATUS_READY"
|
|
609
|
+
| "STATUS_ERROR"
|
|
610
|
+
| "STATUS_TERMINATING";
|
|
611
|
+
export const LoadBalancerStatus = /*@__PURE__*/ S.String;
|
|
612
|
+
|
|
613
|
+
/** List of all target pools which will be used in the load balancer. Limited to 20. */
|
|
614
|
+
export type LoadBalancerTargetPoolsList = Array<TargetPool>;
|
|
615
|
+
export const LoadBalancerTargetPoolsList = /*@__PURE__*/ S.Array(
|
|
616
|
+
TargetPool,
|
|
617
|
+
) as any as S.Schema<LoadBalancerTargetPoolsList>;
|
|
618
|
+
|
|
619
|
+
export interface LoadBalancer2 {
|
|
620
|
+
/** Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation. */
|
|
621
|
+
disableTargetSecurityGroupAssignment?: boolean;
|
|
622
|
+
/** Reports all errors a load balancer has. */
|
|
623
|
+
errors?: LoadBalancerErrorsList;
|
|
624
|
+
/** External load balancer IP address where this load balancer is exposed. Not changeable after creation. */
|
|
625
|
+
externalAddress?: string;
|
|
626
|
+
/** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
|
|
627
|
+
labels?: LoadBalancerLabelsMap;
|
|
628
|
+
/** There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. */
|
|
629
|
+
listeners?: LoadBalancerListenersList;
|
|
630
|
+
/** Security Group permitting network traffic from the LoadBalancer to the targets. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. */
|
|
631
|
+
loadBalancerSecurityGroup?: SecurityGroup;
|
|
632
|
+
/** Load balancer name. Not changeable after creation. */
|
|
633
|
+
name?: string;
|
|
634
|
+
/** List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation. */
|
|
635
|
+
networks?: LoadBalancerNetworksList;
|
|
636
|
+
options?: LoadBalancerOptions;
|
|
637
|
+
/** Service Plan configures the size of the Load Balancer. Currently supported plans are p10, p50, p250 and p750. This list can change in the future where plan ids will be removed and new plans by added. That is the reason this is not an enum. */
|
|
638
|
+
planId?: string;
|
|
639
|
+
/** Transient private load balancer IP address that can change any time. */
|
|
640
|
+
privateAddress?: string;
|
|
641
|
+
/** Region of the LoadBalancer */
|
|
642
|
+
region?: string;
|
|
643
|
+
status?: LoadBalancerStatus;
|
|
644
|
+
/** List of all target pools which will be used in the load balancer. Limited to 20. */
|
|
645
|
+
targetPools?: LoadBalancerTargetPoolsList;
|
|
646
|
+
/** Security Group that allows the targets to receive traffic from the LoadBalancer. Useful when disableTargetSecurityGroupAssignment=true to manually assign target security groups to targets. */
|
|
647
|
+
targetSecurityGroup?: SecurityGroup;
|
|
648
|
+
/** Load balancer resource version. Must be empty or unset for creating load balancers, non-empty for updating load balancers. Semantics: While retrieving load balancers, this is the current version of this load balancer resource that changes during updates of the load balancers. On updates this field specified the load balancer version you calculated your update for instead of the future version to enable concurrency safe updates. Update calls will then report the new version in their result as you would see with a load balancer retrieval call later. There exist no total order of the version, so you can only compare it for equality, but not for less/greater than another version. Since the creation of load balancer is always intended to create the first version of it, there should be no existing version. That's why this field must by empty of not present in that case. */
|
|
649
|
+
version?: string;
|
|
650
|
+
}
|
|
651
|
+
export const LoadBalancer2 = /*@__PURE__*/ S.suspend(() =>
|
|
652
|
+
S.Struct({
|
|
653
|
+
disableTargetSecurityGroupAssignment: S.optional(S.Boolean),
|
|
654
|
+
errors: S.optional(LoadBalancerErrorsList),
|
|
655
|
+
externalAddress: S.optional(S.String),
|
|
656
|
+
labels: S.optional(LoadBalancerLabelsMap),
|
|
657
|
+
listeners: S.optional(LoadBalancerListenersList),
|
|
658
|
+
loadBalancerSecurityGroup: S.optional(SecurityGroup),
|
|
659
|
+
name: S.optional(S.String),
|
|
660
|
+
networks: S.optional(LoadBalancerNetworksList),
|
|
661
|
+
options: S.optional(LoadBalancerOptions),
|
|
662
|
+
planId: S.optional(S.String),
|
|
663
|
+
privateAddress: S.optional(S.String),
|
|
664
|
+
region: S.optional(S.String),
|
|
665
|
+
status: S.optional(LoadBalancerStatus),
|
|
666
|
+
targetPools: S.optional(LoadBalancerTargetPoolsList),
|
|
667
|
+
targetSecurityGroup: S.optional(SecurityGroup),
|
|
668
|
+
version: S.optional(S.String),
|
|
669
|
+
}),
|
|
670
|
+
).annotate({ identifier: "LoadBalancer2" }) as any as S.Schema<LoadBalancer2>;
|
|
671
|
+
|
|
672
|
+
export interface DeleteCredentialsRequest {
|
|
673
|
+
projectId: string;
|
|
674
|
+
region: string;
|
|
675
|
+
credentialsRef: string;
|
|
676
|
+
}
|
|
677
|
+
export const DeleteCredentialsRequest = /*@__PURE__*/ S.suspend(() =>
|
|
678
|
+
S.Struct({
|
|
679
|
+
projectId: S.String.pipe(T.Label()),
|
|
680
|
+
region: S.String.pipe(T.Label()),
|
|
681
|
+
credentialsRef: S.String.pipe(T.Label()),
|
|
682
|
+
}).pipe(
|
|
683
|
+
T.Http({
|
|
684
|
+
method: "DELETE",
|
|
685
|
+
uri: "/v2/projects/{projectId}/regions/{region}/credentials/{credentialsRef}",
|
|
686
|
+
code: 200,
|
|
687
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
688
|
+
}),
|
|
689
|
+
),
|
|
690
|
+
).annotate({
|
|
691
|
+
identifier: "DeleteCredentialsRequest",
|
|
692
|
+
}) as any as S.Schema<DeleteCredentialsRequest>;
|
|
693
|
+
|
|
694
|
+
export type DeleteCredentialsResponse2 = unknown;
|
|
695
|
+
export const DeleteCredentialsResponse2 = /*@__PURE__*/ S.suspend(() =>
|
|
696
|
+
S.Unknown.pipe(T.RawResponseRoot()),
|
|
697
|
+
).annotate({
|
|
698
|
+
identifier: "DeleteCredentialsResponse2",
|
|
699
|
+
}) as any as S.Schema<DeleteCredentialsResponse2>;
|
|
700
|
+
|
|
701
|
+
export interface DeleteLoadBalancerRequest {
|
|
702
|
+
projectId: string;
|
|
703
|
+
region: string;
|
|
704
|
+
name: string;
|
|
705
|
+
}
|
|
706
|
+
export const DeleteLoadBalancerRequest = /*@__PURE__*/ S.suspend(() =>
|
|
707
|
+
S.Struct({
|
|
708
|
+
projectId: S.String.pipe(T.Label()),
|
|
709
|
+
region: S.String.pipe(T.Label()),
|
|
710
|
+
name: S.String.pipe(T.Label()),
|
|
711
|
+
}).pipe(
|
|
712
|
+
T.Http({
|
|
713
|
+
method: "DELETE",
|
|
714
|
+
uri: "/v2/projects/{projectId}/regions/{region}/load-balancers/{name}",
|
|
715
|
+
code: 200,
|
|
716
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
717
|
+
}),
|
|
718
|
+
),
|
|
719
|
+
).annotate({
|
|
720
|
+
identifier: "DeleteLoadBalancerRequest",
|
|
721
|
+
}) as any as S.Schema<DeleteLoadBalancerRequest>;
|
|
722
|
+
|
|
723
|
+
export type DeleteLoadBalancerResponse2 = unknown;
|
|
724
|
+
export const DeleteLoadBalancerResponse2 = /*@__PURE__*/ S.suspend(() =>
|
|
725
|
+
S.Unknown.pipe(T.RawResponseRoot()),
|
|
726
|
+
).annotate({
|
|
727
|
+
identifier: "DeleteLoadBalancerResponse2",
|
|
728
|
+
}) as any as S.Schema<DeleteLoadBalancerResponse2>;
|
|
729
|
+
|
|
730
|
+
export interface GetCredentialsRequest {
|
|
731
|
+
projectId: string;
|
|
732
|
+
region: string;
|
|
733
|
+
credentialsRef: string;
|
|
734
|
+
}
|
|
735
|
+
export const GetCredentialsRequest = /*@__PURE__*/ S.suspend(() =>
|
|
736
|
+
S.Struct({
|
|
737
|
+
projectId: S.String.pipe(T.Label()),
|
|
738
|
+
region: S.String.pipe(T.Label()),
|
|
739
|
+
credentialsRef: S.String.pipe(T.Label()),
|
|
740
|
+
}).pipe(
|
|
741
|
+
T.Http({
|
|
742
|
+
method: "GET",
|
|
743
|
+
uri: "/v2/projects/{projectId}/regions/{region}/credentials/{credentialsRef}",
|
|
744
|
+
code: 200,
|
|
745
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
746
|
+
}),
|
|
747
|
+
),
|
|
748
|
+
).annotate({
|
|
749
|
+
identifier: "GetCredentialsRequest",
|
|
750
|
+
}) as any as S.Schema<GetCredentialsRequest>;
|
|
751
|
+
|
|
752
|
+
export interface GetCredentialsResponse {
|
|
753
|
+
credential?: CredentialsResponse;
|
|
754
|
+
}
|
|
755
|
+
export const GetCredentialsResponse = /*@__PURE__*/ S.suspend(() =>
|
|
756
|
+
S.Struct({
|
|
757
|
+
credential: S.optional(CredentialsResponse),
|
|
758
|
+
}),
|
|
759
|
+
).annotate({
|
|
760
|
+
identifier: "GetCredentialsResponse",
|
|
761
|
+
}) as any as S.Schema<GetCredentialsResponse>;
|
|
762
|
+
|
|
763
|
+
export interface GetLoadBalancerRequest {
|
|
764
|
+
projectId: string;
|
|
765
|
+
region: string;
|
|
766
|
+
name: string;
|
|
767
|
+
}
|
|
768
|
+
export const GetLoadBalancerRequest = /*@__PURE__*/ S.suspend(() =>
|
|
769
|
+
S.Struct({
|
|
770
|
+
projectId: S.String.pipe(T.Label()),
|
|
771
|
+
region: S.String.pipe(T.Label()),
|
|
772
|
+
name: S.String.pipe(T.Label()),
|
|
773
|
+
}).pipe(
|
|
774
|
+
T.Http({
|
|
775
|
+
method: "GET",
|
|
776
|
+
uri: "/v2/projects/{projectId}/regions/{region}/load-balancers/{name}",
|
|
777
|
+
code: 200,
|
|
778
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
779
|
+
}),
|
|
780
|
+
),
|
|
781
|
+
).annotate({
|
|
782
|
+
identifier: "GetLoadBalancerRequest",
|
|
783
|
+
}) as any as S.Schema<GetLoadBalancerRequest>;
|
|
784
|
+
|
|
785
|
+
export interface GetQuotaRequest {
|
|
786
|
+
projectId: string;
|
|
787
|
+
region: string;
|
|
788
|
+
}
|
|
789
|
+
export const GetQuotaRequest = /*@__PURE__*/ S.suspend(() =>
|
|
790
|
+
S.Struct({
|
|
791
|
+
projectId: S.String.pipe(T.Label()),
|
|
792
|
+
region: S.String.pipe(T.Label()),
|
|
793
|
+
}).pipe(
|
|
794
|
+
T.Http({
|
|
795
|
+
method: "GET",
|
|
796
|
+
uri: "/v2/projects/{projectId}/regions/{region}/quota",
|
|
797
|
+
code: 200,
|
|
798
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
799
|
+
}),
|
|
800
|
+
),
|
|
801
|
+
).annotate({
|
|
802
|
+
identifier: "GetQuotaRequest",
|
|
803
|
+
}) as any as S.Schema<GetQuotaRequest>;
|
|
804
|
+
|
|
805
|
+
export interface GetQuotaResponse {
|
|
806
|
+
/** The maximum number of observability credentials that can be stored in this project. */
|
|
807
|
+
maxCredentials?: number;
|
|
808
|
+
/** The maximum number of load balancing servers in this project. */
|
|
809
|
+
maxLoadBalancers?: number;
|
|
810
|
+
/** Project identifier */
|
|
811
|
+
projectId?: string;
|
|
812
|
+
/** Region */
|
|
813
|
+
region?: string;
|
|
814
|
+
/** The number of observability credentials that are currently existing in this project. */
|
|
815
|
+
usedCredentials?: number;
|
|
816
|
+
/** The number of load balancing servers that are currently existing in this project. */
|
|
817
|
+
usedLoadBalancers?: number;
|
|
818
|
+
}
|
|
819
|
+
export const GetQuotaResponse = /*@__PURE__*/ S.suspend(() =>
|
|
820
|
+
S.Struct({
|
|
821
|
+
maxCredentials: S.optional(S.Number),
|
|
822
|
+
maxLoadBalancers: S.optional(S.Number),
|
|
823
|
+
projectId: S.optional(S.String),
|
|
824
|
+
region: S.optional(S.String),
|
|
825
|
+
usedCredentials: S.optional(S.Number),
|
|
826
|
+
usedLoadBalancers: S.optional(S.Number),
|
|
827
|
+
}),
|
|
828
|
+
).annotate({
|
|
829
|
+
identifier: "GetQuotaResponse",
|
|
830
|
+
}) as any as S.Schema<GetQuotaResponse>;
|
|
831
|
+
|
|
832
|
+
export interface ListCredentialsRequest {
|
|
833
|
+
projectId: string;
|
|
834
|
+
region: string;
|
|
835
|
+
}
|
|
836
|
+
export const ListCredentialsRequest = /*@__PURE__*/ S.suspend(() =>
|
|
837
|
+
S.Struct({
|
|
838
|
+
projectId: S.String.pipe(T.Label()),
|
|
839
|
+
region: S.String.pipe(T.Label()),
|
|
840
|
+
}).pipe(
|
|
841
|
+
T.Http({
|
|
842
|
+
method: "GET",
|
|
843
|
+
uri: "/v2/projects/{projectId}/regions/{region}/credentials",
|
|
844
|
+
code: 200,
|
|
845
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
846
|
+
}),
|
|
847
|
+
),
|
|
848
|
+
).annotate({
|
|
849
|
+
identifier: "ListCredentialsRequest",
|
|
850
|
+
}) as any as S.Schema<ListCredentialsRequest>;
|
|
851
|
+
|
|
852
|
+
export type ListCredentialsResponseCredentialsList = Array<CredentialsResponse>;
|
|
853
|
+
export const ListCredentialsResponseCredentialsList = /*@__PURE__*/ S.Array(
|
|
854
|
+
CredentialsResponse,
|
|
855
|
+
) as any as S.Schema<ListCredentialsResponseCredentialsList>;
|
|
856
|
+
|
|
857
|
+
export interface ListCredentialsResponse {
|
|
858
|
+
credentials?: ListCredentialsResponseCredentialsList;
|
|
859
|
+
}
|
|
860
|
+
export const ListCredentialsResponse = /*@__PURE__*/ S.suspend(() =>
|
|
861
|
+
S.Struct({
|
|
862
|
+
credentials: S.optional(ListCredentialsResponseCredentialsList),
|
|
863
|
+
}),
|
|
864
|
+
).annotate({
|
|
865
|
+
identifier: "ListCredentialsResponse",
|
|
866
|
+
}) as any as S.Schema<ListCredentialsResponse>;
|
|
867
|
+
|
|
868
|
+
export interface ListLoadBalancersRequest {
|
|
869
|
+
projectId: string;
|
|
870
|
+
region: string;
|
|
871
|
+
/** page_size specifies how many load balancers should be returned on this page. Must be a positive number <= 1000 */
|
|
872
|
+
pageSize?: string;
|
|
873
|
+
/** page_id is a page identifier returned by the previous response and is used to request the next page */
|
|
874
|
+
pageId?: string;
|
|
875
|
+
}
|
|
876
|
+
export const ListLoadBalancersRequest = /*@__PURE__*/ S.suspend(() =>
|
|
877
|
+
S.Struct({
|
|
878
|
+
projectId: S.String.pipe(T.Label()),
|
|
879
|
+
region: S.String.pipe(T.Label()),
|
|
880
|
+
pageSize: S.optional(S.String.pipe(T.Query())),
|
|
881
|
+
pageId: S.optional(S.String.pipe(T.Query())),
|
|
882
|
+
}).pipe(
|
|
883
|
+
T.Http({
|
|
884
|
+
method: "GET",
|
|
885
|
+
uri: "/v2/projects/{projectId}/regions/{region}/load-balancers",
|
|
886
|
+
code: 200,
|
|
887
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
888
|
+
}),
|
|
889
|
+
),
|
|
890
|
+
).annotate({
|
|
891
|
+
identifier: "ListLoadBalancersRequest",
|
|
892
|
+
}) as any as S.Schema<ListLoadBalancersRequest>;
|
|
893
|
+
|
|
894
|
+
export type ListLoadBalancersResponseLoadBalancersList = Array<LoadBalancer2>;
|
|
895
|
+
export const ListLoadBalancersResponseLoadBalancersList = /*@__PURE__*/ S.Array(
|
|
896
|
+
LoadBalancer2,
|
|
897
|
+
) as any as S.Schema<ListLoadBalancersResponseLoadBalancersList>;
|
|
898
|
+
|
|
899
|
+
export interface ListLoadBalancersResponse {
|
|
900
|
+
loadBalancers?: ListLoadBalancersResponseLoadBalancersList;
|
|
901
|
+
/** Continue token from the ListLoadBalancerResponse with Limit option */
|
|
902
|
+
nextPageId?: string;
|
|
903
|
+
}
|
|
904
|
+
export const ListLoadBalancersResponse = /*@__PURE__*/ S.suspend(() =>
|
|
905
|
+
S.Struct({
|
|
906
|
+
loadBalancers: S.optional(ListLoadBalancersResponseLoadBalancersList),
|
|
907
|
+
nextPageId: S.optional(S.String),
|
|
908
|
+
}),
|
|
909
|
+
).annotate({
|
|
910
|
+
identifier: "ListLoadBalancersResponse",
|
|
911
|
+
}) as any as S.Schema<ListLoadBalancersResponse>;
|
|
912
|
+
|
|
913
|
+
export interface ListPlansRequest {
|
|
914
|
+
region: string;
|
|
915
|
+
}
|
|
916
|
+
export const ListPlansRequest = /*@__PURE__*/ S.suspend(() =>
|
|
917
|
+
S.Struct({
|
|
918
|
+
region: S.String.pipe(T.Label()),
|
|
919
|
+
}).pipe(
|
|
920
|
+
T.Http({
|
|
921
|
+
method: "GET",
|
|
922
|
+
uri: "/v2/regions/{region}/plans",
|
|
923
|
+
code: 200,
|
|
924
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
925
|
+
}),
|
|
926
|
+
),
|
|
927
|
+
).annotate({
|
|
928
|
+
identifier: "ListPlansRequest",
|
|
929
|
+
}) as any as S.Schema<ListPlansRequest>;
|
|
930
|
+
|
|
931
|
+
export interface PlanDetails {
|
|
932
|
+
/** Description */
|
|
933
|
+
description?: string;
|
|
934
|
+
/** Flavor Name */
|
|
935
|
+
flavorName?: string;
|
|
936
|
+
/** Maximum number of concurrent connections per load balancer VM instance. */
|
|
937
|
+
maxConnections?: number;
|
|
938
|
+
/** Service Plan Name */
|
|
939
|
+
name?: string;
|
|
940
|
+
/** Service Plan Identifier */
|
|
941
|
+
planId?: string;
|
|
942
|
+
/** Region this Plan is available in */
|
|
943
|
+
region?: string;
|
|
944
|
+
}
|
|
945
|
+
export const PlanDetails = /*@__PURE__*/ S.suspend(() =>
|
|
946
|
+
S.Struct({
|
|
947
|
+
description: S.optional(S.String),
|
|
948
|
+
flavorName: S.optional(S.String),
|
|
949
|
+
maxConnections: S.optional(S.Number),
|
|
950
|
+
name: S.optional(S.String),
|
|
951
|
+
planId: S.optional(S.String),
|
|
952
|
+
region: S.optional(S.String),
|
|
953
|
+
}),
|
|
954
|
+
).annotate({ identifier: "PlanDetails" }) as any as S.Schema<PlanDetails>;
|
|
955
|
+
|
|
956
|
+
export type ListPlansResponseValidPlansList = Array<PlanDetails>;
|
|
957
|
+
export const ListPlansResponseValidPlansList = /*@__PURE__*/ S.Array(
|
|
958
|
+
PlanDetails,
|
|
959
|
+
) as any as S.Schema<ListPlansResponseValidPlansList>;
|
|
960
|
+
|
|
961
|
+
export interface ListPlansResponse {
|
|
962
|
+
validPlans?: ListPlansResponseValidPlansList;
|
|
963
|
+
}
|
|
964
|
+
export const ListPlansResponse = /*@__PURE__*/ S.suspend(() =>
|
|
965
|
+
S.Struct({
|
|
966
|
+
validPlans: S.optional(ListPlansResponseValidPlansList),
|
|
967
|
+
}),
|
|
968
|
+
).annotate({
|
|
969
|
+
identifier: "ListPlansResponse",
|
|
970
|
+
}) as any as S.Schema<ListPlansResponse>;
|
|
971
|
+
|
|
972
|
+
export interface UpdateCredentialsRequest {
|
|
973
|
+
projectId: string;
|
|
974
|
+
region: string;
|
|
975
|
+
credentialsRef: string;
|
|
976
|
+
/** Credential name */
|
|
977
|
+
displayName?: string;
|
|
978
|
+
/** A valid password used for an existing STACKIT Observability instance, which is used during basic auth. */
|
|
979
|
+
password?: string | Redacted.Redacted<string>;
|
|
980
|
+
/** A valid username used for an existing STACKIT Observability instance, which is used during basic auth. */
|
|
981
|
+
username?: string;
|
|
982
|
+
}
|
|
983
|
+
export const UpdateCredentialsRequest = /*@__PURE__*/ S.suspend(() =>
|
|
984
|
+
S.Struct({
|
|
985
|
+
projectId: S.String.pipe(T.Label()),
|
|
986
|
+
region: S.String.pipe(T.Label()),
|
|
987
|
+
credentialsRef: S.String.pipe(T.Label()),
|
|
988
|
+
displayName: S.optional(S.String),
|
|
989
|
+
password: S.optional(S.String.pipe(T.SensitiveValue({}))),
|
|
990
|
+
username: S.optional(S.String),
|
|
991
|
+
}).pipe(
|
|
992
|
+
T.Http({
|
|
993
|
+
method: "PUT",
|
|
994
|
+
uri: "/v2/projects/{projectId}/regions/{region}/credentials/{credentialsRef}",
|
|
995
|
+
code: 200,
|
|
996
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
997
|
+
}),
|
|
998
|
+
),
|
|
999
|
+
).annotate({
|
|
1000
|
+
identifier: "UpdateCredentialsRequest",
|
|
1001
|
+
}) as any as S.Schema<UpdateCredentialsRequest>;
|
|
1002
|
+
|
|
1003
|
+
export interface UpdateCredentialsResponse {
|
|
1004
|
+
credential?: CredentialsResponse;
|
|
1005
|
+
}
|
|
1006
|
+
export const UpdateCredentialsResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1007
|
+
S.Struct({
|
|
1008
|
+
credential: S.optional(CredentialsResponse),
|
|
1009
|
+
}),
|
|
1010
|
+
).annotate({
|
|
1011
|
+
identifier: "UpdateCredentialsResponse",
|
|
1012
|
+
}) as any as S.Schema<UpdateCredentialsResponse>;
|
|
1013
|
+
|
|
1014
|
+
/** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
|
|
1015
|
+
export type UpdateLoadBalancerRequestLabelsMap = {
|
|
1016
|
+
[key: string]: string | undefined;
|
|
1017
|
+
};
|
|
1018
|
+
export const UpdateLoadBalancerRequestLabelsMap = /*@__PURE__*/ S.Record(
|
|
1019
|
+
S.String,
|
|
1020
|
+
S.String,
|
|
1021
|
+
) as any as S.Schema<UpdateLoadBalancerRequestLabelsMap>;
|
|
1022
|
+
|
|
1023
|
+
/** There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. */
|
|
1024
|
+
export type UpdateLoadBalancerRequestListenersList = Array<ListenerInput>;
|
|
1025
|
+
export const UpdateLoadBalancerRequestListenersList = /*@__PURE__*/ S.Array(
|
|
1026
|
+
ListenerInput,
|
|
1027
|
+
) as any as S.Schema<UpdateLoadBalancerRequestListenersList>;
|
|
1028
|
+
|
|
1029
|
+
/** List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation. */
|
|
1030
|
+
export type UpdateLoadBalancerRequestNetworksList = Array<Network>;
|
|
1031
|
+
export const UpdateLoadBalancerRequestNetworksList = /*@__PURE__*/ S.Array(
|
|
1032
|
+
Network,
|
|
1033
|
+
) as any as S.Schema<UpdateLoadBalancerRequestNetworksList>;
|
|
1034
|
+
|
|
1035
|
+
/** List of all target pools which will be used in the load balancer. Limited to 20. */
|
|
1036
|
+
export type UpdateLoadBalancerRequestTargetPoolsList = Array<TargetPool>;
|
|
1037
|
+
export const UpdateLoadBalancerRequestTargetPoolsList = /*@__PURE__*/ S.Array(
|
|
1038
|
+
TargetPool,
|
|
1039
|
+
) as any as S.Schema<UpdateLoadBalancerRequestTargetPoolsList>;
|
|
1040
|
+
|
|
1041
|
+
export interface UpdateLoadBalancerRequest {
|
|
1042
|
+
projectId: string;
|
|
1043
|
+
region: string;
|
|
1044
|
+
name: string;
|
|
1045
|
+
/** Disable target security group assignemt to allow targets outside of the given network. Connectivity to targets need to be ensured by the customer, including routing and Security Groups (targetSecurityGroup can be assigned). Not changeable after creation. */
|
|
1046
|
+
disableTargetSecurityGroupAssignment?: boolean;
|
|
1047
|
+
/** External load balancer IP address where this load balancer is exposed. Not changeable after creation. */
|
|
1048
|
+
externalAddress?: string;
|
|
1049
|
+
/** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
|
|
1050
|
+
labels?: UpdateLoadBalancerRequestLabelsMap;
|
|
1051
|
+
/** There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. */
|
|
1052
|
+
listeners?: UpdateLoadBalancerRequestListenersList;
|
|
1053
|
+
/** List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation. */
|
|
1054
|
+
networks?: UpdateLoadBalancerRequestNetworksList;
|
|
1055
|
+
options?: LoadBalancerOptions;
|
|
1056
|
+
/** Service Plan configures the size of the Load Balancer. Currently supported plans are p10, p50, p250 and p750. This list can change in the future where plan ids will be removed and new plans by added. That is the reason this is not an enum. */
|
|
1057
|
+
planId?: string;
|
|
1058
|
+
/** List of all target pools which will be used in the load balancer. Limited to 20. */
|
|
1059
|
+
targetPools?: UpdateLoadBalancerRequestTargetPoolsList;
|
|
1060
|
+
/** Load balancer resource version. Must be empty or unset for creating load balancers, non-empty for updating load balancers. Semantics: While retrieving load balancers, this is the current version of this load balancer resource that changes during updates of the load balancers. On updates this field specified the load balancer version you calculated your update for instead of the future version to enable concurrency safe updates. Update calls will then report the new version in their result as you would see with a load balancer retrieval call later. There exist no total order of the version, so you can only compare it for equality, but not for less/greater than another version. Since the creation of load balancer is always intended to create the first version of it, there should be no existing version. That's why this field must by empty of not present in that case. */
|
|
1061
|
+
version?: string;
|
|
1062
|
+
}
|
|
1063
|
+
export const UpdateLoadBalancerRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1064
|
+
S.Struct({
|
|
1065
|
+
projectId: S.String.pipe(T.Label()),
|
|
1066
|
+
region: S.String.pipe(T.Label()),
|
|
1067
|
+
name: S.String.pipe(T.Label()),
|
|
1068
|
+
disableTargetSecurityGroupAssignment: S.optional(S.Boolean),
|
|
1069
|
+
externalAddress: S.optional(S.String),
|
|
1070
|
+
labels: S.optional(UpdateLoadBalancerRequestLabelsMap),
|
|
1071
|
+
listeners: S.optional(UpdateLoadBalancerRequestListenersList),
|
|
1072
|
+
networks: S.optional(UpdateLoadBalancerRequestNetworksList),
|
|
1073
|
+
options: S.optional(LoadBalancerOptions),
|
|
1074
|
+
planId: S.optional(S.String),
|
|
1075
|
+
targetPools: S.optional(UpdateLoadBalancerRequestTargetPoolsList),
|
|
1076
|
+
version: S.optional(S.String),
|
|
1077
|
+
}).pipe(
|
|
1078
|
+
T.Http({
|
|
1079
|
+
method: "PUT",
|
|
1080
|
+
uri: "/v2/projects/{projectId}/regions/{region}/load-balancers/{name}",
|
|
1081
|
+
code: 200,
|
|
1082
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
1083
|
+
}),
|
|
1084
|
+
),
|
|
1085
|
+
).annotate({
|
|
1086
|
+
identifier: "UpdateLoadBalancerRequest",
|
|
1087
|
+
}) as any as S.Schema<UpdateLoadBalancerRequest>;
|
|
1088
|
+
|
|
1089
|
+
/** List of all targets which will be used in the pool. Limited to 250. */
|
|
1090
|
+
export type UpdateTargetPoolRequestTargetsList = Array<Target>;
|
|
1091
|
+
export const UpdateTargetPoolRequestTargetsList = /*@__PURE__*/ S.Array(
|
|
1092
|
+
Target,
|
|
1093
|
+
) as any as S.Schema<UpdateTargetPoolRequestTargetsList>;
|
|
1094
|
+
|
|
1095
|
+
export interface UpdateTargetPoolRequest {
|
|
1096
|
+
projectId: string;
|
|
1097
|
+
region: string;
|
|
1098
|
+
name: string;
|
|
1099
|
+
targetPoolName: string;
|
|
1100
|
+
activeHealthCheck?: ActiveHealthCheck;
|
|
1101
|
+
sessionPersistence?: SessionPersistence;
|
|
1102
|
+
/** The number identifying the port where each target listens for traffic. */
|
|
1103
|
+
targetPort?: number;
|
|
1104
|
+
/** List of all targets which will be used in the pool. Limited to 250. */
|
|
1105
|
+
targets?: UpdateTargetPoolRequestTargetsList;
|
|
1106
|
+
}
|
|
1107
|
+
export const UpdateTargetPoolRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1108
|
+
S.Struct({
|
|
1109
|
+
projectId: S.String.pipe(T.Label()),
|
|
1110
|
+
region: S.String.pipe(T.Label()),
|
|
1111
|
+
name: S.String.pipe(T.Label()),
|
|
1112
|
+
targetPoolName: S.String.pipe(T.Label()),
|
|
1113
|
+
activeHealthCheck: S.optional(ActiveHealthCheck),
|
|
1114
|
+
sessionPersistence: S.optional(SessionPersistence),
|
|
1115
|
+
targetPort: S.optional(S.Number),
|
|
1116
|
+
targets: S.optional(UpdateTargetPoolRequestTargetsList),
|
|
1117
|
+
}).pipe(
|
|
1118
|
+
T.Http({
|
|
1119
|
+
method: "PUT",
|
|
1120
|
+
uri: "/v2/projects/{projectId}/regions/{region}/load-balancers/{name}/target-pools/{targetPoolName}",
|
|
1121
|
+
code: 200,
|
|
1122
|
+
baseUrl: "https://load-balancer.api.stackit.cloud",
|
|
1123
|
+
}),
|
|
1124
|
+
),
|
|
1125
|
+
).annotate({
|
|
1126
|
+
identifier: "UpdateTargetPoolRequest",
|
|
1127
|
+
}) as any as S.Schema<UpdateTargetPoolRequest>;
|
|
1128
|
+
|
|
1129
|
+
export type CreateCredentialsError = BadRequest | Forbidden | StackitOpError;
|
|
1130
|
+
/** Create credentials for observability of the Load Balancer Created credentials can be stored and used for the load balancer observability. For example, when using STACKIT Observability, credentials first must be created for that STACKIT Observability instance (by using their API or the STACKIT Portal) and then can be provided to the load balancer by storing them with this endpoint. */
|
|
1131
|
+
export const createCredentials: API.OperationMethod<
|
|
1132
|
+
CreateCredentialsRequest,
|
|
1133
|
+
CreateCredentialsResponse,
|
|
1134
|
+
CreateCredentialsError,
|
|
1135
|
+
StackitOpContext
|
|
1136
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1137
|
+
input: CreateCredentialsRequest,
|
|
1138
|
+
output: CreateCredentialsResponse,
|
|
1139
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1140
|
+
protocol: StackitProtocol,
|
|
1141
|
+
retry: Retry.Retry,
|
|
1142
|
+
}));
|
|
1143
|
+
|
|
1144
|
+
export type CreateLoadBalancerError =
|
|
1145
|
+
| BadRequest
|
|
1146
|
+
| Forbidden
|
|
1147
|
+
| Conflict
|
|
1148
|
+
| StackitOpError;
|
|
1149
|
+
/** Create a load balancer in a project Create Load Balancer will create a load balancer. The default load balancing algorithm is round robin unless useSourceIpAddress in session persistence is enabled for a target pool then it is Maglev. */
|
|
1150
|
+
export const createLoadBalancer: API.OperationMethod<
|
|
1151
|
+
CreateLoadBalancerRequest,
|
|
1152
|
+
LoadBalancer2,
|
|
1153
|
+
CreateLoadBalancerError,
|
|
1154
|
+
StackitOpContext
|
|
1155
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1156
|
+
input: CreateLoadBalancerRequest,
|
|
1157
|
+
output: LoadBalancer2,
|
|
1158
|
+
errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
|
|
1159
|
+
protocol: StackitProtocol,
|
|
1160
|
+
retry: Retry.Retry,
|
|
1161
|
+
}));
|
|
1162
|
+
|
|
1163
|
+
export type DeleteCredentialsError = BadRequest | Forbidden | StackitOpError;
|
|
1164
|
+
/** Delete a single credential in a project. Delete Credential */
|
|
1165
|
+
export const deleteCredentials: API.OperationMethod<
|
|
1166
|
+
DeleteCredentialsRequest,
|
|
1167
|
+
DeleteCredentialsResponse2,
|
|
1168
|
+
DeleteCredentialsError,
|
|
1169
|
+
StackitOpContext
|
|
1170
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1171
|
+
input: DeleteCredentialsRequest,
|
|
1172
|
+
output: DeleteCredentialsResponse2,
|
|
1173
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1174
|
+
protocol: StackitProtocol,
|
|
1175
|
+
retry: Retry.Retry,
|
|
1176
|
+
}));
|
|
1177
|
+
|
|
1178
|
+
export type DeleteLoadBalancerError = BadRequest | Forbidden | StackitOpError;
|
|
1179
|
+
/** Delete a given load balancer in a project. DeleteLoadBalancer will delete a given load balancer. */
|
|
1180
|
+
export const deleteLoadBalancer: API.OperationMethod<
|
|
1181
|
+
DeleteLoadBalancerRequest,
|
|
1182
|
+
DeleteLoadBalancerResponse2,
|
|
1183
|
+
DeleteLoadBalancerError,
|
|
1184
|
+
StackitOpContext
|
|
1185
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1186
|
+
input: DeleteLoadBalancerRequest,
|
|
1187
|
+
output: DeleteLoadBalancerResponse2,
|
|
1188
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1189
|
+
protocol: StackitProtocol,
|
|
1190
|
+
retry: Retry.Retry,
|
|
1191
|
+
}));
|
|
1192
|
+
|
|
1193
|
+
export type GetCredentialsError =
|
|
1194
|
+
| BadRequest
|
|
1195
|
+
| Forbidden
|
|
1196
|
+
| NotFound
|
|
1197
|
+
| StackitOpError;
|
|
1198
|
+
/** Get a single credential reference in a project. Get Credentials */
|
|
1199
|
+
export const getCredentials: API.OperationMethod<
|
|
1200
|
+
GetCredentialsRequest,
|
|
1201
|
+
GetCredentialsResponse,
|
|
1202
|
+
GetCredentialsError,
|
|
1203
|
+
StackitOpContext
|
|
1204
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1205
|
+
input: GetCredentialsRequest,
|
|
1206
|
+
output: GetCredentialsResponse,
|
|
1207
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
1208
|
+
protocol: StackitProtocol,
|
|
1209
|
+
retry: Retry.Retry,
|
|
1210
|
+
}));
|
|
1211
|
+
|
|
1212
|
+
export type GetLoadBalancerError =
|
|
1213
|
+
| BadRequest
|
|
1214
|
+
| Forbidden
|
|
1215
|
+
| NotFound
|
|
1216
|
+
| StackitOpError;
|
|
1217
|
+
/** Get a single load balancer in a project. Get Load Balancer will get a single load balancer of a project. This contains all the information set during creation or updates. Additionally, it will have information about the state of the load balancer in the form of a status field and error description feedback. */
|
|
1218
|
+
export const getLoadBalancer: API.OperationMethod<
|
|
1219
|
+
GetLoadBalancerRequest,
|
|
1220
|
+
LoadBalancer2,
|
|
1221
|
+
GetLoadBalancerError,
|
|
1222
|
+
StackitOpContext
|
|
1223
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1224
|
+
input: GetLoadBalancerRequest,
|
|
1225
|
+
output: LoadBalancer2,
|
|
1226
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
1227
|
+
protocol: StackitProtocol,
|
|
1228
|
+
retry: Retry.Retry,
|
|
1229
|
+
}));
|
|
1230
|
+
|
|
1231
|
+
export type GetQuotaError = BadRequest | Forbidden | StackitOpError;
|
|
1232
|
+
/** Get the quota of Network Load Balancers in a project. Retrieves the configured Network Load Balancer quota for the project. Limit can be changed via service request. */
|
|
1233
|
+
export const getQuota: API.OperationMethod<
|
|
1234
|
+
GetQuotaRequest,
|
|
1235
|
+
GetQuotaResponse,
|
|
1236
|
+
GetQuotaError,
|
|
1237
|
+
StackitOpContext
|
|
1238
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1239
|
+
input: GetQuotaRequest,
|
|
1240
|
+
output: GetQuotaResponse,
|
|
1241
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1242
|
+
protocol: StackitProtocol,
|
|
1243
|
+
retry: Retry.Retry,
|
|
1244
|
+
}));
|
|
1245
|
+
|
|
1246
|
+
export type ListCredentialsError = BadRequest | Forbidden | StackitOpError;
|
|
1247
|
+
/** List all credentials in a project. List Credentials */
|
|
1248
|
+
export const listCredentials: API.OperationMethod<
|
|
1249
|
+
ListCredentialsRequest,
|
|
1250
|
+
ListCredentialsResponse,
|
|
1251
|
+
ListCredentialsError,
|
|
1252
|
+
StackitOpContext
|
|
1253
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1254
|
+
input: ListCredentialsRequest,
|
|
1255
|
+
output: ListCredentialsResponse,
|
|
1256
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1257
|
+
protocol: StackitProtocol,
|
|
1258
|
+
retry: Retry.Retry,
|
|
1259
|
+
}));
|
|
1260
|
+
|
|
1261
|
+
export type ListLoadBalancersError = BadRequest | Forbidden | StackitOpError;
|
|
1262
|
+
/** List load balancers in a project. ListLoadBalancer will list load balancers of a project. This contains information set during creation or updates for every load balancer in the project. Additionally, it will have information about the state of the load balancer in the form of a status field and error description feedback. */
|
|
1263
|
+
export const listLoadBalancers: API.OperationMethod<
|
|
1264
|
+
ListLoadBalancersRequest,
|
|
1265
|
+
ListLoadBalancersResponse,
|
|
1266
|
+
ListLoadBalancersError,
|
|
1267
|
+
StackitOpContext
|
|
1268
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1269
|
+
input: ListLoadBalancersRequest,
|
|
1270
|
+
output: ListLoadBalancersResponse,
|
|
1271
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1272
|
+
protocol: StackitProtocol,
|
|
1273
|
+
retry: Retry.Retry,
|
|
1274
|
+
}));
|
|
1275
|
+
|
|
1276
|
+
export type ListPlansError = BadRequest | Forbidden | StackitOpError;
|
|
1277
|
+
/** List available service plans. ListPlans returns for the configured service plans for a project. */
|
|
1278
|
+
export const listPlans: API.OperationMethod<
|
|
1279
|
+
ListPlansRequest,
|
|
1280
|
+
ListPlansResponse,
|
|
1281
|
+
ListPlansError,
|
|
1282
|
+
StackitOpContext
|
|
1283
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1284
|
+
input: ListPlansRequest,
|
|
1285
|
+
output: ListPlansResponse,
|
|
1286
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1287
|
+
protocol: StackitProtocol,
|
|
1288
|
+
retry: Retry.Retry,
|
|
1289
|
+
}));
|
|
1290
|
+
|
|
1291
|
+
export type UpdateCredentialsError =
|
|
1292
|
+
| BadRequest
|
|
1293
|
+
| Forbidden
|
|
1294
|
+
| NotFound
|
|
1295
|
+
| StackitOpError;
|
|
1296
|
+
/** Update credentials for observability in a project. Update Credentials */
|
|
1297
|
+
export const updateCredentials: API.OperationMethod<
|
|
1298
|
+
UpdateCredentialsRequest,
|
|
1299
|
+
UpdateCredentialsResponse,
|
|
1300
|
+
UpdateCredentialsError,
|
|
1301
|
+
StackitOpContext
|
|
1302
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1303
|
+
input: UpdateCredentialsRequest,
|
|
1304
|
+
output: UpdateCredentialsResponse,
|
|
1305
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
1306
|
+
protocol: StackitProtocol,
|
|
1307
|
+
retry: Retry.Retry,
|
|
1308
|
+
}));
|
|
1309
|
+
|
|
1310
|
+
export type UpdateLoadBalancerError =
|
|
1311
|
+
| BadRequest
|
|
1312
|
+
| Forbidden
|
|
1313
|
+
| Conflict
|
|
1314
|
+
| StackitOpError;
|
|
1315
|
+
/** Update a load balancer in a project. Update Load Balancer allows the change of listeners and target pools of an existing Load Balancer. The Load balancer resource version needs to be the current version to ensure concurrency safe updates. The default load balancing algorithm is round robin unless useSourceIpAddress in session persistence is enabled for a target pool then it is Maglev. */
|
|
1316
|
+
export const updateLoadBalancer: API.OperationMethod<
|
|
1317
|
+
UpdateLoadBalancerRequest,
|
|
1318
|
+
LoadBalancer2,
|
|
1319
|
+
UpdateLoadBalancerError,
|
|
1320
|
+
StackitOpContext
|
|
1321
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1322
|
+
input: UpdateLoadBalancerRequest,
|
|
1323
|
+
output: LoadBalancer2,
|
|
1324
|
+
errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
|
|
1325
|
+
protocol: StackitProtocol,
|
|
1326
|
+
retry: Retry.Retry,
|
|
1327
|
+
}));
|
|
1328
|
+
|
|
1329
|
+
export type UpdateTargetPoolError = BadRequest | Forbidden | StackitOpError;
|
|
1330
|
+
/** Update a single target pool of a load balancer in a project. ReplaceTargetPool will replace a specific target pool of a load balancer with new content. Useful to add/remove target servers. will update a load balancer. Only replaces the mentioned target pools and leaves others unchanged. Cannot be used to create or rename a target pool. */
|
|
1331
|
+
export const updateTargetPool: API.OperationMethod<
|
|
1332
|
+
UpdateTargetPoolRequest,
|
|
1333
|
+
TargetPool,
|
|
1334
|
+
UpdateTargetPoolError,
|
|
1335
|
+
StackitOpContext
|
|
1336
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1337
|
+
input: UpdateTargetPoolRequest,
|
|
1338
|
+
output: TargetPool,
|
|
1339
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
1340
|
+
protocol: StackitProtocol,
|
|
1341
|
+
retry: Retry.Retry,
|
|
1342
|
+
}));
|