@distilled.cloud/stackit 0.0.0-stage → 1.0.0-rc.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +33 -2
- 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 +45 -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 +147 -0
- package/lib/protocol.js.map +1 -0
- package/lib/protocol.test.d.ts +2 -0
- package/lib/protocol.test.d.ts.map +1 -0
- package/lib/protocol.test.js +181 -0
- package/lib/protocol.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 +513 -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 +521 -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 +323 -0
- package/lib/services/authorization.js.map +1 -0
- package/lib/services/automation.d.ts +321 -0
- package/lib/services/automation.d.ts.map +1 -0
- package/lib/services/automation.js +363 -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 +906 -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 +179 -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 +177 -0
- package/lib/services/cost.js.map +1 -0
- package/lib/services/dns.d.ts +842 -0
- package/lib/services/dns.d.ts.map +1 -0
- package/lib/services/dns.js +726 -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 +317 -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 +357 -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 +399 -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 +520 -0
- package/lib/services/git.js.map +1 -0
- package/lib/services/iaas.d.ts +2986 -0
- package/lib/services/iaas.d.ts.map +1 -0
- package/lib/services/iaas.js +3543 -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 +475 -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 +663 -0
- package/lib/services/kms.js.map +1 -0
- package/lib/services/lb_ip_lists.d.ts +160 -0
- package/lib/services/lb_ip_lists.d.ts.map +1 -0
- package/lib/services/lb_ip_lists.js +154 -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 +497 -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 +574 -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 +475 -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 +551 -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 +336 -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 +287 -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 +803 -0
- package/lib/services/mongodb_flex.js.map +1 -0
- package/lib/services/object_storage.d.ts +470 -0
- package/lib/services/object_storage.d.ts.map +1 -0
- package/lib/services/object_storage.js +540 -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 +3158 -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 +563 -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 +736 -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 +853 -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 +519 -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 +574 -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 +198 -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 +473 -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 +185 -0
- package/lib/services/run_command.js.map +1 -0
- package/lib/services/sca.d.ts +553 -0
- package/lib/services/sca.d.ts.map +1 -0
- package/lib/services/sca.js +445 -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 +670 -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 +613 -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 +454 -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 +352 -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 +506 -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 +157 -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 +790 -0
- package/lib/services/sfs.js.map +1 -0
- package/lib/services/ske.d.ts +562 -0
- package/lib/services/ske.d.ts.map +1 -0
- package/lib/services/ske.js +558 -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 +936 -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 +379 -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 +532 -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 +484 -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 +279 -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 +567 -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 +931 -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 +508 -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 +85 -3
- package/src/credentials.ts +84 -0
- package/src/errors.ts +50 -0
- package/src/index.ts +34 -0
- package/src/pagination.ts +57 -0
- package/src/protocol.test.ts +304 -0
- package/src/protocol.ts +225 -0
- package/src/retry.ts +47 -0
- package/src/services/alb.ts +1326 -0
- package/src/services/alb_waf.ts +1288 -0
- package/src/services/authorization.ts +704 -0
- package/src/services/automation.ts +796 -0
- package/src/services/cdn.ts +2576 -0
- package/src/services/certificates.ts +418 -0
- package/src/services/cost.ts +449 -0
- package/src/services/dns.ts +1936 -0
- package/src/services/dremio.ts +753 -0
- package/src/services/edge.ts +780 -0
- package/src/services/functions.ts +957 -0
- package/src/services/git.ts +1194 -0
- package/src/services/iaas.ts +7878 -0
- package/src/services/index.ts +51 -0
- package/src/services/intake.ts +1166 -0
- package/src/services/kms.ts +1537 -0
- package/src/services/lb_ip_lists.ts +342 -0
- package/src/services/load_balancer.ts +1266 -0
- package/src/services/logme.ts +1284 -0
- package/src/services/logs.ts +1049 -0
- package/src/services/mariadb.ts +1212 -0
- package/src/services/model_experiments.ts +741 -0
- package/src/services/model_serving.ts +654 -0
- package/src/services/mongodb_flex.ts +1932 -0
- package/src/services/object_storage.ts +1195 -0
- package/src/services/observability.ts +7364 -0
- package/src/services/opensearch.ts +1265 -0
- package/src/services/pim.ts +1985 -0
- package/src/services/postgres_flex.ts +2080 -0
- package/src/services/pubsub.ts +1193 -0
- package/src/services/rabbitmq.ts +1310 -0
- package/src/services/registry.ts +446 -0
- package/src/services/resource_manager.ts +1072 -0
- package/src/services/run_command.ts +413 -0
- package/src/services/sca.ts +1187 -0
- package/src/services/scf.ts +1396 -0
- package/src/services/secrets_manager.ts +1317 -0
- package/src/services/server_backup.ts +983 -0
- package/src/services/server_update.ts +738 -0
- package/src/services/service_account.ts +1121 -0
- package/src/services/service_enablement.ts +330 -0
- package/src/services/sfs.ts +1831 -0
- package/src/services/ske.ts +1386 -0
- package/src/services/sqlserverflex.ts +2307 -0
- package/src/services/stackit_marketplace.ts +787 -0
- package/src/services/telemetry_link.ts +1166 -0
- package/src/services/telemetry_router.ts +1110 -0
- package/src/services/ufw.ts +654 -0
- package/src/services/valkey.ts +1266 -0
- package/src/services/vpn.ts +2365 -0
- package/src/services/workflows.ts +1249 -0
- package/src/traits.ts +60 -0
|
@@ -0,0 +1,2365 @@
|
|
|
1
|
+
import * as API from "@distilled.cloud/core/api";
|
|
2
|
+
import * as C from "@distilled.cloud/core/category";
|
|
3
|
+
// AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-stackit). Do not edit.
|
|
4
|
+
import * as S from "@distilled.cloud/core/schema";
|
|
5
|
+
import { UnknownStackitError } from "../errors.ts";
|
|
6
|
+
import { StackitProtocol, type StackitOpError, type StackitOpContext } from "../protocol.ts";
|
|
7
|
+
import * as Retry from "../retry.ts";
|
|
8
|
+
import * as T from "../traits.ts";
|
|
9
|
+
|
|
10
|
+
export type { StackitOpError, StackitOpContext };
|
|
11
|
+
|
|
12
|
+
export class BadRequest
|
|
13
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
14
|
+
/*@__PURE__*/ S.TaggedError<BadRequest>()("BadRequest", {
|
|
15
|
+
code: S.Number,
|
|
16
|
+
message: S.String,
|
|
17
|
+
}).pipe(C.withBadRequestError),
|
|
18
|
+
[{ status: 400 }],
|
|
19
|
+
) {}
|
|
20
|
+
|
|
21
|
+
export class Conflict
|
|
22
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
23
|
+
/*@__PURE__*/ S.TaggedError<Conflict>()("Conflict", {
|
|
24
|
+
code: S.Number,
|
|
25
|
+
message: S.String,
|
|
26
|
+
}).pipe(C.withConflictError),
|
|
27
|
+
[{ status: 409 }],
|
|
28
|
+
) {}
|
|
29
|
+
|
|
30
|
+
export class Forbidden
|
|
31
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
32
|
+
/*@__PURE__*/ S.TaggedError<Forbidden>()("Forbidden", {
|
|
33
|
+
code: S.Number,
|
|
34
|
+
message: S.String,
|
|
35
|
+
}).pipe(C.withAuthError),
|
|
36
|
+
[{ status: 403 }],
|
|
37
|
+
) {}
|
|
38
|
+
|
|
39
|
+
export class NotFound
|
|
40
|
+
extends /*@__PURE__*/ T.applyErrorMatchers(
|
|
41
|
+
/*@__PURE__*/ S.TaggedError<NotFound>()("NotFound", {
|
|
42
|
+
code: S.Number,
|
|
43
|
+
message: S.String,
|
|
44
|
+
}).pipe(C.withBadRequestError),
|
|
45
|
+
[{ status: 404 }],
|
|
46
|
+
) {}
|
|
47
|
+
|
|
48
|
+
/** The region in which the resource is located. */
|
|
49
|
+
export type CreateGatewayRequestRegion = "eu01" | "eu02";
|
|
50
|
+
export const CreateGatewayRequestRegion = S.String;
|
|
51
|
+
|
|
52
|
+
export interface CreateGatewayRequestAvailabilityZones {
|
|
53
|
+
tunnel1: string;
|
|
54
|
+
tunnel2: string;
|
|
55
|
+
}
|
|
56
|
+
export const CreateGatewayRequestAvailabilityZones = /*@__PURE__*/ S.suspend(() =>
|
|
57
|
+
S.Struct({
|
|
58
|
+
tunnel1: S.String,
|
|
59
|
+
tunnel2: S.String,
|
|
60
|
+
}),
|
|
61
|
+
).annotate({
|
|
62
|
+
identifier: "CreateGatewayRequestAvailabilityZones",
|
|
63
|
+
}) as any as S.Schema<CreateGatewayRequestAvailabilityZones>;
|
|
64
|
+
|
|
65
|
+
/** A list of IPv4 Prefixes to advertise via BGP. If omitted, the SNA network ranges will be advertised. */
|
|
66
|
+
export type BGPGatewayConfigOverrideAdvertisedRoutesList = Array<string>;
|
|
67
|
+
export const BGPGatewayConfigOverrideAdvertisedRoutesList = /*@__PURE__*/ S.Array(
|
|
68
|
+
S.String,
|
|
69
|
+
) as any as S.Schema<BGPGatewayConfigOverrideAdvertisedRoutesList>;
|
|
70
|
+
|
|
71
|
+
/** BGP configuration effects all connections. (only for routingMode=BGP_ROUTE_BASED) */
|
|
72
|
+
export interface BGPGatewayConfig {
|
|
73
|
+
localAsn: number;
|
|
74
|
+
/** A list of IPv4 Prefixes to advertise via BGP. If omitted, the SNA network ranges will be advertised. */
|
|
75
|
+
overrideAdvertisedRoutes?: BGPGatewayConfigOverrideAdvertisedRoutesList;
|
|
76
|
+
}
|
|
77
|
+
export const BGPGatewayConfig = /*@__PURE__*/ S.suspend(() =>
|
|
78
|
+
S.Struct({
|
|
79
|
+
localAsn: S.Number,
|
|
80
|
+
overrideAdvertisedRoutes: S.optional(BGPGatewayConfigOverrideAdvertisedRoutesList),
|
|
81
|
+
}),
|
|
82
|
+
).annotate({ identifier: "BGPGatewayConfig" }) as any as S.Schema<BGPGatewayConfig>;
|
|
83
|
+
|
|
84
|
+
/** Map of custom labels. Key and values must be a string with max 63 chars, start/end with alphanumeric. The key of a label follows the same rules as the `LabelValue` except that it cannot be empty. */
|
|
85
|
+
export type Label = { [key: string]: string | undefined };
|
|
86
|
+
export const Label = /*@__PURE__*/ S.Record(S.String, S.String) as any as S.Schema<Label>;
|
|
87
|
+
|
|
88
|
+
export interface NetworkConfig {
|
|
89
|
+
/** The IPv4 network prefix (CIDR notation) allocated for the VPN gateway. Must have a prefix length of /28 or larger. Once the gateway is created, is not possible to change this attribute. */
|
|
90
|
+
predefinedNetworkPrefix?: string;
|
|
91
|
+
/** Custom routing table ID for the VPN gateway */
|
|
92
|
+
routingTableId?: string;
|
|
93
|
+
}
|
|
94
|
+
export const NetworkConfig = /*@__PURE__*/ S.suspend(() =>
|
|
95
|
+
S.Struct({
|
|
96
|
+
predefinedNetworkPrefix: S.optional(S.String),
|
|
97
|
+
routingTableId: S.optional(S.String),
|
|
98
|
+
}),
|
|
99
|
+
).annotate({ identifier: "NetworkConfig" }) as any as S.Schema<NetworkConfig>;
|
|
100
|
+
|
|
101
|
+
/** Once the gateway is created, it is not possible to change this attribute. */
|
|
102
|
+
export type RoutingType = "POLICY_BASED" | "ROUTE_BASED" | "BGP_ROUTE_BASED";
|
|
103
|
+
export const RoutingType = S.String;
|
|
104
|
+
|
|
105
|
+
export interface CreateGatewayRequest {
|
|
106
|
+
projectId: string;
|
|
107
|
+
region: CreateGatewayRequestRegion | (string & {});
|
|
108
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones;
|
|
109
|
+
bgp?: BGPGatewayConfig;
|
|
110
|
+
/** A user-friendly name for the VPN gateway. */
|
|
111
|
+
displayName: string;
|
|
112
|
+
labels?: Label;
|
|
113
|
+
networkConfig?: NetworkConfig;
|
|
114
|
+
/** The service plan identifier. */
|
|
115
|
+
planId: string;
|
|
116
|
+
routingType: RoutingType | (string & {});
|
|
117
|
+
}
|
|
118
|
+
export const CreateGatewayRequest = /*@__PURE__*/ S.suspend(() =>
|
|
119
|
+
S.Struct({
|
|
120
|
+
projectId: S.String.pipe(T.Label()),
|
|
121
|
+
region: CreateGatewayRequestRegion.pipe(T.Label()),
|
|
122
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones,
|
|
123
|
+
bgp: S.optional(BGPGatewayConfig),
|
|
124
|
+
displayName: S.String,
|
|
125
|
+
labels: S.optional(Label),
|
|
126
|
+
networkConfig: S.optional(NetworkConfig),
|
|
127
|
+
planId: S.String,
|
|
128
|
+
routingType: RoutingType,
|
|
129
|
+
}).pipe(
|
|
130
|
+
T.Http({
|
|
131
|
+
method: "POST",
|
|
132
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways",
|
|
133
|
+
code: 200,
|
|
134
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
135
|
+
}),
|
|
136
|
+
),
|
|
137
|
+
).annotate({ identifier: "CreateGatewayRequest" }) as any as S.Schema<CreateGatewayRequest>;
|
|
138
|
+
|
|
139
|
+
export type CreateGatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
140
|
+
export const CreateGatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
141
|
+
|
|
142
|
+
/** The current lifecycle state of the gateway infrastructure. - `PENDING`: Provisioning or update is in progress. - `READY`: The gateway is fully operational. - `ERROR`: A failure occurred. - `DELETING`: The resource is being removed. */
|
|
143
|
+
export type GatewayStatus = "PENDING" | "READY" | "ERROR" | "DELETING";
|
|
144
|
+
export const GatewayStatus = S.String;
|
|
145
|
+
|
|
146
|
+
export interface CreateGatewayResponse {
|
|
147
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones;
|
|
148
|
+
bgp?: BGPGatewayConfig;
|
|
149
|
+
/** A user-friendly name for the VPN gateway. */
|
|
150
|
+
displayName: string;
|
|
151
|
+
labels?: Label;
|
|
152
|
+
networkConfig?: NetworkConfig;
|
|
153
|
+
/** The service plan identifier. */
|
|
154
|
+
planId: string;
|
|
155
|
+
routingType: RoutingType;
|
|
156
|
+
/** The server-generated UUID of the VPN gateway. */
|
|
157
|
+
id?: string;
|
|
158
|
+
state?: GatewayStatus;
|
|
159
|
+
}
|
|
160
|
+
export const CreateGatewayResponse = /*@__PURE__*/ S.suspend(() =>
|
|
161
|
+
S.Struct({
|
|
162
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones,
|
|
163
|
+
bgp: S.optional(BGPGatewayConfig),
|
|
164
|
+
displayName: S.String,
|
|
165
|
+
labels: S.optional(Label),
|
|
166
|
+
networkConfig: S.optional(NetworkConfig),
|
|
167
|
+
planId: S.String,
|
|
168
|
+
routingType: RoutingType,
|
|
169
|
+
id: S.optional(S.String),
|
|
170
|
+
state: S.optional(GatewayStatus),
|
|
171
|
+
}),
|
|
172
|
+
).annotate({ identifier: "CreateGatewayResponse" }) as any as S.Schema<CreateGatewayResponse>;
|
|
173
|
+
|
|
174
|
+
/** The region in which the resource is located. */
|
|
175
|
+
export type CreateGatewayBGPFilterRequestRegion = "eu01" | "eu02";
|
|
176
|
+
export const CreateGatewayBGPFilterRequestRegion = S.String;
|
|
177
|
+
|
|
178
|
+
export interface CreateGatewayBGPFilterRequest {
|
|
179
|
+
projectId: string;
|
|
180
|
+
region: CreateGatewayBGPFilterRequestRegion | (string & {});
|
|
181
|
+
gatewayId: string;
|
|
182
|
+
/** A user-friendly name for the filter. Display only — not enforced unique across a gateway. */
|
|
183
|
+
displayName: string;
|
|
184
|
+
}
|
|
185
|
+
export const CreateGatewayBGPFilterRequest = /*@__PURE__*/ S.suspend(() =>
|
|
186
|
+
S.Struct({
|
|
187
|
+
projectId: S.String.pipe(T.Label()),
|
|
188
|
+
region: CreateGatewayBGPFilterRequestRegion.pipe(T.Label()),
|
|
189
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
190
|
+
displayName: S.String,
|
|
191
|
+
}).pipe(
|
|
192
|
+
T.Http({
|
|
193
|
+
method: "POST",
|
|
194
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters",
|
|
195
|
+
code: 200,
|
|
196
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
197
|
+
}),
|
|
198
|
+
),
|
|
199
|
+
).annotate({
|
|
200
|
+
identifier: "CreateGatewayBGPFilterRequest",
|
|
201
|
+
}) as any as S.Schema<CreateGatewayBGPFilterRequest>;
|
|
202
|
+
|
|
203
|
+
/** A named BGP route filter. Internally a BGPFilter holds an ordered set of rules (managed via the nested /rules sub-resource); a route is evaluated against each rule in 'sequence' order and the first match decides the outcome. An implicit DENY is applied after the last rule, so a route that matches no PERMIT rule is dropped. Attaching an empty filter to a tunnel therefore denies every route. Resource limits: the maximum number of filters per gateway equals the gateway plan's maxConnections value; the maximum number of rules per filter is 10. */
|
|
204
|
+
export interface BGPFilter {
|
|
205
|
+
/** A user-friendly name for the filter. Display only — not enforced unique across a gateway. */
|
|
206
|
+
displayName: string;
|
|
207
|
+
/** The server-generated UUID of the filter. */
|
|
208
|
+
id?: string;
|
|
209
|
+
}
|
|
210
|
+
export const BGPFilter = /*@__PURE__*/ S.suspend(() =>
|
|
211
|
+
S.Struct({
|
|
212
|
+
displayName: S.String,
|
|
213
|
+
id: S.optional(S.String),
|
|
214
|
+
}),
|
|
215
|
+
).annotate({ identifier: "BGPFilter" }) as any as S.Schema<BGPFilter>;
|
|
216
|
+
|
|
217
|
+
/** The region in which the resource is located. */
|
|
218
|
+
export type CreateGatewayBGPFilterRuleRequestRegion = "eu01" | "eu02";
|
|
219
|
+
export const CreateGatewayBGPFilterRuleRequestRegion = S.String;
|
|
220
|
+
|
|
221
|
+
/** The action to take if the route matches all criteria. Case-sensitive. */
|
|
222
|
+
export type CreateGatewayBGPFilterRuleRequestAction = "PERMIT" | "DENY";
|
|
223
|
+
export const CreateGatewayBGPFilterRuleRequestAction = S.String;
|
|
224
|
+
|
|
225
|
+
/** Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. */
|
|
226
|
+
export type CreateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList = Array<number>;
|
|
227
|
+
export const CreateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList = /*@__PURE__*/ S.Array(
|
|
228
|
+
S.Number,
|
|
229
|
+
) as any as S.Schema<CreateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList>;
|
|
230
|
+
|
|
231
|
+
/** Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. */
|
|
232
|
+
export type CreateGatewayBGPFilterRuleRequestMatchCommunitiesList = Array<string>;
|
|
233
|
+
export const CreateGatewayBGPFilterRuleRequestMatchCommunitiesList = /*@__PURE__*/ S.Array(
|
|
234
|
+
S.String,
|
|
235
|
+
) as any as S.Schema<CreateGatewayBGPFilterRuleRequestMatchCommunitiesList>;
|
|
236
|
+
|
|
237
|
+
/** List of IPv4 networks to match. A route's prefix matches if it equals one of these (subject to minPrefixLength/maxPrefixLength refinement). If omitted, an implicit 0.0.0.0/0 base is used when minPrefixLength or maxPrefixLength is set; if all three are omitted, prefix matching is not performed at all. Each entry must parse as a valid IPv4 CIDR; the network portion is normalised (10.0.0.5/24 → 10.0.0.0/24). */
|
|
238
|
+
export type CreateGatewayBGPFilterRuleRequestMatchPrefixesList = Array<string>;
|
|
239
|
+
export const CreateGatewayBGPFilterRuleRequestMatchPrefixesList = /*@__PURE__*/ S.Array(
|
|
240
|
+
S.String,
|
|
241
|
+
) as any as S.Schema<CreateGatewayBGPFilterRuleRequestMatchPrefixesList>;
|
|
242
|
+
|
|
243
|
+
/** Optional matching criteria. If omitted entirely, the rule acts as match-all. All non-empty fields in this block must match (logical AND). */
|
|
244
|
+
export interface CreateGatewayBGPFilterRuleRequestMatch {
|
|
245
|
+
/** Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. */
|
|
246
|
+
asPathContainsAny?: CreateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList;
|
|
247
|
+
/** Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. */
|
|
248
|
+
communities?: CreateGatewayBGPFilterRuleRequestMatchCommunitiesList;
|
|
249
|
+
/** Matches if the first ASN (immediate neighbor) in the AS-PATH equals this ASN. Combines with asPathContainsAny using logical AND: when both are set, the first ASN must equal firstASN AND the path must additionally contain at least one ASN from asPathContainsAny. */
|
|
250
|
+
firstASN?: number;
|
|
251
|
+
/** Maximum subnet mask length for matched prefixes. May be set together with 'prefixes' (narrows matches to subnets at most this long) or alone (matches any IPv4 route with a mask length <= this value, equivalent to implicit 'prefixes: [0.0.0.0/0]'). */
|
|
252
|
+
maxPrefixLength?: number;
|
|
253
|
+
/** Minimum subnet mask length for matched prefixes. May be set together with 'prefixes' (narrows matches to subnets at least this long) or alone (matches any IPv4 route with a mask length >= this value, equivalent to implicit 'prefixes: [0.0.0.0/0]'). If both minPrefixLength and maxPrefixLength are set, minPrefixLength must be <= maxPrefixLength. */
|
|
254
|
+
minPrefixLength?: number;
|
|
255
|
+
/** Matches the exact IPv4 address of the BGP neighbor that advertised the route. Useful when the same filter is attached to multiple tunnels with different neighbor IPs (allows per-peer rules in a shared filter). When a filter is attached to a single tunnel, this field is effectively a no-op because the route-map is already neighbor-scoped. */
|
|
256
|
+
peer?: string;
|
|
257
|
+
/** List of IPv4 networks to match. A route's prefix matches if it equals one of these (subject to minPrefixLength/maxPrefixLength refinement). If omitted, an implicit 0.0.0.0/0 base is used when minPrefixLength or maxPrefixLength is set; if all three are omitted, prefix matching is not performed at all. Each entry must parse as a valid IPv4 CIDR; the network portion is normalised (10.0.0.5/24 → 10.0.0.0/24). */
|
|
258
|
+
prefixes?: CreateGatewayBGPFilterRuleRequestMatchPrefixesList;
|
|
259
|
+
}
|
|
260
|
+
export const CreateGatewayBGPFilterRuleRequestMatch = /*@__PURE__*/ S.suspend(() =>
|
|
261
|
+
S.Struct({
|
|
262
|
+
asPathContainsAny: S.optional(CreateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList),
|
|
263
|
+
communities: S.optional(CreateGatewayBGPFilterRuleRequestMatchCommunitiesList),
|
|
264
|
+
firstASN: S.optional(S.Number),
|
|
265
|
+
maxPrefixLength: S.optional(S.Number),
|
|
266
|
+
minPrefixLength: S.optional(S.Number),
|
|
267
|
+
peer: S.optional(S.String),
|
|
268
|
+
prefixes: S.optional(CreateGatewayBGPFilterRuleRequestMatchPrefixesList),
|
|
269
|
+
}),
|
|
270
|
+
).annotate({
|
|
271
|
+
identifier: "CreateGatewayBGPFilterRuleRequestMatch",
|
|
272
|
+
}) as any as S.Schema<CreateGatewayBGPFilterRuleRequestMatch>;
|
|
273
|
+
|
|
274
|
+
/** Optional BGP attributes to apply when 'action' is PERMIT. Ignored for DENY rules. */
|
|
275
|
+
export interface CreateGatewayBGPFilterRuleRequestSet {
|
|
276
|
+
/** BGP LOCAL_PREF to set on the route. Higher values are preferred during best-path selection. Default BGP LOCAL_PREF is 100; any value here overrides. */
|
|
277
|
+
localPreference?: number;
|
|
278
|
+
}
|
|
279
|
+
export const CreateGatewayBGPFilterRuleRequestSet = /*@__PURE__*/ S.suspend(() =>
|
|
280
|
+
S.Struct({
|
|
281
|
+
localPreference: S.optional(S.Number),
|
|
282
|
+
}),
|
|
283
|
+
).annotate({
|
|
284
|
+
identifier: "CreateGatewayBGPFilterRuleRequestSet",
|
|
285
|
+
}) as any as S.Schema<CreateGatewayBGPFilterRuleRequestSet>;
|
|
286
|
+
|
|
287
|
+
export interface CreateGatewayBGPFilterRuleRequest {
|
|
288
|
+
projectId: string;
|
|
289
|
+
region: CreateGatewayBGPFilterRuleRequestRegion | (string & {});
|
|
290
|
+
gatewayId: string;
|
|
291
|
+
filterId: string;
|
|
292
|
+
/** The action to take if the route matches all criteria. Case-sensitive. */
|
|
293
|
+
action: CreateGatewayBGPFilterRuleRequestAction | (string & {});
|
|
294
|
+
/** Optional matching criteria. If omitted entirely, the rule acts as match-all. All non-empty fields in this block must match (logical AND). */
|
|
295
|
+
match?: CreateGatewayBGPFilterRuleRequestMatch;
|
|
296
|
+
/** The evaluation order of the rule. Lower numbers are evaluated first. Must be unique within a filter. On POST, this field is optional: when omitted the server auto-assigns max(existing)+10 (the first rule starts at 10). On PUT this field is required — sending a partial update without 'sequence' returns 400. */
|
|
297
|
+
sequence?: number;
|
|
298
|
+
/** Optional BGP attributes to apply when 'action' is PERMIT. Ignored for DENY rules. */
|
|
299
|
+
set?: CreateGatewayBGPFilterRuleRequestSet;
|
|
300
|
+
}
|
|
301
|
+
export const CreateGatewayBGPFilterRuleRequest = /*@__PURE__*/ S.suspend(() =>
|
|
302
|
+
S.Struct({
|
|
303
|
+
projectId: S.String.pipe(T.Label()),
|
|
304
|
+
region: CreateGatewayBGPFilterRuleRequestRegion.pipe(T.Label()),
|
|
305
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
306
|
+
filterId: S.String.pipe(T.Label()),
|
|
307
|
+
action: CreateGatewayBGPFilterRuleRequestAction,
|
|
308
|
+
match: S.optional(CreateGatewayBGPFilterRuleRequestMatch),
|
|
309
|
+
sequence: S.optional(S.Number),
|
|
310
|
+
set: S.optional(CreateGatewayBGPFilterRuleRequestSet),
|
|
311
|
+
}).pipe(
|
|
312
|
+
T.Http({
|
|
313
|
+
method: "POST",
|
|
314
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}/rules",
|
|
315
|
+
code: 200,
|
|
316
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
317
|
+
}),
|
|
318
|
+
),
|
|
319
|
+
).annotate({
|
|
320
|
+
identifier: "CreateGatewayBGPFilterRuleRequest",
|
|
321
|
+
}) as any as S.Schema<CreateGatewayBGPFilterRuleRequest>;
|
|
322
|
+
|
|
323
|
+
/** The action to take if the route matches all criteria. Case-sensitive. */
|
|
324
|
+
export type BGPFilterRuleAction = "PERMIT" | "DENY";
|
|
325
|
+
export const BGPFilterRuleAction = S.String;
|
|
326
|
+
|
|
327
|
+
/** Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. */
|
|
328
|
+
export type BGPFilterRuleMatchAsPathContainsAnyList = Array<number>;
|
|
329
|
+
export const BGPFilterRuleMatchAsPathContainsAnyList = /*@__PURE__*/ S.Array(
|
|
330
|
+
S.Number,
|
|
331
|
+
) as any as S.Schema<BGPFilterRuleMatchAsPathContainsAnyList>;
|
|
332
|
+
|
|
333
|
+
/** Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. */
|
|
334
|
+
export type BGPFilterRuleMatchCommunitiesList = Array<string>;
|
|
335
|
+
export const BGPFilterRuleMatchCommunitiesList = /*@__PURE__*/ S.Array(
|
|
336
|
+
S.String,
|
|
337
|
+
) as any as S.Schema<BGPFilterRuleMatchCommunitiesList>;
|
|
338
|
+
|
|
339
|
+
/** List of IPv4 networks to match. A route's prefix matches if it equals one of these (subject to minPrefixLength/maxPrefixLength refinement). If omitted, an implicit 0.0.0.0/0 base is used when minPrefixLength or maxPrefixLength is set; if all three are omitted, prefix matching is not performed at all. Each entry must parse as a valid IPv4 CIDR; the network portion is normalised (10.0.0.5/24 → 10.0.0.0/24). */
|
|
340
|
+
export type BGPFilterRuleMatchPrefixesList = Array<string>;
|
|
341
|
+
export const BGPFilterRuleMatchPrefixesList = /*@__PURE__*/ S.Array(
|
|
342
|
+
S.String,
|
|
343
|
+
) as any as S.Schema<BGPFilterRuleMatchPrefixesList>;
|
|
344
|
+
|
|
345
|
+
/** Optional matching criteria. If omitted entirely, the rule acts as match-all. All non-empty fields in this block must match (logical AND). */
|
|
346
|
+
export interface BGPFilterRuleMatch {
|
|
347
|
+
/** Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. */
|
|
348
|
+
asPathContainsAny?: BGPFilterRuleMatchAsPathContainsAnyList;
|
|
349
|
+
/** Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. */
|
|
350
|
+
communities?: BGPFilterRuleMatchCommunitiesList;
|
|
351
|
+
/** Matches if the first ASN (immediate neighbor) in the AS-PATH equals this ASN. Combines with asPathContainsAny using logical AND: when both are set, the first ASN must equal firstASN AND the path must additionally contain at least one ASN from asPathContainsAny. */
|
|
352
|
+
firstASN?: number;
|
|
353
|
+
/** Maximum subnet mask length for matched prefixes. May be set together with 'prefixes' (narrows matches to subnets at most this long) or alone (matches any IPv4 route with a mask length <= this value, equivalent to implicit 'prefixes: [0.0.0.0/0]'). */
|
|
354
|
+
maxPrefixLength?: number;
|
|
355
|
+
/** Minimum subnet mask length for matched prefixes. May be set together with 'prefixes' (narrows matches to subnets at least this long) or alone (matches any IPv4 route with a mask length >= this value, equivalent to implicit 'prefixes: [0.0.0.0/0]'). If both minPrefixLength and maxPrefixLength are set, minPrefixLength must be <= maxPrefixLength. */
|
|
356
|
+
minPrefixLength?: number;
|
|
357
|
+
/** Matches the exact IPv4 address of the BGP neighbor that advertised the route. Useful when the same filter is attached to multiple tunnels with different neighbor IPs (allows per-peer rules in a shared filter). When a filter is attached to a single tunnel, this field is effectively a no-op because the route-map is already neighbor-scoped. */
|
|
358
|
+
peer?: string;
|
|
359
|
+
/** List of IPv4 networks to match. A route's prefix matches if it equals one of these (subject to minPrefixLength/maxPrefixLength refinement). If omitted, an implicit 0.0.0.0/0 base is used when minPrefixLength or maxPrefixLength is set; if all three are omitted, prefix matching is not performed at all. Each entry must parse as a valid IPv4 CIDR; the network portion is normalised (10.0.0.5/24 → 10.0.0.0/24). */
|
|
360
|
+
prefixes?: BGPFilterRuleMatchPrefixesList;
|
|
361
|
+
}
|
|
362
|
+
export const BGPFilterRuleMatch = /*@__PURE__*/ S.suspend(() =>
|
|
363
|
+
S.Struct({
|
|
364
|
+
asPathContainsAny: S.optional(BGPFilterRuleMatchAsPathContainsAnyList),
|
|
365
|
+
communities: S.optional(BGPFilterRuleMatchCommunitiesList),
|
|
366
|
+
firstASN: S.optional(S.Number),
|
|
367
|
+
maxPrefixLength: S.optional(S.Number),
|
|
368
|
+
minPrefixLength: S.optional(S.Number),
|
|
369
|
+
peer: S.optional(S.String),
|
|
370
|
+
prefixes: S.optional(BGPFilterRuleMatchPrefixesList),
|
|
371
|
+
}),
|
|
372
|
+
).annotate({ identifier: "BGPFilterRuleMatch" }) as any as S.Schema<BGPFilterRuleMatch>;
|
|
373
|
+
|
|
374
|
+
/** Optional BGP attributes to apply when 'action' is PERMIT. Ignored for DENY rules. */
|
|
375
|
+
export type BGPFilterRuleSet = CreateGatewayBGPFilterRuleRequestSet;
|
|
376
|
+
export const BGPFilterRuleSet = CreateGatewayBGPFilterRuleRequestSet;
|
|
377
|
+
|
|
378
|
+
/** A single rule within a BGPFilter. All non-empty fields within the 'match' block are AND-combined. Rules within a filter are evaluated in 'sequence' order; the first matching rule decides the outcome (logical OR across rules). An implicit DENY follows the last rule. */
|
|
379
|
+
export interface BGPFilterRule {
|
|
380
|
+
/** The action to take if the route matches all criteria. Case-sensitive. */
|
|
381
|
+
action: BGPFilterRuleAction;
|
|
382
|
+
/** The server-generated UUID of the specific rule. */
|
|
383
|
+
id?: string;
|
|
384
|
+
/** Optional matching criteria. If omitted entirely, the rule acts as match-all. All non-empty fields in this block must match (logical AND). */
|
|
385
|
+
match?: BGPFilterRuleMatch;
|
|
386
|
+
/** The evaluation order of the rule. Lower numbers are evaluated first. Must be unique within a filter. On POST, this field is optional: when omitted the server auto-assigns max(existing)+10 (the first rule starts at 10). On PUT this field is required — sending a partial update without 'sequence' returns 400. */
|
|
387
|
+
sequence?: number;
|
|
388
|
+
/** Optional BGP attributes to apply when 'action' is PERMIT. Ignored for DENY rules. */
|
|
389
|
+
set?: CreateGatewayBGPFilterRuleRequestSet;
|
|
390
|
+
}
|
|
391
|
+
export const BGPFilterRule = /*@__PURE__*/ S.suspend(() =>
|
|
392
|
+
S.Struct({
|
|
393
|
+
action: BGPFilterRuleAction,
|
|
394
|
+
id: S.optional(S.String),
|
|
395
|
+
match: S.optional(BGPFilterRuleMatch),
|
|
396
|
+
sequence: S.optional(S.Number),
|
|
397
|
+
set: S.optional(CreateGatewayBGPFilterRuleRequestSet),
|
|
398
|
+
}),
|
|
399
|
+
).annotate({ identifier: "BGPFilterRule" }) as any as S.Schema<BGPFilterRule>;
|
|
400
|
+
|
|
401
|
+
/** The region in which the resource is located. */
|
|
402
|
+
export type CreateGatewayConnectionRequestRegion = "eu01" | "eu02";
|
|
403
|
+
export const CreateGatewayConnectionRequestRegion = S.String;
|
|
404
|
+
|
|
405
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
406
|
+
export type CreateGatewayConnectionRequestLocalSubnetsList = Array<string>;
|
|
407
|
+
export const CreateGatewayConnectionRequestLocalSubnetsList = /*@__PURE__*/ S.Array(
|
|
408
|
+
S.String,
|
|
409
|
+
) as any as S.Schema<CreateGatewayConnectionRequestLocalSubnetsList>;
|
|
410
|
+
|
|
411
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
412
|
+
export type CreateGatewayConnectionRequestRemoteSubnetsList = Array<string>;
|
|
413
|
+
export const CreateGatewayConnectionRequestRemoteSubnetsList = /*@__PURE__*/ S.Array(
|
|
414
|
+
S.String,
|
|
415
|
+
) as any as S.Schema<CreateGatewayConnectionRequestRemoteSubnetsList>;
|
|
416
|
+
|
|
417
|
+
/** Optional. Use this for route-based VPN. */
|
|
418
|
+
export type CreateGatewayConnectionRequestStaticRoutesList = Array<string>;
|
|
419
|
+
export const CreateGatewayConnectionRequestStaticRoutesList = /*@__PURE__*/ S.Array(
|
|
420
|
+
S.String,
|
|
421
|
+
) as any as S.Schema<CreateGatewayConnectionRequestStaticRoutesList>;
|
|
422
|
+
|
|
423
|
+
export interface BGPTunnelConfig {
|
|
424
|
+
/** UUID of the BGPFilter to apply to incoming routes from this tunnel's BGP neighbor. The filter must exist in the same gateway. Multiple tunnels may reference the same BGPFilter; in that case the rules' 'match.peer' field can be used to scope behavior per neighbor. Outbound filtering is not yet supported; use gateway.bgp.overrideAdvertisedRoutes to control what is advertised. */
|
|
425
|
+
inboundFilterId?: string | null;
|
|
426
|
+
remoteAsn: number;
|
|
427
|
+
}
|
|
428
|
+
export const BGPTunnelConfig = /*@__PURE__*/ S.suspend(() =>
|
|
429
|
+
S.Struct({
|
|
430
|
+
inboundFilterId: S.optional(S.NullOr(S.String)),
|
|
431
|
+
remoteAsn: S.Number,
|
|
432
|
+
}),
|
|
433
|
+
).annotate({ identifier: "BGPTunnelConfig" }) as any as S.Schema<BGPTunnelConfig>;
|
|
434
|
+
|
|
435
|
+
/** The peering object defines the point-to-point IP configuration for the Tunnel Interface. These addresses serve as next-hop identifiers and are used for BGP peering sessions and can be used in Static Route-Based connectivity. */
|
|
436
|
+
export interface PeeringConfig {
|
|
437
|
+
localAddress?: string;
|
|
438
|
+
remoteAddress?: string;
|
|
439
|
+
}
|
|
440
|
+
export const PeeringConfig = /*@__PURE__*/ S.suspend(() =>
|
|
441
|
+
S.Struct({
|
|
442
|
+
localAddress: S.optional(S.String),
|
|
443
|
+
remoteAddress: S.optional(S.String),
|
|
444
|
+
}),
|
|
445
|
+
).annotate({ identifier: "PeeringConfig" }) as any as S.Schema<PeeringConfig>;
|
|
446
|
+
|
|
447
|
+
export type TunnelConfigurationPhase1DhGroupsItem =
|
|
448
|
+
| "modp1024"
|
|
449
|
+
| "modp2048"
|
|
450
|
+
| "ecp256"
|
|
451
|
+
| "ecp384"
|
|
452
|
+
| "modp2048s256";
|
|
453
|
+
export const TunnelConfigurationPhase1DhGroupsItem = S.String;
|
|
454
|
+
|
|
455
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
456
|
+
export type TunnelConfigurationPhase1DhGroupsList = Array<
|
|
457
|
+
TunnelConfigurationPhase1DhGroupsItem | (string & {})
|
|
458
|
+
>;
|
|
459
|
+
export const TunnelConfigurationPhase1DhGroupsList = /*@__PURE__*/ S.Array(
|
|
460
|
+
TunnelConfigurationPhase1DhGroupsItem,
|
|
461
|
+
) as any as S.Schema<TunnelConfigurationPhase1DhGroupsList>;
|
|
462
|
+
|
|
463
|
+
export type TunnelConfigurationPhase1EncryptionAlgorithmsItem =
|
|
464
|
+
| "aes256"
|
|
465
|
+
| "aes128gcm16"
|
|
466
|
+
| "aes256gcm16";
|
|
467
|
+
export const TunnelConfigurationPhase1EncryptionAlgorithmsItem = S.String;
|
|
468
|
+
|
|
469
|
+
export type TunnelConfigurationPhase1EncryptionAlgorithmsList = Array<
|
|
470
|
+
TunnelConfigurationPhase1EncryptionAlgorithmsItem | (string & {})
|
|
471
|
+
>;
|
|
472
|
+
export const TunnelConfigurationPhase1EncryptionAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
473
|
+
TunnelConfigurationPhase1EncryptionAlgorithmsItem,
|
|
474
|
+
) as any as S.Schema<TunnelConfigurationPhase1EncryptionAlgorithmsList>;
|
|
475
|
+
|
|
476
|
+
export type TunnelConfigurationPhase1IntegrityAlgorithmsItem =
|
|
477
|
+
| "sha1"
|
|
478
|
+
| "sha2_256"
|
|
479
|
+
| "sha2_384"
|
|
480
|
+
| "sha2_512";
|
|
481
|
+
export const TunnelConfigurationPhase1IntegrityAlgorithmsItem = S.String;
|
|
482
|
+
|
|
483
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
484
|
+
export type TunnelConfigurationPhase1IntegrityAlgorithmsList = Array<
|
|
485
|
+
TunnelConfigurationPhase1IntegrityAlgorithmsItem | (string & {})
|
|
486
|
+
>;
|
|
487
|
+
export const TunnelConfigurationPhase1IntegrityAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
488
|
+
TunnelConfigurationPhase1IntegrityAlgorithmsItem,
|
|
489
|
+
) as any as S.Schema<TunnelConfigurationPhase1IntegrityAlgorithmsList>;
|
|
490
|
+
|
|
491
|
+
export interface TunnelConfigurationPhase1 {
|
|
492
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
493
|
+
dhGroups?: TunnelConfigurationPhase1DhGroupsList;
|
|
494
|
+
encryptionAlgorithms: TunnelConfigurationPhase1EncryptionAlgorithmsList;
|
|
495
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
496
|
+
integrityAlgorithms: TunnelConfigurationPhase1IntegrityAlgorithmsList;
|
|
497
|
+
/** Time to schedule a IKE re-keying (in seconds). */
|
|
498
|
+
rekeyTime?: number;
|
|
499
|
+
}
|
|
500
|
+
export const TunnelConfigurationPhase1 = /*@__PURE__*/ S.suspend(() =>
|
|
501
|
+
S.Struct({
|
|
502
|
+
dhGroups: S.optional(TunnelConfigurationPhase1DhGroupsList),
|
|
503
|
+
encryptionAlgorithms: TunnelConfigurationPhase1EncryptionAlgorithmsList,
|
|
504
|
+
integrityAlgorithms: TunnelConfigurationPhase1IntegrityAlgorithmsList,
|
|
505
|
+
rekeyTime: S.optional(S.Number),
|
|
506
|
+
}),
|
|
507
|
+
).annotate({
|
|
508
|
+
identifier: "TunnelConfigurationPhase1",
|
|
509
|
+
}) as any as S.Schema<TunnelConfigurationPhase1>;
|
|
510
|
+
|
|
511
|
+
export type TunnelConfigurationPhase2DhGroupsItem =
|
|
512
|
+
| "modp1024"
|
|
513
|
+
| "modp2048"
|
|
514
|
+
| "ecp256"
|
|
515
|
+
| "ecp384"
|
|
516
|
+
| "modp2048s256";
|
|
517
|
+
export const TunnelConfigurationPhase2DhGroupsItem = S.String;
|
|
518
|
+
|
|
519
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
520
|
+
export type TunnelConfigurationPhase2DhGroupsList = Array<
|
|
521
|
+
TunnelConfigurationPhase2DhGroupsItem | (string & {})
|
|
522
|
+
>;
|
|
523
|
+
export const TunnelConfigurationPhase2DhGroupsList = /*@__PURE__*/ S.Array(
|
|
524
|
+
TunnelConfigurationPhase2DhGroupsItem,
|
|
525
|
+
) as any as S.Schema<TunnelConfigurationPhase2DhGroupsList>;
|
|
526
|
+
|
|
527
|
+
export type TunnelConfigurationPhase2EncryptionAlgorithmsItem =
|
|
528
|
+
| "aes256"
|
|
529
|
+
| "aes128gcm16"
|
|
530
|
+
| "aes256gcm16";
|
|
531
|
+
export const TunnelConfigurationPhase2EncryptionAlgorithmsItem = S.String;
|
|
532
|
+
|
|
533
|
+
export type TunnelConfigurationPhase2EncryptionAlgorithmsList = Array<
|
|
534
|
+
TunnelConfigurationPhase2EncryptionAlgorithmsItem | (string & {})
|
|
535
|
+
>;
|
|
536
|
+
export const TunnelConfigurationPhase2EncryptionAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
537
|
+
TunnelConfigurationPhase2EncryptionAlgorithmsItem,
|
|
538
|
+
) as any as S.Schema<TunnelConfigurationPhase2EncryptionAlgorithmsList>;
|
|
539
|
+
|
|
540
|
+
export type TunnelConfigurationPhase2IntegrityAlgorithmsItem =
|
|
541
|
+
| "sha1"
|
|
542
|
+
| "sha2_256"
|
|
543
|
+
| "sha2_384"
|
|
544
|
+
| "sha2_512";
|
|
545
|
+
export const TunnelConfigurationPhase2IntegrityAlgorithmsItem = S.String;
|
|
546
|
+
|
|
547
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
548
|
+
export type TunnelConfigurationPhase2IntegrityAlgorithmsList = Array<
|
|
549
|
+
TunnelConfigurationPhase2IntegrityAlgorithmsItem | (string & {})
|
|
550
|
+
>;
|
|
551
|
+
export const TunnelConfigurationPhase2IntegrityAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
552
|
+
TunnelConfigurationPhase2IntegrityAlgorithmsItem,
|
|
553
|
+
) as any as S.Schema<TunnelConfigurationPhase2IntegrityAlgorithmsList>;
|
|
554
|
+
|
|
555
|
+
/** Action to perform for this CHILD_SA on DPD timeout. "clear": Closes the CHILD_SA and does not take further action. "restart": immediately tries to re-negotiate the CILD_SA under a fresh IKE_SA. */
|
|
556
|
+
export type TunnelConfigurationPhase2DpdAction = "clear" | "restart";
|
|
557
|
+
export const TunnelConfigurationPhase2DpdAction = S.String;
|
|
558
|
+
|
|
559
|
+
/** Action to perform after loading the connection configuration. "none": The connection will be loaded but needs to be manually initiated. "start": initiates the connection actively. */
|
|
560
|
+
export type TunnelConfigurationPhase2StartAction = "none" | "start";
|
|
561
|
+
export const TunnelConfigurationPhase2StartAction = S.String;
|
|
562
|
+
|
|
563
|
+
export interface TunnelConfigurationPhase2 {
|
|
564
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
565
|
+
dhGroups?: TunnelConfigurationPhase2DhGroupsList;
|
|
566
|
+
encryptionAlgorithms: TunnelConfigurationPhase2EncryptionAlgorithmsList;
|
|
567
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
568
|
+
integrityAlgorithms: TunnelConfigurationPhase2IntegrityAlgorithmsList;
|
|
569
|
+
/** Action to perform for this CHILD_SA on DPD timeout. "clear": Closes the CHILD_SA and does not take further action. "restart": immediately tries to re-negotiate the CILD_SA under a fresh IKE_SA. */
|
|
570
|
+
dpdAction?: TunnelConfigurationPhase2DpdAction | (string & {});
|
|
571
|
+
/** Time to schedule a Child SA re-keying (in seconds). */
|
|
572
|
+
rekeyTime?: number;
|
|
573
|
+
/** Action to perform after loading the connection configuration. "none": The connection will be loaded but needs to be manually initiated. "start": initiates the connection actively. */
|
|
574
|
+
startAction?: TunnelConfigurationPhase2StartAction | (string & {});
|
|
575
|
+
}
|
|
576
|
+
export const TunnelConfigurationPhase2 = /*@__PURE__*/ S.suspend(() =>
|
|
577
|
+
S.Struct({
|
|
578
|
+
dhGroups: S.optional(TunnelConfigurationPhase2DhGroupsList),
|
|
579
|
+
encryptionAlgorithms: TunnelConfigurationPhase2EncryptionAlgorithmsList,
|
|
580
|
+
integrityAlgorithms: TunnelConfigurationPhase2IntegrityAlgorithmsList,
|
|
581
|
+
dpdAction: S.optional(TunnelConfigurationPhase2DpdAction),
|
|
582
|
+
rekeyTime: S.optional(S.Number),
|
|
583
|
+
startAction: S.optional(TunnelConfigurationPhase2StartAction),
|
|
584
|
+
}),
|
|
585
|
+
).annotate({
|
|
586
|
+
identifier: "TunnelConfigurationPhase2",
|
|
587
|
+
}) as any as S.Schema<TunnelConfigurationPhase2>;
|
|
588
|
+
|
|
589
|
+
export interface TunnelConfiguration {
|
|
590
|
+
bgp?: BGPTunnelConfig;
|
|
591
|
+
peering?: PeeringConfig;
|
|
592
|
+
phase1: TunnelConfigurationPhase1;
|
|
593
|
+
phase2: TunnelConfigurationPhase2;
|
|
594
|
+
/** A Pre-Shared Key for authentication. Required in create-requests, optional in update-requests and omitted in every response. */
|
|
595
|
+
preSharedKey?: string;
|
|
596
|
+
remoteAddress: string;
|
|
597
|
+
}
|
|
598
|
+
export const TunnelConfiguration = /*@__PURE__*/ S.suspend(() =>
|
|
599
|
+
S.Struct({
|
|
600
|
+
bgp: S.optional(BGPTunnelConfig),
|
|
601
|
+
peering: S.optional(PeeringConfig),
|
|
602
|
+
phase1: TunnelConfigurationPhase1,
|
|
603
|
+
phase2: TunnelConfigurationPhase2,
|
|
604
|
+
preSharedKey: S.optional(S.String),
|
|
605
|
+
remoteAddress: S.String,
|
|
606
|
+
}),
|
|
607
|
+
).annotate({ identifier: "TunnelConfiguration" }) as any as S.Schema<TunnelConfiguration>;
|
|
608
|
+
|
|
609
|
+
export interface CreateGatewayConnectionRequest {
|
|
610
|
+
projectId: string;
|
|
611
|
+
region: CreateGatewayConnectionRequestRegion | (string & {});
|
|
612
|
+
gatewayId: string;
|
|
613
|
+
/** A user-friendly name for the connection. */
|
|
614
|
+
displayName: string;
|
|
615
|
+
/** This flag decides whether this connection should be enabled or disabled */
|
|
616
|
+
enabled?: boolean;
|
|
617
|
+
labels?: Label;
|
|
618
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
619
|
+
localSubnets?: CreateGatewayConnectionRequestLocalSubnetsList;
|
|
620
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
621
|
+
remoteSubnets?: CreateGatewayConnectionRequestRemoteSubnetsList;
|
|
622
|
+
/** Optional. Use this for route-based VPN. */
|
|
623
|
+
staticRoutes?: CreateGatewayConnectionRequestStaticRoutesList;
|
|
624
|
+
tunnel1: TunnelConfiguration;
|
|
625
|
+
tunnel2: TunnelConfiguration;
|
|
626
|
+
}
|
|
627
|
+
export const CreateGatewayConnectionRequest = /*@__PURE__*/ S.suspend(() =>
|
|
628
|
+
S.Struct({
|
|
629
|
+
projectId: S.String.pipe(T.Label()),
|
|
630
|
+
region: CreateGatewayConnectionRequestRegion.pipe(T.Label()),
|
|
631
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
632
|
+
displayName: S.String,
|
|
633
|
+
enabled: S.optional(S.Boolean),
|
|
634
|
+
labels: S.optional(Label),
|
|
635
|
+
localSubnets: S.optional(CreateGatewayConnectionRequestLocalSubnetsList),
|
|
636
|
+
remoteSubnets: S.optional(CreateGatewayConnectionRequestRemoteSubnetsList),
|
|
637
|
+
staticRoutes: S.optional(CreateGatewayConnectionRequestStaticRoutesList),
|
|
638
|
+
tunnel1: TunnelConfiguration,
|
|
639
|
+
tunnel2: TunnelConfiguration,
|
|
640
|
+
}).pipe(
|
|
641
|
+
T.Http({
|
|
642
|
+
method: "POST",
|
|
643
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/connections",
|
|
644
|
+
code: 200,
|
|
645
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
646
|
+
}),
|
|
647
|
+
),
|
|
648
|
+
).annotate({
|
|
649
|
+
identifier: "CreateGatewayConnectionRequest",
|
|
650
|
+
}) as any as S.Schema<CreateGatewayConnectionRequest>;
|
|
651
|
+
|
|
652
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
653
|
+
export type ConnectionResponseOutputLocalSubnetsList = Array<string>;
|
|
654
|
+
export const ConnectionResponseOutputLocalSubnetsList = /*@__PURE__*/ S.Array(
|
|
655
|
+
S.String,
|
|
656
|
+
) as any as S.Schema<ConnectionResponseOutputLocalSubnetsList>;
|
|
657
|
+
|
|
658
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
659
|
+
export type ConnectionResponseOutputRemoteSubnetsList = Array<string>;
|
|
660
|
+
export const ConnectionResponseOutputRemoteSubnetsList = /*@__PURE__*/ S.Array(
|
|
661
|
+
S.String,
|
|
662
|
+
) as any as S.Schema<ConnectionResponseOutputRemoteSubnetsList>;
|
|
663
|
+
|
|
664
|
+
/** Optional. Use this for route-based VPN. */
|
|
665
|
+
export type ConnectionResponseOutputStaticRoutesList = Array<string>;
|
|
666
|
+
export const ConnectionResponseOutputStaticRoutesList = /*@__PURE__*/ S.Array(
|
|
667
|
+
S.String,
|
|
668
|
+
) as any as S.Schema<ConnectionResponseOutputStaticRoutesList>;
|
|
669
|
+
|
|
670
|
+
export type TunnelConfigurationOutputPhase1DhGroupsItem =
|
|
671
|
+
| "modp1024"
|
|
672
|
+
| "modp2048"
|
|
673
|
+
| "ecp256"
|
|
674
|
+
| "ecp384"
|
|
675
|
+
| "modp2048s256";
|
|
676
|
+
export const TunnelConfigurationOutputPhase1DhGroupsItem = S.String;
|
|
677
|
+
|
|
678
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
679
|
+
export type TunnelConfigurationOutputPhase1DhGroupsList =
|
|
680
|
+
Array<TunnelConfigurationOutputPhase1DhGroupsItem>;
|
|
681
|
+
export const TunnelConfigurationOutputPhase1DhGroupsList = /*@__PURE__*/ S.Array(
|
|
682
|
+
TunnelConfigurationOutputPhase1DhGroupsItem,
|
|
683
|
+
) as any as S.Schema<TunnelConfigurationOutputPhase1DhGroupsList>;
|
|
684
|
+
|
|
685
|
+
export type TunnelConfigurationOutputPhase1EncryptionAlgorithmsItem =
|
|
686
|
+
| "aes256"
|
|
687
|
+
| "aes128gcm16"
|
|
688
|
+
| "aes256gcm16";
|
|
689
|
+
export const TunnelConfigurationOutputPhase1EncryptionAlgorithmsItem = S.String;
|
|
690
|
+
|
|
691
|
+
export type TunnelConfigurationOutputPhase1EncryptionAlgorithmsList =
|
|
692
|
+
Array<TunnelConfigurationOutputPhase1EncryptionAlgorithmsItem>;
|
|
693
|
+
export const TunnelConfigurationOutputPhase1EncryptionAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
694
|
+
TunnelConfigurationOutputPhase1EncryptionAlgorithmsItem,
|
|
695
|
+
) as any as S.Schema<TunnelConfigurationOutputPhase1EncryptionAlgorithmsList>;
|
|
696
|
+
|
|
697
|
+
export type TunnelConfigurationOutputPhase1IntegrityAlgorithmsItem =
|
|
698
|
+
| "sha1"
|
|
699
|
+
| "sha2_256"
|
|
700
|
+
| "sha2_384"
|
|
701
|
+
| "sha2_512";
|
|
702
|
+
export const TunnelConfigurationOutputPhase1IntegrityAlgorithmsItem = S.String;
|
|
703
|
+
|
|
704
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
705
|
+
export type TunnelConfigurationOutputPhase1IntegrityAlgorithmsList =
|
|
706
|
+
Array<TunnelConfigurationOutputPhase1IntegrityAlgorithmsItem>;
|
|
707
|
+
export const TunnelConfigurationOutputPhase1IntegrityAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
708
|
+
TunnelConfigurationOutputPhase1IntegrityAlgorithmsItem,
|
|
709
|
+
) as any as S.Schema<TunnelConfigurationOutputPhase1IntegrityAlgorithmsList>;
|
|
710
|
+
|
|
711
|
+
export interface TunnelConfigurationOutputPhase1 {
|
|
712
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
713
|
+
dhGroups?: TunnelConfigurationOutputPhase1DhGroupsList;
|
|
714
|
+
encryptionAlgorithms: TunnelConfigurationOutputPhase1EncryptionAlgorithmsList;
|
|
715
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
716
|
+
integrityAlgorithms: TunnelConfigurationOutputPhase1IntegrityAlgorithmsList;
|
|
717
|
+
/** Time to schedule a IKE re-keying (in seconds). */
|
|
718
|
+
rekeyTime?: number;
|
|
719
|
+
}
|
|
720
|
+
export const TunnelConfigurationOutputPhase1 = /*@__PURE__*/ S.suspend(() =>
|
|
721
|
+
S.Struct({
|
|
722
|
+
dhGroups: S.optional(TunnelConfigurationOutputPhase1DhGroupsList),
|
|
723
|
+
encryptionAlgorithms: TunnelConfigurationOutputPhase1EncryptionAlgorithmsList,
|
|
724
|
+
integrityAlgorithms: TunnelConfigurationOutputPhase1IntegrityAlgorithmsList,
|
|
725
|
+
rekeyTime: S.optional(S.Number),
|
|
726
|
+
}),
|
|
727
|
+
).annotate({
|
|
728
|
+
identifier: "TunnelConfigurationOutputPhase1",
|
|
729
|
+
}) as any as S.Schema<TunnelConfigurationOutputPhase1>;
|
|
730
|
+
|
|
731
|
+
export type TunnelConfigurationOutputPhase2DhGroupsItem =
|
|
732
|
+
| "modp1024"
|
|
733
|
+
| "modp2048"
|
|
734
|
+
| "ecp256"
|
|
735
|
+
| "ecp384"
|
|
736
|
+
| "modp2048s256";
|
|
737
|
+
export const TunnelConfigurationOutputPhase2DhGroupsItem = S.String;
|
|
738
|
+
|
|
739
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
740
|
+
export type TunnelConfigurationOutputPhase2DhGroupsList =
|
|
741
|
+
Array<TunnelConfigurationOutputPhase2DhGroupsItem>;
|
|
742
|
+
export const TunnelConfigurationOutputPhase2DhGroupsList = /*@__PURE__*/ S.Array(
|
|
743
|
+
TunnelConfigurationOutputPhase2DhGroupsItem,
|
|
744
|
+
) as any as S.Schema<TunnelConfigurationOutputPhase2DhGroupsList>;
|
|
745
|
+
|
|
746
|
+
export type TunnelConfigurationOutputPhase2EncryptionAlgorithmsItem =
|
|
747
|
+
| "aes256"
|
|
748
|
+
| "aes128gcm16"
|
|
749
|
+
| "aes256gcm16";
|
|
750
|
+
export const TunnelConfigurationOutputPhase2EncryptionAlgorithmsItem = S.String;
|
|
751
|
+
|
|
752
|
+
export type TunnelConfigurationOutputPhase2EncryptionAlgorithmsList =
|
|
753
|
+
Array<TunnelConfigurationOutputPhase2EncryptionAlgorithmsItem>;
|
|
754
|
+
export const TunnelConfigurationOutputPhase2EncryptionAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
755
|
+
TunnelConfigurationOutputPhase2EncryptionAlgorithmsItem,
|
|
756
|
+
) as any as S.Schema<TunnelConfigurationOutputPhase2EncryptionAlgorithmsList>;
|
|
757
|
+
|
|
758
|
+
export type TunnelConfigurationOutputPhase2IntegrityAlgorithmsItem =
|
|
759
|
+
| "sha1"
|
|
760
|
+
| "sha2_256"
|
|
761
|
+
| "sha2_384"
|
|
762
|
+
| "sha2_512";
|
|
763
|
+
export const TunnelConfigurationOutputPhase2IntegrityAlgorithmsItem = S.String;
|
|
764
|
+
|
|
765
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
766
|
+
export type TunnelConfigurationOutputPhase2IntegrityAlgorithmsList =
|
|
767
|
+
Array<TunnelConfigurationOutputPhase2IntegrityAlgorithmsItem>;
|
|
768
|
+
export const TunnelConfigurationOutputPhase2IntegrityAlgorithmsList = /*@__PURE__*/ S.Array(
|
|
769
|
+
TunnelConfigurationOutputPhase2IntegrityAlgorithmsItem,
|
|
770
|
+
) as any as S.Schema<TunnelConfigurationOutputPhase2IntegrityAlgorithmsList>;
|
|
771
|
+
|
|
772
|
+
/** Action to perform for this CHILD_SA on DPD timeout. "clear": Closes the CHILD_SA and does not take further action. "restart": immediately tries to re-negotiate the CILD_SA under a fresh IKE_SA. */
|
|
773
|
+
export type TunnelConfigurationOutputPhase2DpdAction = "clear" | "restart";
|
|
774
|
+
export const TunnelConfigurationOutputPhase2DpdAction = S.String;
|
|
775
|
+
|
|
776
|
+
/** Action to perform after loading the connection configuration. "none": The connection will be loaded but needs to be manually initiated. "start": initiates the connection actively. */
|
|
777
|
+
export type TunnelConfigurationOutputPhase2StartAction = "none" | "start";
|
|
778
|
+
export const TunnelConfigurationOutputPhase2StartAction = S.String;
|
|
779
|
+
|
|
780
|
+
export interface TunnelConfigurationOutputPhase2 {
|
|
781
|
+
/** The Diffie-Hellman Group. Required, except if AEAD algorithms are selected. */
|
|
782
|
+
dhGroups?: TunnelConfigurationOutputPhase2DhGroupsList;
|
|
783
|
+
encryptionAlgorithms: TunnelConfigurationOutputPhase2EncryptionAlgorithmsList;
|
|
784
|
+
/** Supported integrity algorithms. SHA1 is deprecated and will be removed on 2026-12-31. */
|
|
785
|
+
integrityAlgorithms: TunnelConfigurationOutputPhase2IntegrityAlgorithmsList;
|
|
786
|
+
/** Action to perform for this CHILD_SA on DPD timeout. "clear": Closes the CHILD_SA and does not take further action. "restart": immediately tries to re-negotiate the CILD_SA under a fresh IKE_SA. */
|
|
787
|
+
dpdAction?: TunnelConfigurationOutputPhase2DpdAction;
|
|
788
|
+
/** Time to schedule a Child SA re-keying (in seconds). */
|
|
789
|
+
rekeyTime?: number;
|
|
790
|
+
/** Action to perform after loading the connection configuration. "none": The connection will be loaded but needs to be manually initiated. "start": initiates the connection actively. */
|
|
791
|
+
startAction?: TunnelConfigurationOutputPhase2StartAction;
|
|
792
|
+
}
|
|
793
|
+
export const TunnelConfigurationOutputPhase2 = /*@__PURE__*/ S.suspend(() =>
|
|
794
|
+
S.Struct({
|
|
795
|
+
dhGroups: S.optional(TunnelConfigurationOutputPhase2DhGroupsList),
|
|
796
|
+
encryptionAlgorithms: TunnelConfigurationOutputPhase2EncryptionAlgorithmsList,
|
|
797
|
+
integrityAlgorithms: TunnelConfigurationOutputPhase2IntegrityAlgorithmsList,
|
|
798
|
+
dpdAction: S.optional(TunnelConfigurationOutputPhase2DpdAction),
|
|
799
|
+
rekeyTime: S.optional(S.Number),
|
|
800
|
+
startAction: S.optional(TunnelConfigurationOutputPhase2StartAction),
|
|
801
|
+
}),
|
|
802
|
+
).annotate({
|
|
803
|
+
identifier: "TunnelConfigurationOutputPhase2",
|
|
804
|
+
}) as any as S.Schema<TunnelConfigurationOutputPhase2>;
|
|
805
|
+
|
|
806
|
+
export interface TunnelConfigurationOutput {
|
|
807
|
+
bgp?: BGPTunnelConfig;
|
|
808
|
+
peering?: PeeringConfig;
|
|
809
|
+
phase1: TunnelConfigurationOutputPhase1;
|
|
810
|
+
phase2: TunnelConfigurationOutputPhase2;
|
|
811
|
+
remoteAddress: string;
|
|
812
|
+
}
|
|
813
|
+
export const TunnelConfigurationOutput = /*@__PURE__*/ S.suspend(() =>
|
|
814
|
+
S.Struct({
|
|
815
|
+
bgp: S.optional(BGPTunnelConfig),
|
|
816
|
+
peering: S.optional(PeeringConfig),
|
|
817
|
+
phase1: TunnelConfigurationOutputPhase1,
|
|
818
|
+
phase2: TunnelConfigurationOutputPhase2,
|
|
819
|
+
remoteAddress: S.String,
|
|
820
|
+
}),
|
|
821
|
+
).annotate({
|
|
822
|
+
identifier: "TunnelConfigurationOutput",
|
|
823
|
+
}) as any as S.Schema<TunnelConfigurationOutput>;
|
|
824
|
+
|
|
825
|
+
export interface ConnectionResponseOutput {
|
|
826
|
+
/** A user-friendly name for the connection. */
|
|
827
|
+
displayName: string;
|
|
828
|
+
/** This flag decides whether this connection should be enabled or disabled */
|
|
829
|
+
enabled?: boolean;
|
|
830
|
+
/** UUID of the Gateway instance. */
|
|
831
|
+
id?: string;
|
|
832
|
+
labels?: Label;
|
|
833
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
834
|
+
localSubnets?: ConnectionResponseOutputLocalSubnetsList;
|
|
835
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
836
|
+
remoteSubnets?: ConnectionResponseOutputRemoteSubnetsList;
|
|
837
|
+
/** Optional. Use this for route-based VPN. */
|
|
838
|
+
staticRoutes?: ConnectionResponseOutputStaticRoutesList;
|
|
839
|
+
tunnel1: TunnelConfigurationOutput;
|
|
840
|
+
tunnel2: TunnelConfigurationOutput;
|
|
841
|
+
}
|
|
842
|
+
export const ConnectionResponseOutput = /*@__PURE__*/ S.suspend(() =>
|
|
843
|
+
S.Struct({
|
|
844
|
+
displayName: S.String,
|
|
845
|
+
enabled: S.optional(S.Boolean),
|
|
846
|
+
id: S.optional(S.String),
|
|
847
|
+
labels: S.optional(Label),
|
|
848
|
+
localSubnets: S.optional(ConnectionResponseOutputLocalSubnetsList),
|
|
849
|
+
remoteSubnets: S.optional(ConnectionResponseOutputRemoteSubnetsList),
|
|
850
|
+
staticRoutes: S.optional(ConnectionResponseOutputStaticRoutesList),
|
|
851
|
+
tunnel1: TunnelConfigurationOutput,
|
|
852
|
+
tunnel2: TunnelConfigurationOutput,
|
|
853
|
+
}),
|
|
854
|
+
).annotate({ identifier: "ConnectionResponseOutput" }) as any as S.Schema<ConnectionResponseOutput>;
|
|
855
|
+
|
|
856
|
+
/** The region in which the resource is located. */
|
|
857
|
+
export type DeleteGatewayRequestRegion = "eu01" | "eu02";
|
|
858
|
+
export const DeleteGatewayRequestRegion = S.String;
|
|
859
|
+
|
|
860
|
+
export interface DeleteGatewayRequest {
|
|
861
|
+
projectId: string;
|
|
862
|
+
region: DeleteGatewayRequestRegion | (string & {});
|
|
863
|
+
gatewayId: string;
|
|
864
|
+
}
|
|
865
|
+
export const DeleteGatewayRequest = /*@__PURE__*/ S.suspend(() =>
|
|
866
|
+
S.Struct({
|
|
867
|
+
projectId: S.String.pipe(T.Label()),
|
|
868
|
+
region: DeleteGatewayRequestRegion.pipe(T.Label()),
|
|
869
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
870
|
+
}).pipe(
|
|
871
|
+
T.Http({
|
|
872
|
+
method: "DELETE",
|
|
873
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}",
|
|
874
|
+
code: 200,
|
|
875
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
876
|
+
}),
|
|
877
|
+
),
|
|
878
|
+
).annotate({ identifier: "DeleteGatewayRequest" }) as any as S.Schema<DeleteGatewayRequest>;
|
|
879
|
+
|
|
880
|
+
export interface DeleteGatewayResponse {}
|
|
881
|
+
export const DeleteGatewayResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate({
|
|
882
|
+
identifier: "DeleteGatewayResponse",
|
|
883
|
+
}) as any as S.Schema<DeleteGatewayResponse>;
|
|
884
|
+
|
|
885
|
+
/** The region in which the resource is located. */
|
|
886
|
+
export type DeleteGatewayBGPFilterRequestRegion = "eu01" | "eu02";
|
|
887
|
+
export const DeleteGatewayBGPFilterRequestRegion = S.String;
|
|
888
|
+
|
|
889
|
+
export interface DeleteGatewayBGPFilterRequest {
|
|
890
|
+
projectId: string;
|
|
891
|
+
region: DeleteGatewayBGPFilterRequestRegion | (string & {});
|
|
892
|
+
gatewayId: string;
|
|
893
|
+
filterId: string;
|
|
894
|
+
}
|
|
895
|
+
export const DeleteGatewayBGPFilterRequest = /*@__PURE__*/ S.suspend(() =>
|
|
896
|
+
S.Struct({
|
|
897
|
+
projectId: S.String.pipe(T.Label()),
|
|
898
|
+
region: DeleteGatewayBGPFilterRequestRegion.pipe(T.Label()),
|
|
899
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
900
|
+
filterId: S.String.pipe(T.Label()),
|
|
901
|
+
}).pipe(
|
|
902
|
+
T.Http({
|
|
903
|
+
method: "DELETE",
|
|
904
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}",
|
|
905
|
+
code: 200,
|
|
906
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
907
|
+
}),
|
|
908
|
+
),
|
|
909
|
+
).annotate({
|
|
910
|
+
identifier: "DeleteGatewayBGPFilterRequest",
|
|
911
|
+
}) as any as S.Schema<DeleteGatewayBGPFilterRequest>;
|
|
912
|
+
|
|
913
|
+
export interface DeleteGatewayBGPFilterResponse {}
|
|
914
|
+
export const DeleteGatewayBGPFilterResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate({
|
|
915
|
+
identifier: "DeleteGatewayBGPFilterResponse",
|
|
916
|
+
}) as any as S.Schema<DeleteGatewayBGPFilterResponse>;
|
|
917
|
+
|
|
918
|
+
/** The region in which the resource is located. */
|
|
919
|
+
export type DeleteGatewayBGPFilterRuleRequestRegion = "eu01" | "eu02";
|
|
920
|
+
export const DeleteGatewayBGPFilterRuleRequestRegion = S.String;
|
|
921
|
+
|
|
922
|
+
export interface DeleteGatewayBGPFilterRuleRequest {
|
|
923
|
+
projectId: string;
|
|
924
|
+
region: DeleteGatewayBGPFilterRuleRequestRegion | (string & {});
|
|
925
|
+
gatewayId: string;
|
|
926
|
+
filterId: string;
|
|
927
|
+
ruleId: string;
|
|
928
|
+
}
|
|
929
|
+
export const DeleteGatewayBGPFilterRuleRequest = /*@__PURE__*/ S.suspend(() =>
|
|
930
|
+
S.Struct({
|
|
931
|
+
projectId: S.String.pipe(T.Label()),
|
|
932
|
+
region: DeleteGatewayBGPFilterRuleRequestRegion.pipe(T.Label()),
|
|
933
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
934
|
+
filterId: S.String.pipe(T.Label()),
|
|
935
|
+
ruleId: S.String.pipe(T.Label()),
|
|
936
|
+
}).pipe(
|
|
937
|
+
T.Http({
|
|
938
|
+
method: "DELETE",
|
|
939
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}/rules/{ruleId}",
|
|
940
|
+
code: 200,
|
|
941
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
942
|
+
}),
|
|
943
|
+
),
|
|
944
|
+
).annotate({
|
|
945
|
+
identifier: "DeleteGatewayBGPFilterRuleRequest",
|
|
946
|
+
}) as any as S.Schema<DeleteGatewayBGPFilterRuleRequest>;
|
|
947
|
+
|
|
948
|
+
export interface DeleteGatewayBGPFilterRuleResponse {}
|
|
949
|
+
export const DeleteGatewayBGPFilterRuleResponse = /*@__PURE__*/ S.suspend(() =>
|
|
950
|
+
S.Struct({}),
|
|
951
|
+
).annotate({
|
|
952
|
+
identifier: "DeleteGatewayBGPFilterRuleResponse",
|
|
953
|
+
}) as any as S.Schema<DeleteGatewayBGPFilterRuleResponse>;
|
|
954
|
+
|
|
955
|
+
/** The region in which the resource is located. */
|
|
956
|
+
export type DeleteGatewayConnectionRequestRegion = "eu01" | "eu02";
|
|
957
|
+
export const DeleteGatewayConnectionRequestRegion = S.String;
|
|
958
|
+
|
|
959
|
+
export interface DeleteGatewayConnectionRequest {
|
|
960
|
+
projectId: string;
|
|
961
|
+
region: DeleteGatewayConnectionRequestRegion | (string & {});
|
|
962
|
+
gatewayId: string;
|
|
963
|
+
connectionId: string;
|
|
964
|
+
}
|
|
965
|
+
export const DeleteGatewayConnectionRequest = /*@__PURE__*/ S.suspend(() =>
|
|
966
|
+
S.Struct({
|
|
967
|
+
projectId: S.String.pipe(T.Label()),
|
|
968
|
+
region: DeleteGatewayConnectionRequestRegion.pipe(T.Label()),
|
|
969
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
970
|
+
connectionId: S.String.pipe(T.Label()),
|
|
971
|
+
}).pipe(
|
|
972
|
+
T.Http({
|
|
973
|
+
method: "DELETE",
|
|
974
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/connections/{connectionId}",
|
|
975
|
+
code: 200,
|
|
976
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
977
|
+
}),
|
|
978
|
+
),
|
|
979
|
+
).annotate({
|
|
980
|
+
identifier: "DeleteGatewayConnectionRequest",
|
|
981
|
+
}) as any as S.Schema<DeleteGatewayConnectionRequest>;
|
|
982
|
+
|
|
983
|
+
export interface DeleteGatewayConnectionResponse {}
|
|
984
|
+
export const DeleteGatewayConnectionResponse = /*@__PURE__*/ S.suspend(() => S.Struct({})).annotate(
|
|
985
|
+
{ identifier: "DeleteGatewayConnectionResponse" },
|
|
986
|
+
) as any as S.Schema<DeleteGatewayConnectionResponse>;
|
|
987
|
+
|
|
988
|
+
/** The region in which the resource is located. */
|
|
989
|
+
export type GetGatewayRequestRegion = "eu01" | "eu02";
|
|
990
|
+
export const GetGatewayRequestRegion = S.String;
|
|
991
|
+
|
|
992
|
+
export interface GetGatewayRequest {
|
|
993
|
+
projectId: string;
|
|
994
|
+
region: GetGatewayRequestRegion | (string & {});
|
|
995
|
+
gatewayId: string;
|
|
996
|
+
}
|
|
997
|
+
export const GetGatewayRequest = /*@__PURE__*/ S.suspend(() =>
|
|
998
|
+
S.Struct({
|
|
999
|
+
projectId: S.String.pipe(T.Label()),
|
|
1000
|
+
region: GetGatewayRequestRegion.pipe(T.Label()),
|
|
1001
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1002
|
+
}).pipe(
|
|
1003
|
+
T.Http({
|
|
1004
|
+
method: "GET",
|
|
1005
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}",
|
|
1006
|
+
code: 200,
|
|
1007
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1008
|
+
}),
|
|
1009
|
+
),
|
|
1010
|
+
).annotate({ identifier: "GetGatewayRequest" }) as any as S.Schema<GetGatewayRequest>;
|
|
1011
|
+
|
|
1012
|
+
export type GetGatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1013
|
+
export const GetGatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1014
|
+
|
|
1015
|
+
export interface GetGatewayResponse {
|
|
1016
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones;
|
|
1017
|
+
bgp?: BGPGatewayConfig;
|
|
1018
|
+
/** A user-friendly name for the VPN gateway. */
|
|
1019
|
+
displayName: string;
|
|
1020
|
+
labels?: Label;
|
|
1021
|
+
networkConfig?: NetworkConfig;
|
|
1022
|
+
/** The service plan identifier. */
|
|
1023
|
+
planId: string;
|
|
1024
|
+
routingType: RoutingType;
|
|
1025
|
+
/** The server-generated UUID of the VPN gateway. */
|
|
1026
|
+
id?: string;
|
|
1027
|
+
state?: GatewayStatus;
|
|
1028
|
+
}
|
|
1029
|
+
export const GetGatewayResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1030
|
+
S.Struct({
|
|
1031
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones,
|
|
1032
|
+
bgp: S.optional(BGPGatewayConfig),
|
|
1033
|
+
displayName: S.String,
|
|
1034
|
+
labels: S.optional(Label),
|
|
1035
|
+
networkConfig: S.optional(NetworkConfig),
|
|
1036
|
+
planId: S.String,
|
|
1037
|
+
routingType: RoutingType,
|
|
1038
|
+
id: S.optional(S.String),
|
|
1039
|
+
state: S.optional(GatewayStatus),
|
|
1040
|
+
}),
|
|
1041
|
+
).annotate({ identifier: "GetGatewayResponse" }) as any as S.Schema<GetGatewayResponse>;
|
|
1042
|
+
|
|
1043
|
+
/** The region in which the resource is located. */
|
|
1044
|
+
export type GetGatewayBGPFilterRequestRegion = "eu01" | "eu02";
|
|
1045
|
+
export const GetGatewayBGPFilterRequestRegion = S.String;
|
|
1046
|
+
|
|
1047
|
+
export interface GetGatewayBGPFilterRequest {
|
|
1048
|
+
projectId: string;
|
|
1049
|
+
region: GetGatewayBGPFilterRequestRegion | (string & {});
|
|
1050
|
+
gatewayId: string;
|
|
1051
|
+
filterId: string;
|
|
1052
|
+
}
|
|
1053
|
+
export const GetGatewayBGPFilterRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1054
|
+
S.Struct({
|
|
1055
|
+
projectId: S.String.pipe(T.Label()),
|
|
1056
|
+
region: GetGatewayBGPFilterRequestRegion.pipe(T.Label()),
|
|
1057
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1058
|
+
filterId: S.String.pipe(T.Label()),
|
|
1059
|
+
}).pipe(
|
|
1060
|
+
T.Http({
|
|
1061
|
+
method: "GET",
|
|
1062
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}",
|
|
1063
|
+
code: 200,
|
|
1064
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1065
|
+
}),
|
|
1066
|
+
),
|
|
1067
|
+
).annotate({
|
|
1068
|
+
identifier: "GetGatewayBGPFilterRequest",
|
|
1069
|
+
}) as any as S.Schema<GetGatewayBGPFilterRequest>;
|
|
1070
|
+
|
|
1071
|
+
/** The region in which the resource is located. */
|
|
1072
|
+
export type GetGatewayBGPFilterRuleRequestRegion = "eu01" | "eu02";
|
|
1073
|
+
export const GetGatewayBGPFilterRuleRequestRegion = S.String;
|
|
1074
|
+
|
|
1075
|
+
export interface GetGatewayBGPFilterRuleRequest {
|
|
1076
|
+
projectId: string;
|
|
1077
|
+
region: GetGatewayBGPFilterRuleRequestRegion | (string & {});
|
|
1078
|
+
gatewayId: string;
|
|
1079
|
+
filterId: string;
|
|
1080
|
+
ruleId: string;
|
|
1081
|
+
}
|
|
1082
|
+
export const GetGatewayBGPFilterRuleRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1083
|
+
S.Struct({
|
|
1084
|
+
projectId: S.String.pipe(T.Label()),
|
|
1085
|
+
region: GetGatewayBGPFilterRuleRequestRegion.pipe(T.Label()),
|
|
1086
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1087
|
+
filterId: S.String.pipe(T.Label()),
|
|
1088
|
+
ruleId: S.String.pipe(T.Label()),
|
|
1089
|
+
}).pipe(
|
|
1090
|
+
T.Http({
|
|
1091
|
+
method: "GET",
|
|
1092
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}/rules/{ruleId}",
|
|
1093
|
+
code: 200,
|
|
1094
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1095
|
+
}),
|
|
1096
|
+
),
|
|
1097
|
+
).annotate({
|
|
1098
|
+
identifier: "GetGatewayBGPFilterRuleRequest",
|
|
1099
|
+
}) as any as S.Schema<GetGatewayBGPFilterRuleRequest>;
|
|
1100
|
+
|
|
1101
|
+
/** The region in which the resource is located. */
|
|
1102
|
+
export type GetGatewayConnectionRequestRegion = "eu01" | "eu02";
|
|
1103
|
+
export const GetGatewayConnectionRequestRegion = S.String;
|
|
1104
|
+
|
|
1105
|
+
export interface GetGatewayConnectionRequest {
|
|
1106
|
+
projectId: string;
|
|
1107
|
+
region: GetGatewayConnectionRequestRegion | (string & {});
|
|
1108
|
+
gatewayId: string;
|
|
1109
|
+
connectionId: string;
|
|
1110
|
+
}
|
|
1111
|
+
export const GetGatewayConnectionRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1112
|
+
S.Struct({
|
|
1113
|
+
projectId: S.String.pipe(T.Label()),
|
|
1114
|
+
region: GetGatewayConnectionRequestRegion.pipe(T.Label()),
|
|
1115
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1116
|
+
connectionId: S.String.pipe(T.Label()),
|
|
1117
|
+
}).pipe(
|
|
1118
|
+
T.Http({
|
|
1119
|
+
method: "GET",
|
|
1120
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/connections/{connectionId}",
|
|
1121
|
+
code: 200,
|
|
1122
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1123
|
+
}),
|
|
1124
|
+
),
|
|
1125
|
+
).annotate({
|
|
1126
|
+
identifier: "GetGatewayConnectionRequest",
|
|
1127
|
+
}) as any as S.Schema<GetGatewayConnectionRequest>;
|
|
1128
|
+
|
|
1129
|
+
/** The region in which the resource is located. */
|
|
1130
|
+
export type GetGatewayConnectionStatusRequestRegion = "eu01" | "eu02";
|
|
1131
|
+
export const GetGatewayConnectionStatusRequestRegion = S.String;
|
|
1132
|
+
|
|
1133
|
+
export interface GetGatewayConnectionStatusRequest {
|
|
1134
|
+
projectId: string;
|
|
1135
|
+
region: GetGatewayConnectionStatusRequestRegion | (string & {});
|
|
1136
|
+
gatewayId: string;
|
|
1137
|
+
connectionId: string;
|
|
1138
|
+
}
|
|
1139
|
+
export const GetGatewayConnectionStatusRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1140
|
+
S.Struct({
|
|
1141
|
+
projectId: S.String.pipe(T.Label()),
|
|
1142
|
+
region: GetGatewayConnectionStatusRequestRegion.pipe(T.Label()),
|
|
1143
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1144
|
+
connectionId: S.String.pipe(T.Label()),
|
|
1145
|
+
}).pipe(
|
|
1146
|
+
T.Http({
|
|
1147
|
+
method: "GET",
|
|
1148
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/connections/{connectionId}/status",
|
|
1149
|
+
code: 200,
|
|
1150
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1151
|
+
}),
|
|
1152
|
+
),
|
|
1153
|
+
).annotate({
|
|
1154
|
+
identifier: "GetGatewayConnectionStatusRequest",
|
|
1155
|
+
}) as any as S.Schema<GetGatewayConnectionStatusRequest>;
|
|
1156
|
+
|
|
1157
|
+
export type TunnelStatusName = "tunnel1" | "tunnel2";
|
|
1158
|
+
export const TunnelStatusName = S.String;
|
|
1159
|
+
|
|
1160
|
+
export interface Phase1Status {
|
|
1161
|
+
/** The negotiated Diffie-Hellman Group */
|
|
1162
|
+
dhGroup?: string;
|
|
1163
|
+
/** The negotiated encryption algorithm. */
|
|
1164
|
+
encryptionAlgorithm?: string;
|
|
1165
|
+
/** The negotiated integrity algorithm or pseudo-random-function. */
|
|
1166
|
+
integrityAlgorithm?: string;
|
|
1167
|
+
state?: string;
|
|
1168
|
+
}
|
|
1169
|
+
export const Phase1Status = /*@__PURE__*/ S.suspend(() =>
|
|
1170
|
+
S.Struct({
|
|
1171
|
+
dhGroup: S.optional(S.String),
|
|
1172
|
+
encryptionAlgorithm: S.optional(S.String),
|
|
1173
|
+
integrityAlgorithm: S.optional(S.String),
|
|
1174
|
+
state: S.optional(S.String),
|
|
1175
|
+
}),
|
|
1176
|
+
).annotate({ identifier: "Phase1Status" }) as any as S.Schema<Phase1Status>;
|
|
1177
|
+
|
|
1178
|
+
export interface Phase2Status {
|
|
1179
|
+
/** The total data volume received through this Security Association, measured in bytes. */
|
|
1180
|
+
bytesIn?: string;
|
|
1181
|
+
/** The total data volume sent through this Security Association, measured in bytes. */
|
|
1182
|
+
bytesOut?: string;
|
|
1183
|
+
/** The negotiated Diffie-Hellman Group */
|
|
1184
|
+
dhGroup?: string;
|
|
1185
|
+
/** Indicates whether NAT traversal encapsulation is active for the connection. */
|
|
1186
|
+
encap?: string;
|
|
1187
|
+
/** The negotiated encryption algorithm. */
|
|
1188
|
+
encryptionAlgorithm?: string;
|
|
1189
|
+
/** The negotiated integrity algorithm or pseudo-random-function. */
|
|
1190
|
+
integrityAlgorithm?: string;
|
|
1191
|
+
/** The total number of packets received through this IPsec Security Association. */
|
|
1192
|
+
packetsIn?: string;
|
|
1193
|
+
/** The total number of packets sent through this IPsec Security Association */
|
|
1194
|
+
packetsOut?: string;
|
|
1195
|
+
/** The security protocol used for the tunnel, typically `ESP` (Encapsulating Security Payload). */
|
|
1196
|
+
protocol?: string;
|
|
1197
|
+
state?: string;
|
|
1198
|
+
}
|
|
1199
|
+
export const Phase2Status = /*@__PURE__*/ S.suspend(() =>
|
|
1200
|
+
S.Struct({
|
|
1201
|
+
bytesIn: S.optional(S.String),
|
|
1202
|
+
bytesOut: S.optional(S.String),
|
|
1203
|
+
dhGroup: S.optional(S.String),
|
|
1204
|
+
encap: S.optional(S.String),
|
|
1205
|
+
encryptionAlgorithm: S.optional(S.String),
|
|
1206
|
+
integrityAlgorithm: S.optional(S.String),
|
|
1207
|
+
packetsIn: S.optional(S.String),
|
|
1208
|
+
packetsOut: S.optional(S.String),
|
|
1209
|
+
protocol: S.optional(S.String),
|
|
1210
|
+
state: S.optional(S.String),
|
|
1211
|
+
}),
|
|
1212
|
+
).annotate({ identifier: "Phase2Status" }) as any as S.Schema<Phase2Status>;
|
|
1213
|
+
|
|
1214
|
+
/** Describes the status of the VPN itself. */
|
|
1215
|
+
export interface TunnelStatus {
|
|
1216
|
+
established?: boolean;
|
|
1217
|
+
name?: TunnelStatusName;
|
|
1218
|
+
phase1?: Phase1Status;
|
|
1219
|
+
phase2?: Phase2Status;
|
|
1220
|
+
}
|
|
1221
|
+
export const TunnelStatus = /*@__PURE__*/ S.suspend(() =>
|
|
1222
|
+
S.Struct({
|
|
1223
|
+
established: S.optional(S.Boolean),
|
|
1224
|
+
name: S.optional(TunnelStatusName),
|
|
1225
|
+
phase1: S.optional(Phase1Status),
|
|
1226
|
+
phase2: S.optional(Phase2Status),
|
|
1227
|
+
}),
|
|
1228
|
+
).annotate({ identifier: "TunnelStatus" }) as any as S.Schema<TunnelStatus>;
|
|
1229
|
+
|
|
1230
|
+
export type ConnectionStatusResponseTunnelsList = Array<TunnelStatus>;
|
|
1231
|
+
export const ConnectionStatusResponseTunnelsList = /*@__PURE__*/ S.Array(
|
|
1232
|
+
TunnelStatus,
|
|
1233
|
+
) as any as S.Schema<ConnectionStatusResponseTunnelsList>;
|
|
1234
|
+
|
|
1235
|
+
export interface ConnectionStatusResponse {
|
|
1236
|
+
/** The name of the connection. */
|
|
1237
|
+
displayName?: string;
|
|
1238
|
+
enabled?: boolean;
|
|
1239
|
+
/** UUID of the connection. */
|
|
1240
|
+
id?: string;
|
|
1241
|
+
tunnels?: ConnectionStatusResponseTunnelsList;
|
|
1242
|
+
}
|
|
1243
|
+
export const ConnectionStatusResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1244
|
+
S.Struct({
|
|
1245
|
+
displayName: S.optional(S.String),
|
|
1246
|
+
enabled: S.optional(S.Boolean),
|
|
1247
|
+
id: S.optional(S.String),
|
|
1248
|
+
tunnels: S.optional(ConnectionStatusResponseTunnelsList),
|
|
1249
|
+
}),
|
|
1250
|
+
).annotate({ identifier: "ConnectionStatusResponse" }) as any as S.Schema<ConnectionStatusResponse>;
|
|
1251
|
+
|
|
1252
|
+
/** The region in which the resource is located. */
|
|
1253
|
+
export type GetGatewayStatusRequestRegion = "eu01" | "eu02";
|
|
1254
|
+
export const GetGatewayStatusRequestRegion = S.String;
|
|
1255
|
+
|
|
1256
|
+
export interface GetGatewayStatusRequest {
|
|
1257
|
+
projectId: string;
|
|
1258
|
+
region: GetGatewayStatusRequestRegion | (string & {});
|
|
1259
|
+
gatewayId: string;
|
|
1260
|
+
}
|
|
1261
|
+
export const GetGatewayStatusRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1262
|
+
S.Struct({
|
|
1263
|
+
projectId: S.String.pipe(T.Label()),
|
|
1264
|
+
region: GetGatewayStatusRequestRegion.pipe(T.Label()),
|
|
1265
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1266
|
+
}).pipe(
|
|
1267
|
+
T.Http({
|
|
1268
|
+
method: "GET",
|
|
1269
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/status",
|
|
1270
|
+
code: 200,
|
|
1271
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1272
|
+
}),
|
|
1273
|
+
),
|
|
1274
|
+
).annotate({ identifier: "GetGatewayStatusRequest" }) as any as S.Schema<GetGatewayStatusRequest>;
|
|
1275
|
+
|
|
1276
|
+
export type GatewayStatusResponseConnectionsList = Array<ConnectionStatusResponse>;
|
|
1277
|
+
export const GatewayStatusResponseConnectionsList = /*@__PURE__*/ S.Array(
|
|
1278
|
+
ConnectionStatusResponse,
|
|
1279
|
+
) as any as S.Schema<GatewayStatusResponseConnectionsList>;
|
|
1280
|
+
|
|
1281
|
+
export interface BGPStatusPeers {
|
|
1282
|
+
/** The ASN of the local STACKIT gateway. */
|
|
1283
|
+
localAs: number;
|
|
1284
|
+
/** Duration the session has been established */
|
|
1285
|
+
peerUptime: string;
|
|
1286
|
+
/** Count of prefixes received from the neighbor. */
|
|
1287
|
+
pfxRcd: number;
|
|
1288
|
+
/** Count of prefixes advertised to the neighbor. */
|
|
1289
|
+
pfxSnt: number;
|
|
1290
|
+
/** The ASN of the remote neighbor. */
|
|
1291
|
+
remoteAs: number;
|
|
1292
|
+
/** The IP address of the remote BGP neighbor. */
|
|
1293
|
+
remoteIP: string;
|
|
1294
|
+
/** The current BGP session state. */
|
|
1295
|
+
state: string;
|
|
1296
|
+
}
|
|
1297
|
+
export const BGPStatusPeers = /*@__PURE__*/ S.suspend(() =>
|
|
1298
|
+
S.Struct({
|
|
1299
|
+
localAs: S.Number,
|
|
1300
|
+
peerUptime: S.String,
|
|
1301
|
+
pfxRcd: S.Number,
|
|
1302
|
+
pfxSnt: S.Number,
|
|
1303
|
+
remoteAs: S.Number,
|
|
1304
|
+
remoteIP: S.String,
|
|
1305
|
+
state: S.String,
|
|
1306
|
+
}),
|
|
1307
|
+
).annotate({ identifier: "BGPStatusPeers" }) as any as S.Schema<BGPStatusPeers>;
|
|
1308
|
+
|
|
1309
|
+
export type BGPStatusPeersList = Array<BGPStatusPeers>;
|
|
1310
|
+
export const BGPStatusPeersList = /*@__PURE__*/ S.Array(
|
|
1311
|
+
BGPStatusPeers,
|
|
1312
|
+
) as any as S.Schema<BGPStatusPeersList>;
|
|
1313
|
+
|
|
1314
|
+
export interface BGPStatusRoutes {
|
|
1315
|
+
/** The destination network */
|
|
1316
|
+
network: string;
|
|
1317
|
+
origin: string;
|
|
1318
|
+
/** The AS-PATH */
|
|
1319
|
+
path: string;
|
|
1320
|
+
/** BGP Router ID of the neighbor that advertised this route */
|
|
1321
|
+
peerId: string;
|
|
1322
|
+
weight: number;
|
|
1323
|
+
}
|
|
1324
|
+
export const BGPStatusRoutes = /*@__PURE__*/ S.suspend(() =>
|
|
1325
|
+
S.Struct({
|
|
1326
|
+
network: S.String,
|
|
1327
|
+
origin: S.String,
|
|
1328
|
+
path: S.String,
|
|
1329
|
+
peerId: S.String,
|
|
1330
|
+
weight: S.Number,
|
|
1331
|
+
}),
|
|
1332
|
+
).annotate({ identifier: "BGPStatusRoutes" }) as any as S.Schema<BGPStatusRoutes>;
|
|
1333
|
+
|
|
1334
|
+
export type BGPStatusRoutesList = Array<BGPStatusRoutes>;
|
|
1335
|
+
export const BGPStatusRoutesList = /*@__PURE__*/ S.Array(
|
|
1336
|
+
BGPStatusRoutes,
|
|
1337
|
+
) as any as S.Schema<BGPStatusRoutesList>;
|
|
1338
|
+
|
|
1339
|
+
export interface BGPStatus {
|
|
1340
|
+
peers?: BGPStatusPeersList;
|
|
1341
|
+
routes?: BGPStatusRoutesList;
|
|
1342
|
+
}
|
|
1343
|
+
export const BGPStatus = /*@__PURE__*/ S.suspend(() =>
|
|
1344
|
+
S.Struct({
|
|
1345
|
+
peers: S.optional(BGPStatusPeersList),
|
|
1346
|
+
routes: S.optional(BGPStatusRoutesList),
|
|
1347
|
+
}),
|
|
1348
|
+
).annotate({ identifier: "BGPStatus" }) as any as S.Schema<BGPStatus>;
|
|
1349
|
+
|
|
1350
|
+
export type VPNTunnelsName = "tunnel1" | "tunnel2";
|
|
1351
|
+
export const VPNTunnelsName = S.String;
|
|
1352
|
+
|
|
1353
|
+
/** Status of the underlying tunnel instances. */
|
|
1354
|
+
export interface VPNTunnels {
|
|
1355
|
+
bgpStatus?: BGPStatus | null;
|
|
1356
|
+
instanceState?: GatewayStatus;
|
|
1357
|
+
/** The IPv4 address of the endpoint in the SNA. */
|
|
1358
|
+
internalNextHopIP?: string;
|
|
1359
|
+
name?: VPNTunnelsName;
|
|
1360
|
+
/** The public IPv4 address of this endpoint. */
|
|
1361
|
+
publicIP?: string;
|
|
1362
|
+
}
|
|
1363
|
+
export const VPNTunnels = /*@__PURE__*/ S.suspend(() =>
|
|
1364
|
+
S.Struct({
|
|
1365
|
+
bgpStatus: S.optional(S.NullOr(BGPStatus)),
|
|
1366
|
+
instanceState: S.optional(GatewayStatus),
|
|
1367
|
+
internalNextHopIP: S.optional(S.String),
|
|
1368
|
+
name: S.optional(VPNTunnelsName),
|
|
1369
|
+
publicIP: S.optional(S.String),
|
|
1370
|
+
}),
|
|
1371
|
+
).annotate({ identifier: "VPNTunnels" }) as any as S.Schema<VPNTunnels>;
|
|
1372
|
+
|
|
1373
|
+
export type GatewayStatusResponseTunnelsList = Array<VPNTunnels>;
|
|
1374
|
+
export const GatewayStatusResponseTunnelsList = /*@__PURE__*/ S.Array(
|
|
1375
|
+
VPNTunnels,
|
|
1376
|
+
) as any as S.Schema<GatewayStatusResponseTunnelsList>;
|
|
1377
|
+
|
|
1378
|
+
export interface GatewayStatusResponse {
|
|
1379
|
+
connections?: GatewayStatusResponseConnectionsList;
|
|
1380
|
+
/** Name of the Gateway instance. */
|
|
1381
|
+
displayName?: string;
|
|
1382
|
+
/** A descriptive message provided when the gateway is in an error state. */
|
|
1383
|
+
errorMessage?: string;
|
|
1384
|
+
gatewayStatus?: GatewayStatus;
|
|
1385
|
+
/** UUID of the Gateway instance. */
|
|
1386
|
+
id?: string;
|
|
1387
|
+
tunnels?: GatewayStatusResponseTunnelsList;
|
|
1388
|
+
}
|
|
1389
|
+
export const GatewayStatusResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1390
|
+
S.Struct({
|
|
1391
|
+
connections: S.optional(GatewayStatusResponseConnectionsList),
|
|
1392
|
+
displayName: S.optional(S.String),
|
|
1393
|
+
errorMessage: S.optional(S.String),
|
|
1394
|
+
gatewayStatus: S.optional(GatewayStatus),
|
|
1395
|
+
id: S.optional(S.String),
|
|
1396
|
+
tunnels: S.optional(GatewayStatusResponseTunnelsList),
|
|
1397
|
+
}),
|
|
1398
|
+
).annotate({ identifier: "GatewayStatusResponse" }) as any as S.Schema<GatewayStatusResponse>;
|
|
1399
|
+
|
|
1400
|
+
/** The region in which the resource is located. */
|
|
1401
|
+
export type ListGatewayBGPFilterRulesRequestRegion = "eu01" | "eu02";
|
|
1402
|
+
export const ListGatewayBGPFilterRulesRequestRegion = S.String;
|
|
1403
|
+
|
|
1404
|
+
export interface ListGatewayBGPFilterRulesRequest {
|
|
1405
|
+
projectId: string;
|
|
1406
|
+
region: ListGatewayBGPFilterRulesRequestRegion | (string & {});
|
|
1407
|
+
gatewayId: string;
|
|
1408
|
+
filterId: string;
|
|
1409
|
+
}
|
|
1410
|
+
export const ListGatewayBGPFilterRulesRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1411
|
+
S.Struct({
|
|
1412
|
+
projectId: S.String.pipe(T.Label()),
|
|
1413
|
+
region: ListGatewayBGPFilterRulesRequestRegion.pipe(T.Label()),
|
|
1414
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1415
|
+
filterId: S.String.pipe(T.Label()),
|
|
1416
|
+
}).pipe(
|
|
1417
|
+
T.Http({
|
|
1418
|
+
method: "GET",
|
|
1419
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}/rules",
|
|
1420
|
+
code: 200,
|
|
1421
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1422
|
+
}),
|
|
1423
|
+
),
|
|
1424
|
+
).annotate({
|
|
1425
|
+
identifier: "ListGatewayBGPFilterRulesRequest",
|
|
1426
|
+
}) as any as S.Schema<ListGatewayBGPFilterRulesRequest>;
|
|
1427
|
+
|
|
1428
|
+
export type BGPFilterRuleListRulesList = Array<BGPFilterRule>;
|
|
1429
|
+
export const BGPFilterRuleListRulesList = /*@__PURE__*/ S.Array(
|
|
1430
|
+
BGPFilterRule,
|
|
1431
|
+
) as any as S.Schema<BGPFilterRuleListRulesList>;
|
|
1432
|
+
|
|
1433
|
+
/** Response wrapper for listing rules within a BGP filter. */
|
|
1434
|
+
export interface BGPFilterRuleList {
|
|
1435
|
+
rules: BGPFilterRuleListRulesList;
|
|
1436
|
+
}
|
|
1437
|
+
export const BGPFilterRuleList = /*@__PURE__*/ S.suspend(() =>
|
|
1438
|
+
S.Struct({
|
|
1439
|
+
rules: BGPFilterRuleListRulesList,
|
|
1440
|
+
}),
|
|
1441
|
+
).annotate({ identifier: "BGPFilterRuleList" }) as any as S.Schema<BGPFilterRuleList>;
|
|
1442
|
+
|
|
1443
|
+
/** The region in which the resource is located. */
|
|
1444
|
+
export type ListGatewayBGPFiltersRequestRegion = "eu01" | "eu02";
|
|
1445
|
+
export const ListGatewayBGPFiltersRequestRegion = S.String;
|
|
1446
|
+
|
|
1447
|
+
export interface ListGatewayBGPFiltersRequest {
|
|
1448
|
+
projectId: string;
|
|
1449
|
+
region: ListGatewayBGPFiltersRequestRegion | (string & {});
|
|
1450
|
+
gatewayId: string;
|
|
1451
|
+
}
|
|
1452
|
+
export const ListGatewayBGPFiltersRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1453
|
+
S.Struct({
|
|
1454
|
+
projectId: S.String.pipe(T.Label()),
|
|
1455
|
+
region: ListGatewayBGPFiltersRequestRegion.pipe(T.Label()),
|
|
1456
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1457
|
+
}).pipe(
|
|
1458
|
+
T.Http({
|
|
1459
|
+
method: "GET",
|
|
1460
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters",
|
|
1461
|
+
code: 200,
|
|
1462
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1463
|
+
}),
|
|
1464
|
+
),
|
|
1465
|
+
).annotate({
|
|
1466
|
+
identifier: "ListGatewayBGPFiltersRequest",
|
|
1467
|
+
}) as any as S.Schema<ListGatewayBGPFiltersRequest>;
|
|
1468
|
+
|
|
1469
|
+
export type BGPFilterListBgpFiltersList = Array<BGPFilter>;
|
|
1470
|
+
export const BGPFilterListBgpFiltersList = /*@__PURE__*/ S.Array(
|
|
1471
|
+
BGPFilter,
|
|
1472
|
+
) as any as S.Schema<BGPFilterListBgpFiltersList>;
|
|
1473
|
+
|
|
1474
|
+
/** Response wrapper for listing BGP filters. */
|
|
1475
|
+
export interface BGPFilterList {
|
|
1476
|
+
bgpFilters: BGPFilterListBgpFiltersList;
|
|
1477
|
+
}
|
|
1478
|
+
export const BGPFilterList = /*@__PURE__*/ S.suspend(() =>
|
|
1479
|
+
S.Struct({
|
|
1480
|
+
bgpFilters: BGPFilterListBgpFiltersList,
|
|
1481
|
+
}),
|
|
1482
|
+
).annotate({ identifier: "BGPFilterList" }) as any as S.Schema<BGPFilterList>;
|
|
1483
|
+
|
|
1484
|
+
/** The region in which the resource is located. */
|
|
1485
|
+
export type ListGatewayConnectionsRequestRegion = "eu01" | "eu02";
|
|
1486
|
+
export const ListGatewayConnectionsRequestRegion = S.String;
|
|
1487
|
+
|
|
1488
|
+
/** Filter resources by labels. */
|
|
1489
|
+
export type LabelSelector = { [key: string]: string | undefined };
|
|
1490
|
+
export const LabelSelector = /*@__PURE__*/ S.Record(
|
|
1491
|
+
S.String,
|
|
1492
|
+
S.String,
|
|
1493
|
+
) as any as S.Schema<LabelSelector>;
|
|
1494
|
+
|
|
1495
|
+
export interface ListGatewayConnectionsRequest {
|
|
1496
|
+
projectId: string;
|
|
1497
|
+
region: ListGatewayConnectionsRequestRegion | (string & {});
|
|
1498
|
+
gatewayId: string;
|
|
1499
|
+
/** Filter resources by labels. */
|
|
1500
|
+
label_selector?: LabelSelector;
|
|
1501
|
+
}
|
|
1502
|
+
export const ListGatewayConnectionsRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1503
|
+
S.Struct({
|
|
1504
|
+
projectId: S.String.pipe(T.Label()),
|
|
1505
|
+
region: ListGatewayConnectionsRequestRegion.pipe(T.Label()),
|
|
1506
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1507
|
+
label_selector: S.optional(LabelSelector.pipe(T.Query())),
|
|
1508
|
+
}).pipe(
|
|
1509
|
+
T.Http({
|
|
1510
|
+
method: "GET",
|
|
1511
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/connections",
|
|
1512
|
+
code: 200,
|
|
1513
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1514
|
+
}),
|
|
1515
|
+
),
|
|
1516
|
+
).annotate({
|
|
1517
|
+
identifier: "ListGatewayConnectionsRequest",
|
|
1518
|
+
}) as any as S.Schema<ListGatewayConnectionsRequest>;
|
|
1519
|
+
|
|
1520
|
+
export type ConnectionListOutputConnectionsList = Array<ConnectionResponseOutput>;
|
|
1521
|
+
export const ConnectionListOutputConnectionsList = /*@__PURE__*/ S.Array(
|
|
1522
|
+
ConnectionResponseOutput,
|
|
1523
|
+
) as any as S.Schema<ConnectionListOutputConnectionsList>;
|
|
1524
|
+
|
|
1525
|
+
export interface ConnectionListOutput {
|
|
1526
|
+
connections: ConnectionListOutputConnectionsList;
|
|
1527
|
+
}
|
|
1528
|
+
export const ConnectionListOutput = /*@__PURE__*/ S.suspend(() =>
|
|
1529
|
+
S.Struct({
|
|
1530
|
+
connections: ConnectionListOutputConnectionsList,
|
|
1531
|
+
}),
|
|
1532
|
+
).annotate({ identifier: "ConnectionListOutput" }) as any as S.Schema<ConnectionListOutput>;
|
|
1533
|
+
|
|
1534
|
+
/** The region in which the resource is located. */
|
|
1535
|
+
export type ListGatewaysRequestRegion = "eu01" | "eu02";
|
|
1536
|
+
export const ListGatewaysRequestRegion = S.String;
|
|
1537
|
+
|
|
1538
|
+
export interface ListGatewaysRequest {
|
|
1539
|
+
projectId: string;
|
|
1540
|
+
region: ListGatewaysRequestRegion | (string & {});
|
|
1541
|
+
/** Filter resources by labels. */
|
|
1542
|
+
label_selector?: LabelSelector;
|
|
1543
|
+
}
|
|
1544
|
+
export const ListGatewaysRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1545
|
+
S.Struct({
|
|
1546
|
+
projectId: S.String.pipe(T.Label()),
|
|
1547
|
+
region: ListGatewaysRequestRegion.pipe(T.Label()),
|
|
1548
|
+
label_selector: S.optional(LabelSelector.pipe(T.Query())),
|
|
1549
|
+
}).pipe(
|
|
1550
|
+
T.Http({
|
|
1551
|
+
method: "GET",
|
|
1552
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways",
|
|
1553
|
+
code: 200,
|
|
1554
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1555
|
+
}),
|
|
1556
|
+
),
|
|
1557
|
+
).annotate({ identifier: "ListGatewaysRequest" }) as any as S.Schema<ListGatewaysRequest>;
|
|
1558
|
+
|
|
1559
|
+
export type GatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1560
|
+
export const GatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1561
|
+
|
|
1562
|
+
export interface GatewayResponse {
|
|
1563
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones;
|
|
1564
|
+
bgp?: BGPGatewayConfig;
|
|
1565
|
+
/** A user-friendly name for the VPN gateway. */
|
|
1566
|
+
displayName: string;
|
|
1567
|
+
labels?: Label;
|
|
1568
|
+
networkConfig?: NetworkConfig;
|
|
1569
|
+
/** The service plan identifier. */
|
|
1570
|
+
planId: string;
|
|
1571
|
+
routingType: RoutingType;
|
|
1572
|
+
/** The server-generated UUID of the VPN gateway. */
|
|
1573
|
+
id?: string;
|
|
1574
|
+
state?: GatewayStatus;
|
|
1575
|
+
}
|
|
1576
|
+
export const GatewayResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1577
|
+
S.Struct({
|
|
1578
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones,
|
|
1579
|
+
bgp: S.optional(BGPGatewayConfig),
|
|
1580
|
+
displayName: S.String,
|
|
1581
|
+
labels: S.optional(Label),
|
|
1582
|
+
networkConfig: S.optional(NetworkConfig),
|
|
1583
|
+
planId: S.String,
|
|
1584
|
+
routingType: RoutingType,
|
|
1585
|
+
id: S.optional(S.String),
|
|
1586
|
+
state: S.optional(GatewayStatus),
|
|
1587
|
+
}),
|
|
1588
|
+
).annotate({ identifier: "GatewayResponse" }) as any as S.Schema<GatewayResponse>;
|
|
1589
|
+
|
|
1590
|
+
export type GatewayListGatewaysList = Array<GatewayResponse>;
|
|
1591
|
+
export const GatewayListGatewaysList = /*@__PURE__*/ S.Array(
|
|
1592
|
+
GatewayResponse,
|
|
1593
|
+
) as any as S.Schema<GatewayListGatewaysList>;
|
|
1594
|
+
|
|
1595
|
+
export interface GatewayList {
|
|
1596
|
+
gateways: GatewayListGatewaysList;
|
|
1597
|
+
}
|
|
1598
|
+
export const GatewayList = /*@__PURE__*/ S.suspend(() =>
|
|
1599
|
+
S.Struct({
|
|
1600
|
+
gateways: GatewayListGatewaysList,
|
|
1601
|
+
}),
|
|
1602
|
+
).annotate({ identifier: "GatewayList" }) as any as S.Schema<GatewayList>;
|
|
1603
|
+
|
|
1604
|
+
/** The region in which the resource is located. */
|
|
1605
|
+
export type ListPlansRequestRegion = "eu01" | "eu02";
|
|
1606
|
+
export const ListPlansRequestRegion = S.String;
|
|
1607
|
+
|
|
1608
|
+
export interface ListPlansRequest {
|
|
1609
|
+
region: ListPlansRequestRegion | (string & {});
|
|
1610
|
+
}
|
|
1611
|
+
export const ListPlansRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1612
|
+
S.Struct({
|
|
1613
|
+
region: ListPlansRequestRegion.pipe(T.Label()),
|
|
1614
|
+
}).pipe(
|
|
1615
|
+
T.Http({
|
|
1616
|
+
method: "GET",
|
|
1617
|
+
uri: "/v1/regions/{region}/plans",
|
|
1618
|
+
code: 200,
|
|
1619
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1620
|
+
}),
|
|
1621
|
+
),
|
|
1622
|
+
).annotate({ identifier: "ListPlansRequest" }) as any as S.Schema<ListPlansRequest>;
|
|
1623
|
+
|
|
1624
|
+
export interface Plan {
|
|
1625
|
+
/** The maximum throughput supported by the gateway in each direction, measured in MBit/s */
|
|
1626
|
+
maxBandwidth?: number;
|
|
1627
|
+
/** The maximum number of connections supported by the VPN Gateway. */
|
|
1628
|
+
maxConnections?: number;
|
|
1629
|
+
/** The name of the service plan. */
|
|
1630
|
+
name?: string;
|
|
1631
|
+
planId?: string;
|
|
1632
|
+
/** The SKU identifier used for billing. */
|
|
1633
|
+
sku?: string;
|
|
1634
|
+
}
|
|
1635
|
+
export const Plan = /*@__PURE__*/ S.suspend(() =>
|
|
1636
|
+
S.Struct({
|
|
1637
|
+
maxBandwidth: S.optional(S.Number),
|
|
1638
|
+
maxConnections: S.optional(S.Number),
|
|
1639
|
+
name: S.optional(S.String),
|
|
1640
|
+
planId: S.optional(S.String),
|
|
1641
|
+
sku: S.optional(S.String),
|
|
1642
|
+
}),
|
|
1643
|
+
).annotate({ identifier: "Plan" }) as any as S.Schema<Plan>;
|
|
1644
|
+
|
|
1645
|
+
export type PlanListPlansList = Array<Plan>;
|
|
1646
|
+
export const PlanListPlansList = /*@__PURE__*/ S.Array(Plan) as any as S.Schema<PlanListPlansList>;
|
|
1647
|
+
|
|
1648
|
+
export interface PlanList {
|
|
1649
|
+
defaultPlanId?: string;
|
|
1650
|
+
plans?: PlanListPlansList;
|
|
1651
|
+
}
|
|
1652
|
+
export const PlanList = /*@__PURE__*/ S.suspend(() =>
|
|
1653
|
+
S.Struct({
|
|
1654
|
+
defaultPlanId: S.optional(S.String),
|
|
1655
|
+
plans: S.optional(PlanListPlansList),
|
|
1656
|
+
}),
|
|
1657
|
+
).annotate({ identifier: "PlanList" }) as any as S.Schema<PlanList>;
|
|
1658
|
+
|
|
1659
|
+
/** The region in which the resource is located. */
|
|
1660
|
+
export type ListQuotasRequestRegion = "eu01" | "eu02";
|
|
1661
|
+
export const ListQuotasRequestRegion = S.String;
|
|
1662
|
+
|
|
1663
|
+
export interface ListQuotasRequest {
|
|
1664
|
+
projectId: string;
|
|
1665
|
+
region: ListQuotasRequestRegion | (string & {});
|
|
1666
|
+
}
|
|
1667
|
+
export const ListQuotasRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1668
|
+
S.Struct({
|
|
1669
|
+
projectId: S.String.pipe(T.Label()),
|
|
1670
|
+
region: ListQuotasRequestRegion.pipe(T.Label()),
|
|
1671
|
+
}).pipe(
|
|
1672
|
+
T.Http({
|
|
1673
|
+
method: "GET",
|
|
1674
|
+
uri: "/v1/projects/{projectId}/regions/{region}/quotas",
|
|
1675
|
+
code: 200,
|
|
1676
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1677
|
+
}),
|
|
1678
|
+
),
|
|
1679
|
+
).annotate({ identifier: "ListQuotasRequest" }) as any as S.Schema<ListQuotasRequest>;
|
|
1680
|
+
|
|
1681
|
+
export interface Quota {
|
|
1682
|
+
limit: number;
|
|
1683
|
+
usage: number;
|
|
1684
|
+
}
|
|
1685
|
+
export const Quota = /*@__PURE__*/ S.suspend(() =>
|
|
1686
|
+
S.Struct({
|
|
1687
|
+
limit: S.Number,
|
|
1688
|
+
usage: S.Number,
|
|
1689
|
+
}),
|
|
1690
|
+
).annotate({ identifier: "Quota" }) as any as S.Schema<Quota>;
|
|
1691
|
+
|
|
1692
|
+
export interface QuotaList {
|
|
1693
|
+
/** Current limit and usage for VPN gateways. */
|
|
1694
|
+
gateways: Quota;
|
|
1695
|
+
}
|
|
1696
|
+
export const QuotaList = /*@__PURE__*/ S.suspend(() =>
|
|
1697
|
+
S.Struct({
|
|
1698
|
+
gateways: Quota,
|
|
1699
|
+
}),
|
|
1700
|
+
).annotate({ identifier: "QuotaList" }) as any as S.Schema<QuotaList>;
|
|
1701
|
+
|
|
1702
|
+
export interface QuotaListResponse {
|
|
1703
|
+
quotas: QuotaList;
|
|
1704
|
+
}
|
|
1705
|
+
export const QuotaListResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1706
|
+
S.Struct({
|
|
1707
|
+
quotas: QuotaList,
|
|
1708
|
+
}),
|
|
1709
|
+
).annotate({ identifier: "QuotaListResponse" }) as any as S.Schema<QuotaListResponse>;
|
|
1710
|
+
|
|
1711
|
+
/** The region in which the resource is located. */
|
|
1712
|
+
export type UpdateGatewayRequestRegion = "eu01" | "eu02";
|
|
1713
|
+
export const UpdateGatewayRequestRegion = S.String;
|
|
1714
|
+
|
|
1715
|
+
export type UpdateGatewayRequestAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1716
|
+
export const UpdateGatewayRequestAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1717
|
+
|
|
1718
|
+
export interface UpdateGatewayRequest {
|
|
1719
|
+
projectId: string;
|
|
1720
|
+
region: UpdateGatewayRequestRegion | (string & {});
|
|
1721
|
+
gatewayId: string;
|
|
1722
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones;
|
|
1723
|
+
bgp?: BGPGatewayConfig;
|
|
1724
|
+
/** A user-friendly name for the VPN gateway. */
|
|
1725
|
+
displayName: string;
|
|
1726
|
+
labels?: Label;
|
|
1727
|
+
networkConfig?: NetworkConfig;
|
|
1728
|
+
/** The service plan identifier. */
|
|
1729
|
+
planId: string;
|
|
1730
|
+
routingType: RoutingType | (string & {});
|
|
1731
|
+
}
|
|
1732
|
+
export const UpdateGatewayRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1733
|
+
S.Struct({
|
|
1734
|
+
projectId: S.String.pipe(T.Label()),
|
|
1735
|
+
region: UpdateGatewayRequestRegion.pipe(T.Label()),
|
|
1736
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1737
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones,
|
|
1738
|
+
bgp: S.optional(BGPGatewayConfig),
|
|
1739
|
+
displayName: S.String,
|
|
1740
|
+
labels: S.optional(Label),
|
|
1741
|
+
networkConfig: S.optional(NetworkConfig),
|
|
1742
|
+
planId: S.String,
|
|
1743
|
+
routingType: RoutingType,
|
|
1744
|
+
}).pipe(
|
|
1745
|
+
T.Http({
|
|
1746
|
+
method: "PUT",
|
|
1747
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}",
|
|
1748
|
+
code: 200,
|
|
1749
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1750
|
+
}),
|
|
1751
|
+
),
|
|
1752
|
+
).annotate({ identifier: "UpdateGatewayRequest" }) as any as S.Schema<UpdateGatewayRequest>;
|
|
1753
|
+
|
|
1754
|
+
export type UpdateGatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1755
|
+
export const UpdateGatewayResponseAvailabilityZones = CreateGatewayRequestAvailabilityZones;
|
|
1756
|
+
|
|
1757
|
+
export interface UpdateGatewayResponse {
|
|
1758
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones;
|
|
1759
|
+
bgp?: BGPGatewayConfig;
|
|
1760
|
+
/** A user-friendly name for the VPN gateway. */
|
|
1761
|
+
displayName: string;
|
|
1762
|
+
labels?: Label;
|
|
1763
|
+
networkConfig?: NetworkConfig;
|
|
1764
|
+
/** The service plan identifier. */
|
|
1765
|
+
planId: string;
|
|
1766
|
+
routingType: RoutingType;
|
|
1767
|
+
/** The server-generated UUID of the VPN gateway. */
|
|
1768
|
+
id?: string;
|
|
1769
|
+
state?: GatewayStatus;
|
|
1770
|
+
}
|
|
1771
|
+
export const UpdateGatewayResponse = /*@__PURE__*/ S.suspend(() =>
|
|
1772
|
+
S.Struct({
|
|
1773
|
+
availabilityZones: CreateGatewayRequestAvailabilityZones,
|
|
1774
|
+
bgp: S.optional(BGPGatewayConfig),
|
|
1775
|
+
displayName: S.String,
|
|
1776
|
+
labels: S.optional(Label),
|
|
1777
|
+
networkConfig: S.optional(NetworkConfig),
|
|
1778
|
+
planId: S.String,
|
|
1779
|
+
routingType: RoutingType,
|
|
1780
|
+
id: S.optional(S.String),
|
|
1781
|
+
state: S.optional(GatewayStatus),
|
|
1782
|
+
}),
|
|
1783
|
+
).annotate({ identifier: "UpdateGatewayResponse" }) as any as S.Schema<UpdateGatewayResponse>;
|
|
1784
|
+
|
|
1785
|
+
/** The region in which the resource is located. */
|
|
1786
|
+
export type UpdateGatewayBGPFilterRequestRegion = "eu01" | "eu02";
|
|
1787
|
+
export const UpdateGatewayBGPFilterRequestRegion = S.String;
|
|
1788
|
+
|
|
1789
|
+
export interface UpdateGatewayBGPFilterRequest {
|
|
1790
|
+
projectId: string;
|
|
1791
|
+
region: UpdateGatewayBGPFilterRequestRegion | (string & {});
|
|
1792
|
+
gatewayId: string;
|
|
1793
|
+
filterId: string;
|
|
1794
|
+
/** A user-friendly name for the filter. Display only — not enforced unique across a gateway. */
|
|
1795
|
+
displayName: string;
|
|
1796
|
+
}
|
|
1797
|
+
export const UpdateGatewayBGPFilterRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1798
|
+
S.Struct({
|
|
1799
|
+
projectId: S.String.pipe(T.Label()),
|
|
1800
|
+
region: UpdateGatewayBGPFilterRequestRegion.pipe(T.Label()),
|
|
1801
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1802
|
+
filterId: S.String.pipe(T.Label()),
|
|
1803
|
+
displayName: S.String,
|
|
1804
|
+
}).pipe(
|
|
1805
|
+
T.Http({
|
|
1806
|
+
method: "PUT",
|
|
1807
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}",
|
|
1808
|
+
code: 200,
|
|
1809
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1810
|
+
}),
|
|
1811
|
+
),
|
|
1812
|
+
).annotate({
|
|
1813
|
+
identifier: "UpdateGatewayBGPFilterRequest",
|
|
1814
|
+
}) as any as S.Schema<UpdateGatewayBGPFilterRequest>;
|
|
1815
|
+
|
|
1816
|
+
/** The region in which the resource is located. */
|
|
1817
|
+
export type UpdateGatewayBGPFilterRuleRequestRegion = "eu01" | "eu02";
|
|
1818
|
+
export const UpdateGatewayBGPFilterRuleRequestRegion = S.String;
|
|
1819
|
+
|
|
1820
|
+
/** The action to take if the route matches all criteria. Case-sensitive. */
|
|
1821
|
+
export type UpdateGatewayBGPFilterRuleRequestAction = "PERMIT" | "DENY";
|
|
1822
|
+
export const UpdateGatewayBGPFilterRuleRequestAction = S.String;
|
|
1823
|
+
|
|
1824
|
+
/** Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. */
|
|
1825
|
+
export type UpdateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList = Array<number>;
|
|
1826
|
+
export const UpdateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList = /*@__PURE__*/ S.Array(
|
|
1827
|
+
S.Number,
|
|
1828
|
+
) as any as S.Schema<UpdateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList>;
|
|
1829
|
+
|
|
1830
|
+
/** Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. */
|
|
1831
|
+
export type UpdateGatewayBGPFilterRuleRequestMatchCommunitiesList = Array<string>;
|
|
1832
|
+
export const UpdateGatewayBGPFilterRuleRequestMatchCommunitiesList = /*@__PURE__*/ S.Array(
|
|
1833
|
+
S.String,
|
|
1834
|
+
) as any as S.Schema<UpdateGatewayBGPFilterRuleRequestMatchCommunitiesList>;
|
|
1835
|
+
|
|
1836
|
+
/** List of IPv4 networks to match. A route's prefix matches if it equals one of these (subject to minPrefixLength/maxPrefixLength refinement). If omitted, an implicit 0.0.0.0/0 base is used when minPrefixLength or maxPrefixLength is set; if all three are omitted, prefix matching is not performed at all. Each entry must parse as a valid IPv4 CIDR; the network portion is normalised (10.0.0.5/24 → 10.0.0.0/24). */
|
|
1837
|
+
export type UpdateGatewayBGPFilterRuleRequestMatchPrefixesList = Array<string>;
|
|
1838
|
+
export const UpdateGatewayBGPFilterRuleRequestMatchPrefixesList = /*@__PURE__*/ S.Array(
|
|
1839
|
+
S.String,
|
|
1840
|
+
) as any as S.Schema<UpdateGatewayBGPFilterRuleRequestMatchPrefixesList>;
|
|
1841
|
+
|
|
1842
|
+
/** Optional matching criteria. If omitted entirely, the rule acts as match-all. All non-empty fields in this block must match (logical AND). */
|
|
1843
|
+
export interface UpdateGatewayBGPFilterRuleRequestMatch {
|
|
1844
|
+
/** Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. */
|
|
1845
|
+
asPathContainsAny?: UpdateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList;
|
|
1846
|
+
/** Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. */
|
|
1847
|
+
communities?: UpdateGatewayBGPFilterRuleRequestMatchCommunitiesList;
|
|
1848
|
+
/** Matches if the first ASN (immediate neighbor) in the AS-PATH equals this ASN. Combines with asPathContainsAny using logical AND: when both are set, the first ASN must equal firstASN AND the path must additionally contain at least one ASN from asPathContainsAny. */
|
|
1849
|
+
firstASN?: number;
|
|
1850
|
+
/** Maximum subnet mask length for matched prefixes. May be set together with 'prefixes' (narrows matches to subnets at most this long) or alone (matches any IPv4 route with a mask length <= this value, equivalent to implicit 'prefixes: [0.0.0.0/0]'). */
|
|
1851
|
+
maxPrefixLength?: number;
|
|
1852
|
+
/** Minimum subnet mask length for matched prefixes. May be set together with 'prefixes' (narrows matches to subnets at least this long) or alone (matches any IPv4 route with a mask length >= this value, equivalent to implicit 'prefixes: [0.0.0.0/0]'). If both minPrefixLength and maxPrefixLength are set, minPrefixLength must be <= maxPrefixLength. */
|
|
1853
|
+
minPrefixLength?: number;
|
|
1854
|
+
/** Matches the exact IPv4 address of the BGP neighbor that advertised the route. Useful when the same filter is attached to multiple tunnels with different neighbor IPs (allows per-peer rules in a shared filter). When a filter is attached to a single tunnel, this field is effectively a no-op because the route-map is already neighbor-scoped. */
|
|
1855
|
+
peer?: string;
|
|
1856
|
+
/** List of IPv4 networks to match. A route's prefix matches if it equals one of these (subject to minPrefixLength/maxPrefixLength refinement). If omitted, an implicit 0.0.0.0/0 base is used when minPrefixLength or maxPrefixLength is set; if all three are omitted, prefix matching is not performed at all. Each entry must parse as a valid IPv4 CIDR; the network portion is normalised (10.0.0.5/24 → 10.0.0.0/24). */
|
|
1857
|
+
prefixes?: UpdateGatewayBGPFilterRuleRequestMatchPrefixesList;
|
|
1858
|
+
}
|
|
1859
|
+
export const UpdateGatewayBGPFilterRuleRequestMatch = /*@__PURE__*/ S.suspend(() =>
|
|
1860
|
+
S.Struct({
|
|
1861
|
+
asPathContainsAny: S.optional(UpdateGatewayBGPFilterRuleRequestMatchAsPathContainsAnyList),
|
|
1862
|
+
communities: S.optional(UpdateGatewayBGPFilterRuleRequestMatchCommunitiesList),
|
|
1863
|
+
firstASN: S.optional(S.Number),
|
|
1864
|
+
maxPrefixLength: S.optional(S.Number),
|
|
1865
|
+
minPrefixLength: S.optional(S.Number),
|
|
1866
|
+
peer: S.optional(S.String),
|
|
1867
|
+
prefixes: S.optional(UpdateGatewayBGPFilterRuleRequestMatchPrefixesList),
|
|
1868
|
+
}),
|
|
1869
|
+
).annotate({
|
|
1870
|
+
identifier: "UpdateGatewayBGPFilterRuleRequestMatch",
|
|
1871
|
+
}) as any as S.Schema<UpdateGatewayBGPFilterRuleRequestMatch>;
|
|
1872
|
+
|
|
1873
|
+
/** Optional BGP attributes to apply when 'action' is PERMIT. Ignored for DENY rules. */
|
|
1874
|
+
export type UpdateGatewayBGPFilterRuleRequestSet = CreateGatewayBGPFilterRuleRequestSet;
|
|
1875
|
+
export const UpdateGatewayBGPFilterRuleRequestSet = CreateGatewayBGPFilterRuleRequestSet;
|
|
1876
|
+
|
|
1877
|
+
export interface UpdateGatewayBGPFilterRuleRequest {
|
|
1878
|
+
projectId: string;
|
|
1879
|
+
region: UpdateGatewayBGPFilterRuleRequestRegion | (string & {});
|
|
1880
|
+
gatewayId: string;
|
|
1881
|
+
filterId: string;
|
|
1882
|
+
ruleId: string;
|
|
1883
|
+
/** The action to take if the route matches all criteria. Case-sensitive. */
|
|
1884
|
+
action: UpdateGatewayBGPFilterRuleRequestAction | (string & {});
|
|
1885
|
+
/** Optional matching criteria. If omitted entirely, the rule acts as match-all. All non-empty fields in this block must match (logical AND). */
|
|
1886
|
+
match?: UpdateGatewayBGPFilterRuleRequestMatch;
|
|
1887
|
+
/** The evaluation order of the rule. Lower numbers are evaluated first. Must be unique within a filter. On POST, this field is optional: when omitted the server auto-assigns max(existing)+10 (the first rule starts at 10). On PUT this field is required — sending a partial update without 'sequence' returns 400. */
|
|
1888
|
+
sequence?: number;
|
|
1889
|
+
/** Optional BGP attributes to apply when 'action' is PERMIT. Ignored for DENY rules. */
|
|
1890
|
+
set?: CreateGatewayBGPFilterRuleRequestSet;
|
|
1891
|
+
}
|
|
1892
|
+
export const UpdateGatewayBGPFilterRuleRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1893
|
+
S.Struct({
|
|
1894
|
+
projectId: S.String.pipe(T.Label()),
|
|
1895
|
+
region: UpdateGatewayBGPFilterRuleRequestRegion.pipe(T.Label()),
|
|
1896
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1897
|
+
filterId: S.String.pipe(T.Label()),
|
|
1898
|
+
ruleId: S.String.pipe(T.Label()),
|
|
1899
|
+
action: UpdateGatewayBGPFilterRuleRequestAction,
|
|
1900
|
+
match: S.optional(UpdateGatewayBGPFilterRuleRequestMatch),
|
|
1901
|
+
sequence: S.optional(S.Number),
|
|
1902
|
+
set: S.optional(CreateGatewayBGPFilterRuleRequestSet),
|
|
1903
|
+
}).pipe(
|
|
1904
|
+
T.Http({
|
|
1905
|
+
method: "PUT",
|
|
1906
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/bgp-filters/{filterId}/rules/{ruleId}",
|
|
1907
|
+
code: 200,
|
|
1908
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1909
|
+
}),
|
|
1910
|
+
),
|
|
1911
|
+
).annotate({
|
|
1912
|
+
identifier: "UpdateGatewayBGPFilterRuleRequest",
|
|
1913
|
+
}) as any as S.Schema<UpdateGatewayBGPFilterRuleRequest>;
|
|
1914
|
+
|
|
1915
|
+
/** The region in which the resource is located. */
|
|
1916
|
+
export type UpdateGatewayConnectionRequestRegion = "eu01" | "eu02";
|
|
1917
|
+
export const UpdateGatewayConnectionRequestRegion = S.String;
|
|
1918
|
+
|
|
1919
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
1920
|
+
export type UpdateGatewayConnectionRequestLocalSubnetsList = Array<string>;
|
|
1921
|
+
export const UpdateGatewayConnectionRequestLocalSubnetsList = /*@__PURE__*/ S.Array(
|
|
1922
|
+
S.String,
|
|
1923
|
+
) as any as S.Schema<UpdateGatewayConnectionRequestLocalSubnetsList>;
|
|
1924
|
+
|
|
1925
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
1926
|
+
export type UpdateGatewayConnectionRequestRemoteSubnetsList = Array<string>;
|
|
1927
|
+
export const UpdateGatewayConnectionRequestRemoteSubnetsList = /*@__PURE__*/ S.Array(
|
|
1928
|
+
S.String,
|
|
1929
|
+
) as any as S.Schema<UpdateGatewayConnectionRequestRemoteSubnetsList>;
|
|
1930
|
+
|
|
1931
|
+
/** Optional. Use this for route-based VPN. */
|
|
1932
|
+
export type UpdateGatewayConnectionRequestStaticRoutesList = Array<string>;
|
|
1933
|
+
export const UpdateGatewayConnectionRequestStaticRoutesList = /*@__PURE__*/ S.Array(
|
|
1934
|
+
S.String,
|
|
1935
|
+
) as any as S.Schema<UpdateGatewayConnectionRequestStaticRoutesList>;
|
|
1936
|
+
|
|
1937
|
+
export interface UpdateGatewayConnectionRequest {
|
|
1938
|
+
projectId: string;
|
|
1939
|
+
region: UpdateGatewayConnectionRequestRegion | (string & {});
|
|
1940
|
+
gatewayId: string;
|
|
1941
|
+
connectionId: string;
|
|
1942
|
+
/** A user-friendly name for the connection. */
|
|
1943
|
+
displayName: string;
|
|
1944
|
+
/** This flag decides whether this connection should be enabled or disabled */
|
|
1945
|
+
enabled?: boolean;
|
|
1946
|
+
labels?: Label;
|
|
1947
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
1948
|
+
localSubnets?: UpdateGatewayConnectionRequestLocalSubnetsList;
|
|
1949
|
+
/** Optional. Defaults to 0.0.0.0/0 for Route-based VPN configurations. Mandatory for Policy-based. */
|
|
1950
|
+
remoteSubnets?: UpdateGatewayConnectionRequestRemoteSubnetsList;
|
|
1951
|
+
/** Optional. Use this for route-based VPN. */
|
|
1952
|
+
staticRoutes?: UpdateGatewayConnectionRequestStaticRoutesList;
|
|
1953
|
+
tunnel1: TunnelConfiguration;
|
|
1954
|
+
tunnel2: TunnelConfiguration;
|
|
1955
|
+
}
|
|
1956
|
+
export const UpdateGatewayConnectionRequest = /*@__PURE__*/ S.suspend(() =>
|
|
1957
|
+
S.Struct({
|
|
1958
|
+
projectId: S.String.pipe(T.Label()),
|
|
1959
|
+
region: UpdateGatewayConnectionRequestRegion.pipe(T.Label()),
|
|
1960
|
+
gatewayId: S.String.pipe(T.Label()),
|
|
1961
|
+
connectionId: S.String.pipe(T.Label()),
|
|
1962
|
+
displayName: S.String,
|
|
1963
|
+
enabled: S.optional(S.Boolean),
|
|
1964
|
+
labels: S.optional(Label),
|
|
1965
|
+
localSubnets: S.optional(UpdateGatewayConnectionRequestLocalSubnetsList),
|
|
1966
|
+
remoteSubnets: S.optional(UpdateGatewayConnectionRequestRemoteSubnetsList),
|
|
1967
|
+
staticRoutes: S.optional(UpdateGatewayConnectionRequestStaticRoutesList),
|
|
1968
|
+
tunnel1: TunnelConfiguration,
|
|
1969
|
+
tunnel2: TunnelConfiguration,
|
|
1970
|
+
}).pipe(
|
|
1971
|
+
T.Http({
|
|
1972
|
+
method: "PUT",
|
|
1973
|
+
uri: "/v1/projects/{projectId}/regions/{region}/gateways/{gatewayId}/connections/{connectionId}",
|
|
1974
|
+
code: 200,
|
|
1975
|
+
baseUrl: "https://vpn.api.stackit.cloud",
|
|
1976
|
+
}),
|
|
1977
|
+
),
|
|
1978
|
+
).annotate({
|
|
1979
|
+
identifier: "UpdateGatewayConnectionRequest",
|
|
1980
|
+
}) as any as S.Schema<UpdateGatewayConnectionRequest>;
|
|
1981
|
+
|
|
1982
|
+
export type CreateGatewayError = BadRequest | Forbidden | Conflict | StackitOpError;
|
|
1983
|
+
/** Create a VPN gateway in a project. Provision a new VPN gateway. */
|
|
1984
|
+
export const createGateway: API.OperationMethod<
|
|
1985
|
+
CreateGatewayRequest,
|
|
1986
|
+
CreateGatewayResponse,
|
|
1987
|
+
CreateGatewayError,
|
|
1988
|
+
StackitOpContext
|
|
1989
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
1990
|
+
input: CreateGatewayRequest,
|
|
1991
|
+
output: CreateGatewayResponse,
|
|
1992
|
+
errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
|
|
1993
|
+
protocol: StackitProtocol,
|
|
1994
|
+
retry: Retry.Retry,
|
|
1995
|
+
}));
|
|
1996
|
+
|
|
1997
|
+
export type CreateGatewayBGPFilterError =
|
|
1998
|
+
| BadRequest
|
|
1999
|
+
| Forbidden
|
|
2000
|
+
| NotFound
|
|
2001
|
+
| Conflict
|
|
2002
|
+
| StackitOpError;
|
|
2003
|
+
/** Create a new empty BGP filter. Creates the filter metadata. Rules are managed via the nested /rules sub-resource. NOTE: an empty filter attached to a tunnel denies all incoming routes (implicit DENY). */
|
|
2004
|
+
export const createGatewayBGPFilter: API.OperationMethod<
|
|
2005
|
+
CreateGatewayBGPFilterRequest,
|
|
2006
|
+
BGPFilter,
|
|
2007
|
+
CreateGatewayBGPFilterError,
|
|
2008
|
+
StackitOpContext
|
|
2009
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2010
|
+
input: CreateGatewayBGPFilterRequest,
|
|
2011
|
+
output: BGPFilter,
|
|
2012
|
+
errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownStackitError],
|
|
2013
|
+
protocol: StackitProtocol,
|
|
2014
|
+
retry: Retry.Retry,
|
|
2015
|
+
}));
|
|
2016
|
+
|
|
2017
|
+
export type CreateGatewayBGPFilterRuleError =
|
|
2018
|
+
| BadRequest
|
|
2019
|
+
| Forbidden
|
|
2020
|
+
| NotFound
|
|
2021
|
+
| Conflict
|
|
2022
|
+
| StackitOpError;
|
|
2023
|
+
/** Add a new rule to a BGP filter. */
|
|
2024
|
+
export const createGatewayBGPFilterRule: API.OperationMethod<
|
|
2025
|
+
CreateGatewayBGPFilterRuleRequest,
|
|
2026
|
+
BGPFilterRule,
|
|
2027
|
+
CreateGatewayBGPFilterRuleError,
|
|
2028
|
+
StackitOpContext
|
|
2029
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2030
|
+
input: CreateGatewayBGPFilterRuleRequest,
|
|
2031
|
+
output: BGPFilterRule,
|
|
2032
|
+
errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownStackitError],
|
|
2033
|
+
protocol: StackitProtocol,
|
|
2034
|
+
retry: Retry.Retry,
|
|
2035
|
+
}));
|
|
2036
|
+
|
|
2037
|
+
export type CreateGatewayConnectionError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2038
|
+
/** Create a new connection on an existing VPN gateway. Create a new connection on an existing VPN gateway. */
|
|
2039
|
+
export const createGatewayConnection: API.OperationMethod<
|
|
2040
|
+
CreateGatewayConnectionRequest,
|
|
2041
|
+
ConnectionResponseOutput,
|
|
2042
|
+
CreateGatewayConnectionError,
|
|
2043
|
+
StackitOpContext
|
|
2044
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2045
|
+
input: CreateGatewayConnectionRequest,
|
|
2046
|
+
output: ConnectionResponseOutput,
|
|
2047
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2048
|
+
protocol: StackitProtocol,
|
|
2049
|
+
retry: Retry.Retry,
|
|
2050
|
+
}));
|
|
2051
|
+
|
|
2052
|
+
export type DeleteGatewayError = BadRequest | Forbidden | StackitOpError;
|
|
2053
|
+
/** Delete a existing VPN gateway in a project. Permanently remove a VPN gateway and all its associated connections. This operation is irreversible. */
|
|
2054
|
+
export const deleteGateway: API.OperationMethod<
|
|
2055
|
+
DeleteGatewayRequest,
|
|
2056
|
+
DeleteGatewayResponse,
|
|
2057
|
+
DeleteGatewayError,
|
|
2058
|
+
StackitOpContext
|
|
2059
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2060
|
+
input: DeleteGatewayRequest,
|
|
2061
|
+
output: DeleteGatewayResponse,
|
|
2062
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
2063
|
+
protocol: StackitProtocol,
|
|
2064
|
+
retry: Retry.Retry,
|
|
2065
|
+
}));
|
|
2066
|
+
|
|
2067
|
+
export type DeleteGatewayBGPFilterError =
|
|
2068
|
+
| BadRequest
|
|
2069
|
+
| Forbidden
|
|
2070
|
+
| NotFound
|
|
2071
|
+
| Conflict
|
|
2072
|
+
| StackitOpError;
|
|
2073
|
+
/** Delete a BGP filter. Fails with 409 Conflict if the filter is referenced by any connection's tunnel.bgp.inboundFilterId. The error response body's details[] contains one entry per referencing connection with metadata { connectionId, displayName, tunnel: 'tunnel1'|'tunnel2' } and reason RESOURCE_IN_USE so the caller can detach them first. */
|
|
2074
|
+
export const deleteGatewayBGPFilter: API.OperationMethod<
|
|
2075
|
+
DeleteGatewayBGPFilterRequest,
|
|
2076
|
+
DeleteGatewayBGPFilterResponse,
|
|
2077
|
+
DeleteGatewayBGPFilterError,
|
|
2078
|
+
StackitOpContext
|
|
2079
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2080
|
+
input: DeleteGatewayBGPFilterRequest,
|
|
2081
|
+
output: DeleteGatewayBGPFilterResponse,
|
|
2082
|
+
errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownStackitError],
|
|
2083
|
+
protocol: StackitProtocol,
|
|
2084
|
+
retry: Retry.Retry,
|
|
2085
|
+
}));
|
|
2086
|
+
|
|
2087
|
+
export type DeleteGatewayBGPFilterRuleError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2088
|
+
/** Delete a specific rule. */
|
|
2089
|
+
export const deleteGatewayBGPFilterRule: API.OperationMethod<
|
|
2090
|
+
DeleteGatewayBGPFilterRuleRequest,
|
|
2091
|
+
DeleteGatewayBGPFilterRuleResponse,
|
|
2092
|
+
DeleteGatewayBGPFilterRuleError,
|
|
2093
|
+
StackitOpContext
|
|
2094
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2095
|
+
input: DeleteGatewayBGPFilterRuleRequest,
|
|
2096
|
+
output: DeleteGatewayBGPFilterRuleResponse,
|
|
2097
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2098
|
+
protocol: StackitProtocol,
|
|
2099
|
+
retry: Retry.Retry,
|
|
2100
|
+
}));
|
|
2101
|
+
|
|
2102
|
+
export type DeleteGatewayConnectionError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2103
|
+
/** Delete a certain connection from an existing VPN gateway. Delete a certain connection from an existing VPN gateway. */
|
|
2104
|
+
export const deleteGatewayConnection: API.OperationMethod<
|
|
2105
|
+
DeleteGatewayConnectionRequest,
|
|
2106
|
+
DeleteGatewayConnectionResponse,
|
|
2107
|
+
DeleteGatewayConnectionError,
|
|
2108
|
+
StackitOpContext
|
|
2109
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2110
|
+
input: DeleteGatewayConnectionRequest,
|
|
2111
|
+
output: DeleteGatewayConnectionResponse,
|
|
2112
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2113
|
+
protocol: StackitProtocol,
|
|
2114
|
+
retry: Retry.Retry,
|
|
2115
|
+
}));
|
|
2116
|
+
|
|
2117
|
+
export type GetGatewayError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2118
|
+
/** Get details of a VPN Gateway in a project. Get details of a VPN Gateway in a project. */
|
|
2119
|
+
export const getGateway: API.OperationMethod<
|
|
2120
|
+
GetGatewayRequest,
|
|
2121
|
+
GetGatewayResponse,
|
|
2122
|
+
GetGatewayError,
|
|
2123
|
+
StackitOpContext
|
|
2124
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2125
|
+
input: GetGatewayRequest,
|
|
2126
|
+
output: GetGatewayResponse,
|
|
2127
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2128
|
+
protocol: StackitProtocol,
|
|
2129
|
+
retry: Retry.Retry,
|
|
2130
|
+
}));
|
|
2131
|
+
|
|
2132
|
+
export type GetGatewayBGPFilterError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2133
|
+
/** Get BGP filter metadata. */
|
|
2134
|
+
export const getGatewayBGPFilter: API.OperationMethod<
|
|
2135
|
+
GetGatewayBGPFilterRequest,
|
|
2136
|
+
BGPFilter,
|
|
2137
|
+
GetGatewayBGPFilterError,
|
|
2138
|
+
StackitOpContext
|
|
2139
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2140
|
+
input: GetGatewayBGPFilterRequest,
|
|
2141
|
+
output: BGPFilter,
|
|
2142
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2143
|
+
protocol: StackitProtocol,
|
|
2144
|
+
retry: Retry.Retry,
|
|
2145
|
+
}));
|
|
2146
|
+
|
|
2147
|
+
export type GetGatewayBGPFilterRuleError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2148
|
+
/** Get a specific rule from a BGP filter. */
|
|
2149
|
+
export const getGatewayBGPFilterRule: API.OperationMethod<
|
|
2150
|
+
GetGatewayBGPFilterRuleRequest,
|
|
2151
|
+
BGPFilterRule,
|
|
2152
|
+
GetGatewayBGPFilterRuleError,
|
|
2153
|
+
StackitOpContext
|
|
2154
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2155
|
+
input: GetGatewayBGPFilterRuleRequest,
|
|
2156
|
+
output: BGPFilterRule,
|
|
2157
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2158
|
+
protocol: StackitProtocol,
|
|
2159
|
+
retry: Retry.Retry,
|
|
2160
|
+
}));
|
|
2161
|
+
|
|
2162
|
+
export type GetGatewayConnectionError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2163
|
+
/** Get a certain connection for an existing VPN gateway. Get a certain connection for an existing VPN gateway. */
|
|
2164
|
+
export const getGatewayConnection: API.OperationMethod<
|
|
2165
|
+
GetGatewayConnectionRequest,
|
|
2166
|
+
ConnectionResponseOutput,
|
|
2167
|
+
GetGatewayConnectionError,
|
|
2168
|
+
StackitOpContext
|
|
2169
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2170
|
+
input: GetGatewayConnectionRequest,
|
|
2171
|
+
output: ConnectionResponseOutput,
|
|
2172
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2173
|
+
protocol: StackitProtocol,
|
|
2174
|
+
retry: Retry.Retry,
|
|
2175
|
+
}));
|
|
2176
|
+
|
|
2177
|
+
export type GetGatewayConnectionStatusError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2178
|
+
/** Gets the status for a specific connection. Get the status for a specific connection. */
|
|
2179
|
+
export const getGatewayConnectionStatus: API.OperationMethod<
|
|
2180
|
+
GetGatewayConnectionStatusRequest,
|
|
2181
|
+
ConnectionStatusResponse,
|
|
2182
|
+
GetGatewayConnectionStatusError,
|
|
2183
|
+
StackitOpContext
|
|
2184
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2185
|
+
input: GetGatewayConnectionStatusRequest,
|
|
2186
|
+
output: ConnectionStatusResponse,
|
|
2187
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2188
|
+
protocol: StackitProtocol,
|
|
2189
|
+
retry: Retry.Retry,
|
|
2190
|
+
}));
|
|
2191
|
+
|
|
2192
|
+
export type GetGatewayStatusError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2193
|
+
/** Get the status of a VPN gateway in a project. Get the status of a VPN gateway in a project. */
|
|
2194
|
+
export const getGatewayStatus: API.OperationMethod<
|
|
2195
|
+
GetGatewayStatusRequest,
|
|
2196
|
+
GatewayStatusResponse,
|
|
2197
|
+
GetGatewayStatusError,
|
|
2198
|
+
StackitOpContext
|
|
2199
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2200
|
+
input: GetGatewayStatusRequest,
|
|
2201
|
+
output: GatewayStatusResponse,
|
|
2202
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2203
|
+
protocol: StackitProtocol,
|
|
2204
|
+
retry: Retry.Retry,
|
|
2205
|
+
}));
|
|
2206
|
+
|
|
2207
|
+
export type ListGatewayBGPFilterRulesError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2208
|
+
/** List all rules inside a specific BGP filter. */
|
|
2209
|
+
export const listGatewayBGPFilterRules: API.OperationMethod<
|
|
2210
|
+
ListGatewayBGPFilterRulesRequest,
|
|
2211
|
+
BGPFilterRuleList,
|
|
2212
|
+
ListGatewayBGPFilterRulesError,
|
|
2213
|
+
StackitOpContext
|
|
2214
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2215
|
+
input: ListGatewayBGPFilterRulesRequest,
|
|
2216
|
+
output: BGPFilterRuleList,
|
|
2217
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2218
|
+
protocol: StackitProtocol,
|
|
2219
|
+
retry: Retry.Retry,
|
|
2220
|
+
}));
|
|
2221
|
+
|
|
2222
|
+
export type ListGatewayBGPFiltersError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2223
|
+
/** List BGP filters for a gateway. */
|
|
2224
|
+
export const listGatewayBGPFilters: API.OperationMethod<
|
|
2225
|
+
ListGatewayBGPFiltersRequest,
|
|
2226
|
+
BGPFilterList,
|
|
2227
|
+
ListGatewayBGPFiltersError,
|
|
2228
|
+
StackitOpContext
|
|
2229
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2230
|
+
input: ListGatewayBGPFiltersRequest,
|
|
2231
|
+
output: BGPFilterList,
|
|
2232
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2233
|
+
protocol: StackitProtocol,
|
|
2234
|
+
retry: Retry.Retry,
|
|
2235
|
+
}));
|
|
2236
|
+
|
|
2237
|
+
export type ListGatewayConnectionsError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2238
|
+
/** List connections for an existing VPN gateway. List connections for an existing VPN gateway. */
|
|
2239
|
+
export const listGatewayConnections: API.OperationMethod<
|
|
2240
|
+
ListGatewayConnectionsRequest,
|
|
2241
|
+
ConnectionListOutput,
|
|
2242
|
+
ListGatewayConnectionsError,
|
|
2243
|
+
StackitOpContext
|
|
2244
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2245
|
+
input: ListGatewayConnectionsRequest,
|
|
2246
|
+
output: ConnectionListOutput,
|
|
2247
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2248
|
+
protocol: StackitProtocol,
|
|
2249
|
+
retry: Retry.Retry,
|
|
2250
|
+
}));
|
|
2251
|
+
|
|
2252
|
+
export type ListGatewaysError = BadRequest | Forbidden | StackitOpError;
|
|
2253
|
+
/** List VPN gateways in a project with label filtering Retrieve a list of all VPN gateways in a project. Filter the results using the `label_selector` query parameter. */
|
|
2254
|
+
export const listGateways: API.OperationMethod<
|
|
2255
|
+
ListGatewaysRequest,
|
|
2256
|
+
GatewayList,
|
|
2257
|
+
ListGatewaysError,
|
|
2258
|
+
StackitOpContext
|
|
2259
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2260
|
+
input: ListGatewaysRequest,
|
|
2261
|
+
output: GatewayList,
|
|
2262
|
+
errors: [BadRequest, Forbidden, UnknownStackitError],
|
|
2263
|
+
protocol: StackitProtocol,
|
|
2264
|
+
retry: Retry.Retry,
|
|
2265
|
+
}));
|
|
2266
|
+
|
|
2267
|
+
export type ListPlansError = BadRequest | StackitOpError;
|
|
2268
|
+
/** List available service plans for a project. Retrieve a list of available service plans available for provisioning a VPN in a specific `region`. Use this to identify the `planId` required for gateway creation. */
|
|
2269
|
+
export const listPlans: API.OperationMethod<
|
|
2270
|
+
ListPlansRequest,
|
|
2271
|
+
PlanList,
|
|
2272
|
+
ListPlansError,
|
|
2273
|
+
StackitOpContext
|
|
2274
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2275
|
+
input: ListPlansRequest,
|
|
2276
|
+
output: PlanList,
|
|
2277
|
+
errors: [BadRequest, UnknownStackitError],
|
|
2278
|
+
protocol: StackitProtocol,
|
|
2279
|
+
retry: Retry.Retry,
|
|
2280
|
+
}));
|
|
2281
|
+
|
|
2282
|
+
export type ListQuotasError = BadRequest | StackitOpError;
|
|
2283
|
+
/** List project quotas. Retrieve the resource quotas and current usage for STACKIT VPN within a specific project and region. */
|
|
2284
|
+
export const listQuotas: API.OperationMethod<
|
|
2285
|
+
ListQuotasRequest,
|
|
2286
|
+
QuotaListResponse,
|
|
2287
|
+
ListQuotasError,
|
|
2288
|
+
StackitOpContext
|
|
2289
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2290
|
+
input: ListQuotasRequest,
|
|
2291
|
+
output: QuotaListResponse,
|
|
2292
|
+
errors: [BadRequest, UnknownStackitError],
|
|
2293
|
+
protocol: StackitProtocol,
|
|
2294
|
+
retry: Retry.Retry,
|
|
2295
|
+
}));
|
|
2296
|
+
|
|
2297
|
+
export type UpdateGatewayError = BadRequest | Forbidden | Conflict | StackitOpError;
|
|
2298
|
+
/** Update a VPN gateway in a project. Modify the configuration of an existing VPN gateway. Certain changes may trigger infrastructure updates or temporary connection re-negotiations. */
|
|
2299
|
+
export const updateGateway: API.OperationMethod<
|
|
2300
|
+
UpdateGatewayRequest,
|
|
2301
|
+
UpdateGatewayResponse,
|
|
2302
|
+
UpdateGatewayError,
|
|
2303
|
+
StackitOpContext
|
|
2304
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2305
|
+
input: UpdateGatewayRequest,
|
|
2306
|
+
output: UpdateGatewayResponse,
|
|
2307
|
+
errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
|
|
2308
|
+
protocol: StackitProtocol,
|
|
2309
|
+
retry: Retry.Retry,
|
|
2310
|
+
}));
|
|
2311
|
+
|
|
2312
|
+
export type UpdateGatewayBGPFilterError =
|
|
2313
|
+
| BadRequest
|
|
2314
|
+
| Forbidden
|
|
2315
|
+
| NotFound
|
|
2316
|
+
| Conflict
|
|
2317
|
+
| StackitOpError;
|
|
2318
|
+
/** Update BGP filter metadata (name, description). Rules are managed via the nested /rules sub-resource and are not modified by this endpoint. */
|
|
2319
|
+
export const updateGatewayBGPFilter: API.OperationMethod<
|
|
2320
|
+
UpdateGatewayBGPFilterRequest,
|
|
2321
|
+
BGPFilter,
|
|
2322
|
+
UpdateGatewayBGPFilterError,
|
|
2323
|
+
StackitOpContext
|
|
2324
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2325
|
+
input: UpdateGatewayBGPFilterRequest,
|
|
2326
|
+
output: BGPFilter,
|
|
2327
|
+
errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownStackitError],
|
|
2328
|
+
protocol: StackitProtocol,
|
|
2329
|
+
retry: Retry.Retry,
|
|
2330
|
+
}));
|
|
2331
|
+
|
|
2332
|
+
export type UpdateGatewayBGPFilterRuleError =
|
|
2333
|
+
| BadRequest
|
|
2334
|
+
| Forbidden
|
|
2335
|
+
| NotFound
|
|
2336
|
+
| Conflict
|
|
2337
|
+
| StackitOpError;
|
|
2338
|
+
/** Update a specific rule. */
|
|
2339
|
+
export const updateGatewayBGPFilterRule: API.OperationMethod<
|
|
2340
|
+
UpdateGatewayBGPFilterRuleRequest,
|
|
2341
|
+
BGPFilterRule,
|
|
2342
|
+
UpdateGatewayBGPFilterRuleError,
|
|
2343
|
+
StackitOpContext
|
|
2344
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2345
|
+
input: UpdateGatewayBGPFilterRuleRequest,
|
|
2346
|
+
output: BGPFilterRule,
|
|
2347
|
+
errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownStackitError],
|
|
2348
|
+
protocol: StackitProtocol,
|
|
2349
|
+
retry: Retry.Retry,
|
|
2350
|
+
}));
|
|
2351
|
+
|
|
2352
|
+
export type UpdateGatewayConnectionError = BadRequest | Forbidden | NotFound | StackitOpError;
|
|
2353
|
+
/** Update a connection on an existing VPN gateway. Updating the configuration of an existing connection. */
|
|
2354
|
+
export const updateGatewayConnection: API.OperationMethod<
|
|
2355
|
+
UpdateGatewayConnectionRequest,
|
|
2356
|
+
ConnectionResponseOutput,
|
|
2357
|
+
UpdateGatewayConnectionError,
|
|
2358
|
+
StackitOpContext
|
|
2359
|
+
> = /*@__PURE__*/ API.make(() => ({
|
|
2360
|
+
input: UpdateGatewayConnectionRequest,
|
|
2361
|
+
output: ConnectionResponseOutput,
|
|
2362
|
+
errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
|
|
2363
|
+
protocol: StackitProtocol,
|
|
2364
|
+
retry: Retry.Retry,
|
|
2365
|
+
}));
|