@scaleway/sdk 2.67.0 → 2.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/api/audit_trail/v1alpha1/api.gen.cjs +5 -1
  2. package/dist/api/audit_trail/v1alpha1/api.gen.js +5 -1
  3. package/dist/api/audit_trail/v1alpha1/marshalling.gen.cjs +1 -0
  4. package/dist/api/audit_trail/v1alpha1/marshalling.gen.js +1 -0
  5. package/dist/api/audit_trail/v1alpha1/types.gen.d.ts +6 -2
  6. package/dist/api/baremetal/v1/api.gen.cjs +13 -0
  7. package/dist/api/baremetal/v1/api.gen.d.ts +8 -1
  8. package/dist/api/baremetal/v1/api.gen.js +13 -0
  9. package/dist/api/baremetal/v1/content.gen.cjs +2 -1
  10. package/dist/api/baremetal/v1/content.gen.js +2 -1
  11. package/dist/api/baremetal/v1/index.gen.d.ts +1 -1
  12. package/dist/api/baremetal/v1/marshalling.gen.cjs +1 -0
  13. package/dist/api/baremetal/v1/marshalling.gen.js +1 -0
  14. package/dist/api/baremetal/v1/types.gen.d.ts +9 -1
  15. package/dist/api/block/index.gen.cjs +4 -2
  16. package/dist/api/block/index.gen.d.ts +1 -0
  17. package/dist/api/block/index.gen.js +4 -2
  18. package/dist/api/block/v1/api.gen.cjs +303 -0
  19. package/dist/api/block/v1/api.gen.d.ts +152 -0
  20. package/dist/api/block/v1/api.gen.js +303 -0
  21. package/dist/api/block/v1/content.gen.cjs +22 -0
  22. package/dist/api/block/v1/content.gen.d.ts +7 -0
  23. package/dist/api/block/v1/content.gen.js +22 -0
  24. package/dist/api/block/v1/index.gen.cjs +10 -0
  25. package/dist/api/block/v1/index.gen.d.ts +4 -0
  26. package/dist/api/block/v1/index.gen.js +10 -0
  27. package/dist/api/block/v1/marshalling.gen.cjs +200 -0
  28. package/dist/api/block/v1/marshalling.gen.d.ts +14 -0
  29. package/dist/api/block/v1/marshalling.gen.js +200 -0
  30. package/dist/api/block/v1/types.gen.d.ts +335 -0
  31. package/dist/api/block/v1/validation-rules.gen.cjs +56 -0
  32. package/dist/api/block/v1/validation-rules.gen.d.ts +47 -0
  33. package/dist/api/block/v1/validation-rules.gen.js +56 -0
  34. package/dist/api/block/v1alpha1/api.gen.cjs +1 -0
  35. package/dist/api/block/v1alpha1/api.gen.js +1 -0
  36. package/dist/api/block/v1alpha1/types.gen.d.ts +5 -0
  37. package/dist/api/edge_services/index.gen.cjs +2 -0
  38. package/dist/api/edge_services/index.gen.d.ts +1 -0
  39. package/dist/api/edge_services/index.gen.js +3 -1
  40. package/dist/api/edge_services/v1beta1/api.gen.cjs +941 -0
  41. package/dist/api/edge_services/v1beta1/api.gen.d.ts +454 -0
  42. package/dist/api/edge_services/v1beta1/api.gen.js +941 -0
  43. package/dist/api/edge_services/v1beta1/content.gen.cjs +8 -0
  44. package/dist/api/edge_services/v1beta1/content.gen.d.ts +5 -0
  45. package/dist/api/edge_services/v1beta1/content.gen.js +8 -0
  46. package/dist/api/{webhosting/v1alpha1 → edge_services/v1beta1}/index.gen.cjs +2 -2
  47. package/dist/api/edge_services/v1beta1/index.gen.d.ts +4 -0
  48. package/dist/api/edge_services/v1beta1/index.gen.js +9 -0
  49. package/dist/api/edge_services/v1beta1/marshalling.gen.cjs +808 -0
  50. package/dist/api/edge_services/v1beta1/marshalling.gen.d.ts +53 -0
  51. package/dist/api/edge_services/v1beta1/marshalling.gen.js +808 -0
  52. package/dist/api/edge_services/v1beta1/types.gen.d.ts +1218 -0
  53. package/dist/api/edge_services/v1beta1/validation-rules.gen.cjs +23 -0
  54. package/dist/api/edge_services/v1beta1/validation-rules.gen.d.ts +18 -0
  55. package/dist/api/edge_services/v1beta1/validation-rules.gen.js +23 -0
  56. package/dist/api/instance/v1/api.gen.cjs +18 -0
  57. package/dist/api/instance/v1/api.gen.d.ts +13 -1
  58. package/dist/api/instance/v1/api.gen.js +19 -1
  59. package/dist/api/instance/v1/index.gen.d.ts +1 -1
  60. package/dist/api/instance/v1/marshalling.gen.cjs +12 -0
  61. package/dist/api/instance/v1/marshalling.gen.d.ts +2 -1
  62. package/dist/api/instance/v1/marshalling.gen.js +12 -0
  63. package/dist/api/instance/v1/types.gen.d.ts +12 -0
  64. package/dist/api/lb/v1/marshalling.gen.cjs +2 -0
  65. package/dist/api/lb/v1/marshalling.gen.js +2 -0
  66. package/dist/api/lb/v1/types.gen.d.ts +2 -0
  67. package/dist/api/mongodb/v1alpha1/api.gen.cjs +11 -0
  68. package/dist/api/mongodb/v1alpha1/api.gen.d.ts +2 -1
  69. package/dist/api/mongodb/v1alpha1/api.gen.js +12 -1
  70. package/dist/api/mongodb/v1alpha1/index.gen.d.ts +1 -1
  71. package/dist/api/mongodb/v1alpha1/marshalling.gen.cjs +26 -1
  72. package/dist/api/mongodb/v1alpha1/marshalling.gen.d.ts +2 -1
  73. package/dist/api/mongodb/v1alpha1/marshalling.gen.js +26 -1
  74. package/dist/api/mongodb/v1alpha1/types.gen.d.ts +29 -0
  75. package/dist/api/mongodb/v1alpha1/validation-rules.gen.cjs +8 -0
  76. package/dist/api/mongodb/v1alpha1/validation-rules.gen.d.ts +7 -0
  77. package/dist/api/mongodb/v1alpha1/validation-rules.gen.js +8 -0
  78. package/dist/api/webhosting/index.gen.cjs +0 -2
  79. package/dist/api/webhosting/index.gen.d.ts +0 -1
  80. package/dist/api/webhosting/index.gen.js +1 -3
  81. package/dist/api/webhosting/v1/content.gen.cjs +0 -6
  82. package/dist/api/webhosting/v1/content.gen.d.ts +1 -3
  83. package/dist/api/webhosting/v1/content.gen.js +0 -6
  84. package/dist/api/webhosting/v1/index.gen.cjs +0 -1
  85. package/dist/api/webhosting/v1/index.gen.d.ts +1 -1
  86. package/dist/api/webhosting/v1/index.gen.js +1 -2
  87. package/dist/api/webhosting/v1/marshalling.gen.cjs +1 -2
  88. package/dist/api/webhosting/v1/marshalling.gen.js +1 -2
  89. package/dist/api/webhosting/v1/types.gen.d.ts +3 -6
  90. package/dist/scw/constants.cjs +1 -1
  91. package/dist/scw/constants.d.ts +2 -2
  92. package/dist/scw/constants.js +1 -1
  93. package/package.json +2 -2
  94. package/dist/api/webhosting/v1alpha1/api.gen.cjs +0 -339
  95. package/dist/api/webhosting/v1alpha1/api.gen.d.ts +0 -168
  96. package/dist/api/webhosting/v1alpha1/api.gen.js +0 -339
  97. package/dist/api/webhosting/v1alpha1/content.gen.cjs +0 -8
  98. package/dist/api/webhosting/v1alpha1/content.gen.d.ts +0 -3
  99. package/dist/api/webhosting/v1alpha1/content.gen.js +0 -8
  100. package/dist/api/webhosting/v1alpha1/index.gen.d.ts +0 -4
  101. package/dist/api/webhosting/v1alpha1/index.gen.js +0 -9
  102. package/dist/api/webhosting/v1alpha1/marshalling.gen.cjs +0 -300
  103. package/dist/api/webhosting/v1alpha1/marshalling.gen.d.ts +0 -17
  104. package/dist/api/webhosting/v1alpha1/marshalling.gen.js +0 -300
  105. package/dist/api/webhosting/v1alpha1/types.gen.d.ts +0 -480
  106. package/dist/api/webhosting/v1alpha1/validation-rules.gen.cjs +0 -32
  107. package/dist/api/webhosting/v1alpha1/validation-rules.gen.d.ts +0 -27
  108. package/dist/api/webhosting/v1alpha1/validation-rules.gen.js +0 -32
@@ -0,0 +1,1218 @@
1
+ import type { Money, Region as ScwRegion, Zone as ScwZone } from '../../../bridge';
2
+ export type DNSStageType = 'unknown_type' | 'auto' | 'managed' | 'custom';
3
+ export type LbOriginError = 'unknown' | 'timeout' | 'connection_refused' | 'tls_error';
4
+ export type ListBackendStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
5
+ export type ListCacheStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
6
+ export type ListDNSStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
7
+ export type ListPipelinesRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
8
+ export type ListPipelinesWithStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
9
+ export type ListPurgeRequestsRequestOrderBy = 'created_at_asc' | 'created_at_desc';
10
+ export type ListRouteStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
11
+ export type ListTLSStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
12
+ export type ListWafStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
13
+ export type PipelineErrorCode = 'unknown_code' | 'dns_invalid_format' | 'dns_invalid_tld' | 'dns_forbidden_root_domain' | 'dns_forbidden_scw_cloud' | 'dns_domain_dont_exist' | 'dns_cname_dont_exist' | 'dns_cname_resolve' | 'dns_fqdn_already_exists' | 'dns_fqdn_already_in_use' | 'tls_cert_deleted' | 'tls_cert_disabled' | 'tls_cert_expired' | 'tls_cert_invalid_format' | 'tls_cert_missing' | 'tls_chain_order' | 'tls_key_invalid_format' | 'tls_key_missing' | 'tls_key_too_many' | 'tls_managed_domain_rate_limit' | 'tls_managed_internal' | 'tls_pair_mismatch' | 'tls_root_inconsistent' | 'tls_root_incorrect' | 'tls_root_missing' | 'tls_san_mismatch' | 'tls_self_signed' | 'pipeline_invalid_workflow' | 'pipeline_missing_head_stage';
14
+ export type PipelineErrorSeverity = 'unknown_severity' | 'warning' | 'critical';
15
+ export type PipelineErrorStage = 'unknown_stage' | 'dns' | 'tls' | 'cache' | 'backend';
16
+ export type PipelineErrorType = 'unknown_type' | 'runtime' | 'config';
17
+ export type PipelineStatus = 'unknown_status' | 'ready' | 'error' | 'pending' | 'warning';
18
+ export type PlanName = 'unknown_name' | 'starter' | 'professional' | 'advanced';
19
+ export type PurgeRequestStatus = 'unknown_status' | 'done' | 'error' | 'pending';
20
+ export type RuleHttpMatchMethodFilter = 'unknown_method_filter' | 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head' | 'options';
21
+ export type RuleHttpMatchPathFilterPathFilterType = 'unknown_path_filter' | 'regex';
22
+ export type SearchBackendStagesRequestOrderBy = 'created_at_asc' | 'created_at_desc';
23
+ export type WafStageMode = 'unknown_mode' | 'disable' | 'log_only' | 'enable';
24
+ export interface ScalewayLb {
25
+ /** ID of the Load Balancer. */
26
+ id: string;
27
+ /** Zone of the Load Balancer. */
28
+ zone: ScwZone;
29
+ /** ID of the frontend linked to the Load Balancer. */
30
+ frontendId: string;
31
+ /** Defines whether the Load Balancer's frontend handles SSL connections. */
32
+ isSsl?: boolean;
33
+ /**
34
+ * Fully Qualified Domain Name (in the format subdomain.example.com) to use in
35
+ * HTTP requests sent towards your Load Balancer.
36
+ */
37
+ domainName?: string;
38
+ }
39
+ export interface RuleHttpMatchPathFilter {
40
+ /**
41
+ * Type of filter to match for the HTTP URL path. For now, all path filters
42
+ * must be written in regex and use the `regex` type.
43
+ */
44
+ pathFilterType: RuleHttpMatchPathFilterPathFilterType;
45
+ /** Value to be matched for the HTTP URL path. */
46
+ value: string;
47
+ }
48
+ export interface ScalewayLbBackendConfig {
49
+ /** Load Balancer information. */
50
+ lbs: ScalewayLb[];
51
+ }
52
+ export interface ScalewayS3BackendConfig {
53
+ /** Name of the Bucket. */
54
+ bucketName?: string;
55
+ /** Region of the Bucket. */
56
+ bucketRegion?: string;
57
+ /** Defines whether the bucket website feature is enabled. */
58
+ isWebsite?: boolean;
59
+ }
60
+ export interface PipelineError {
61
+ stage: PipelineErrorStage;
62
+ code: PipelineErrorCode;
63
+ severity: PipelineErrorSeverity;
64
+ message: string;
65
+ type: PipelineErrorType;
66
+ }
67
+ export interface TLSSecret {
68
+ /** ID of the Secret. */
69
+ secretId: string;
70
+ /** Region of the Secret. */
71
+ region: ScwRegion;
72
+ }
73
+ export interface RuleHttpMatch {
74
+ /**
75
+ * HTTP methods to filter for. A request using any of these methods will be
76
+ * considered to match the rule. Possible values are `get`, `post`, `put`,
77
+ * `patch`, `delete`, `head`, `options`. All methods will match if none is
78
+ * provided.
79
+ */
80
+ methodFilters: RuleHttpMatchMethodFilter[];
81
+ /**
82
+ * HTTP URL path to filter for. A request whose path matches the given filter
83
+ * will be considered to match the rule. All paths will match if none is
84
+ * provided.
85
+ */
86
+ pathFilter?: RuleHttpMatchPathFilter;
87
+ }
88
+ export interface BackendStage {
89
+ /** ID of the backend stage. */
90
+ id: string;
91
+ /** Pipeline ID the backend stage belongs to. */
92
+ pipelineId: string;
93
+ /** Date the backend stage was created. */
94
+ createdAt?: Date;
95
+ /** Date the backend stage was last updated. */
96
+ updatedAt?: Date;
97
+ /**
98
+ * Scaleway Object Storage origin bucket (S3) linked to the backend stage.
99
+ *
100
+ * One-of ('backendConfig'): at most one of 'scalewayS3', 'scalewayLb' could
101
+ * be set.
102
+ */
103
+ scalewayS3?: ScalewayS3BackendConfig;
104
+ /**
105
+ * Scaleway Load Balancer origin linked to the backend stage.
106
+ *
107
+ * One-of ('backendConfig'): at most one of 'scalewayS3', 'scalewayLb' could
108
+ * be set.
109
+ */
110
+ scalewayLb?: ScalewayLbBackendConfig;
111
+ }
112
+ export interface CacheStage {
113
+ /** ID of the cache stage. */
114
+ id: string;
115
+ /** Pipeline ID the cache stage belongs to. */
116
+ pipelineId: string;
117
+ /** Time To Live (TTL) in seconds. Defines how long content is cached. */
118
+ fallbackTtl?: string;
119
+ /** Date the cache stage was created. */
120
+ createdAt?: Date;
121
+ /** Date the cache stage was last updated. */
122
+ updatedAt?: Date;
123
+ /**
124
+ * Backend stage ID the cache stage is linked to.
125
+ *
126
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
127
+ * 'routeStageId' could be set.
128
+ */
129
+ backendStageId?: string;
130
+ /**
131
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
132
+ * 'routeStageId' could be set.
133
+ */
134
+ wafStageId?: string;
135
+ /**
136
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
137
+ * 'routeStageId' could be set.
138
+ */
139
+ routeStageId?: string;
140
+ }
141
+ export interface DNSStage {
142
+ /** ID of the DNS stage. */
143
+ id: string;
144
+ /** List of Fully Qualified Domain Names attached to the stage. */
145
+ fqdns: string[];
146
+ /** Type of the stage. */
147
+ type: DNSStageType;
148
+ /** Pipeline ID the DNS stage belongs to. */
149
+ pipelineId: string;
150
+ /** Date the DNS stage was created. */
151
+ createdAt?: Date;
152
+ /** Date the DNS stage was last updated. */
153
+ updatedAt?: Date;
154
+ /**
155
+ * TLS stage ID the DNS stage is linked to.
156
+ *
157
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
158
+ * 'backendStageId' could be set.
159
+ */
160
+ tlsStageId?: string;
161
+ /**
162
+ * Cache stage ID the DNS stage is linked to.
163
+ *
164
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
165
+ * 'backendStageId' could be set.
166
+ */
167
+ cacheStageId?: string;
168
+ /**
169
+ * Backend stage ID the DNS stage is linked to.
170
+ *
171
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
172
+ * 'backendStageId' could be set.
173
+ */
174
+ backendStageId?: string;
175
+ }
176
+ export interface Pipeline {
177
+ /** ID of the pipeline. */
178
+ id: string;
179
+ /** Name of the pipeline. */
180
+ name: string;
181
+ /** Description of the pipeline. */
182
+ description: string;
183
+ /** Status of the pipeline. */
184
+ status: PipelineStatus;
185
+ /** Errors of the pipeline. */
186
+ errors: PipelineError[];
187
+ /** Project ID of the pipeline. */
188
+ projectId: string;
189
+ /** Organization ID of the pipeline. */
190
+ organizationId: string;
191
+ /** Date the pipeline was created. */
192
+ createdAt?: Date;
193
+ /** Date the pipeline was last updated. */
194
+ updatedAt?: Date;
195
+ }
196
+ export interface RouteStage {
197
+ /** ID of the route stage. */
198
+ id: string;
199
+ /** Pipeline ID the route stage belongs to. */
200
+ pipelineId: string;
201
+ /**
202
+ * ID of the WAF stage HTTP requests should be forwarded to when no rules are
203
+ * matched.
204
+ *
205
+ * One-of ('next'): at most one of 'wafStageId' could be set.
206
+ */
207
+ wafStageId?: string;
208
+ /** Date the route stage was created. */
209
+ createdAt?: Date;
210
+ /** Date the route stage was last updated. */
211
+ updatedAt?: Date;
212
+ }
213
+ export interface TLSStage {
214
+ /** ID of the TLS stage. */
215
+ id: string;
216
+ /** Secret (from Scaleway Secret Manager) containing your custom certificate. */
217
+ secrets: TLSSecret[];
218
+ /**
219
+ * True when Scaleway generates and manages a Let's Encrypt certificate for
220
+ * the TLS stage/custom endpoint.
221
+ */
222
+ managedCertificate: boolean;
223
+ /** Pipeline ID the TLS stage belongs to. */
224
+ pipelineId: string;
225
+ /** Expiration date of the certificate. */
226
+ certificateExpiresAt?: Date;
227
+ /** Date the TLS stage was created. */
228
+ createdAt?: Date;
229
+ /** Date the TLS stage was last updated. */
230
+ updatedAt?: Date;
231
+ /**
232
+ * Cache stage ID the TLS stage is linked to.
233
+ *
234
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
235
+ * 'wafStageId', 'routeStageId' could be set.
236
+ */
237
+ cacheStageId?: string;
238
+ /**
239
+ * Backend stage ID the TLS stage is linked to.
240
+ *
241
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
242
+ * 'wafStageId', 'routeStageId' could be set.
243
+ */
244
+ backendStageId?: string;
245
+ /**
246
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
247
+ * 'wafStageId', 'routeStageId' could be set.
248
+ */
249
+ wafStageId?: string;
250
+ /**
251
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
252
+ * 'wafStageId', 'routeStageId' could be set.
253
+ */
254
+ routeStageId?: string;
255
+ }
256
+ export interface WafStage {
257
+ /** ID of the WAF stage. */
258
+ id: string;
259
+ /** Pipeline ID the WAF stage belongs to. */
260
+ pipelineId: string;
261
+ /** Mode defining WAF behavior (`disable`/`log_only`/`enable`). */
262
+ mode: WafStageMode;
263
+ /**
264
+ * Sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as
265
+ * malicious. With a high level, requests are more likely to be classed as
266
+ * malicious, and false positives are expected. With a lower level, requests
267
+ * are more likely to be classed as benign.
268
+ */
269
+ paranoiaLevel: number;
270
+ /** Date the WAF stage was created. */
271
+ createdAt?: Date;
272
+ /** Date the WAF stage was last updated. */
273
+ updatedAt?: Date;
274
+ /**
275
+ * ID of the backend stage to forward requests to after the WAF stage.
276
+ *
277
+ * One-of ('next'): at most one of 'backendStageId' could be set.
278
+ */
279
+ backendStageId?: string;
280
+ }
281
+ export interface SetRouteRulesRequestRouteRule {
282
+ /**
283
+ * Rule condition to be matched. Requests matching the condition defined here
284
+ * will be directly forwarded to the backend specified by the
285
+ * `backend_stage_id` field. Requests that do not match will be checked by the
286
+ * next rule's condition.
287
+ *
288
+ * One-of ('match'): at most one of 'ruleHttpMatch' could be set.
289
+ */
290
+ ruleHttpMatch?: RuleHttpMatch;
291
+ /**
292
+ * ID of the backend stage that requests matching the rule should be forwarded
293
+ * to.
294
+ *
295
+ * One-of ('next'): at most one of 'backendStageId' could be set.
296
+ */
297
+ backendStageId?: string;
298
+ }
299
+ export interface RouteRule {
300
+ /**
301
+ * Rule condition to be matched. Requests matching the condition defined here
302
+ * will be directly forwarded to the backend specified by the
303
+ * `backend_stage_id` field. Requests that do not match will be checked by the
304
+ * next rule's condition.
305
+ *
306
+ * One-of ('match'): at most one of 'ruleHttpMatch' could be set.
307
+ */
308
+ ruleHttpMatch?: RuleHttpMatch;
309
+ /**
310
+ * ID of the backend stage that requests matching the rule should be forwarded
311
+ * to.
312
+ *
313
+ * One-of ('next'): at most one of 'backendStageId' could be set.
314
+ */
315
+ backendStageId?: string;
316
+ /**
317
+ * Position of the rule which determines the order of processing within the
318
+ * route stage.
319
+ */
320
+ position: number;
321
+ /** Route stage ID the route rule belongs to. */
322
+ routeStageId: string;
323
+ }
324
+ export interface CheckPEMChainRequestSecretChain {
325
+ secretId: string;
326
+ secretRegion: string;
327
+ }
328
+ export interface PlanDetails {
329
+ /** Subscription plan name. */
330
+ planName: PlanName;
331
+ /** Amount of egress data from cache included in subscription plan. */
332
+ packageGb: number;
333
+ /** Number of pipelines included in subscription plan. */
334
+ pipelineLimit: number;
335
+ /** Number of WAF requests included in subscription plan. */
336
+ wafRequests: number;
337
+ }
338
+ export interface PlanUsageDetails {
339
+ /**
340
+ * Cost to date (this month) for the corresponding Edge Services subscription
341
+ * plan.
342
+ */
343
+ planCost?: Money;
344
+ }
345
+ export interface HeadStageResponseHeadStage {
346
+ /** One-of ('head'): at most one of 'dnsStageId' could be set. */
347
+ dnsStageId?: string;
348
+ }
349
+ export interface ListHeadStagesResponseHeadStage {
350
+ /** One-of ('head'): at most one of 'dnsStageId' could be set. */
351
+ dnsStageId?: string;
352
+ }
353
+ export interface PipelineStages {
354
+ pipeline?: Pipeline;
355
+ dnsStages: DNSStage[];
356
+ tlsStages: TLSStage[];
357
+ cacheStages: CacheStage[];
358
+ backendStages: BackendStage[];
359
+ wafStages: WafStage[];
360
+ routeStages: RouteStage[];
361
+ }
362
+ export interface PurgeRequest {
363
+ /** ID of the purge request. */
364
+ id: string;
365
+ /** Pipeline ID the purge request belongs to. */
366
+ pipelineId: string;
367
+ /** Status of the purge request. */
368
+ status: PurgeRequestStatus;
369
+ /**
370
+ * List of asserts to purge.
371
+ *
372
+ * One-of ('target'): at most one of 'assets', 'all' could be set.
373
+ */
374
+ assets?: string[];
375
+ /**
376
+ * Defines whether to purge all content.
377
+ *
378
+ * One-of ('target'): at most one of 'assets', 'all' could be set.
379
+ */
380
+ all?: boolean;
381
+ /** Date the purge request was created. */
382
+ createdAt?: Date;
383
+ /** Date the purge request was last updated. */
384
+ updatedAt?: Date;
385
+ }
386
+ export interface SetHeadStageRequestAddNewHeadStage {
387
+ newStageId: string;
388
+ }
389
+ export interface SetHeadStageRequestRemoveHeadStage {
390
+ removeStageId: string;
391
+ }
392
+ export interface SetHeadStageRequestSwapHeadStage {
393
+ newStageId: string;
394
+ currentStageId: string;
395
+ }
396
+ export interface TLSSecretsConfig {
397
+ /** Secret information (from Secret Manager). */
398
+ tlsSecrets: TLSSecret[];
399
+ }
400
+ export interface AddRouteRulesRequest {
401
+ /** ID of the route stage to update. */
402
+ routeStageId: string;
403
+ /**
404
+ * List of rules to be checked against every HTTP request. The first matching
405
+ * rule will forward the request to its specified backend stage. If no rules
406
+ * are matched, the request is forwarded to the WAF stage defined by
407
+ * `waf_stage_id`.
408
+ */
409
+ routeRules?: SetRouteRulesRequestRouteRule[];
410
+ /**
411
+ * Add rules after the given position.
412
+ *
413
+ * One-of ('position'): at most one of 'afterPosition', 'beforePosition' could
414
+ * be set.
415
+ */
416
+ afterPosition?: number;
417
+ /**
418
+ * Add rules before the given position.
419
+ *
420
+ * One-of ('position'): at most one of 'afterPosition', 'beforePosition' could
421
+ * be set.
422
+ */
423
+ beforePosition?: number;
424
+ }
425
+ export interface AddRouteRulesResponse {
426
+ /**
427
+ * List of rules to be checked against every HTTP request. The first matching
428
+ * rule will forward the request to its specified backend stage. If no rules
429
+ * are matched, the request is forwarded to the WAF stage defined by
430
+ * `waf_stage_id`.
431
+ */
432
+ routeRules: RouteRule[];
433
+ }
434
+ export interface CheckDomainRequest {
435
+ projectId?: string;
436
+ fqdn: string;
437
+ cname: string;
438
+ }
439
+ export interface CheckDomainResponse {
440
+ isValid: boolean;
441
+ }
442
+ export interface CheckLbOriginRequest {
443
+ lb?: ScalewayLb;
444
+ }
445
+ export interface CheckLbOriginResponse {
446
+ isValid: boolean;
447
+ errorType: LbOriginError;
448
+ }
449
+ export interface CheckPEMChainRequest {
450
+ projectId?: string;
451
+ fqdn: string;
452
+ /** One-of ('chain'): at most one of 'secret', 'raw' could be set. */
453
+ secret?: CheckPEMChainRequestSecretChain;
454
+ /** One-of ('chain'): at most one of 'secret', 'raw' could be set. */
455
+ raw?: string;
456
+ }
457
+ export interface CheckPEMChainResponse {
458
+ isValid: boolean;
459
+ }
460
+ export interface CreateBackendStageRequest {
461
+ /** Pipeline ID the Backend stage belongs to. */
462
+ pipelineId: string;
463
+ /**
464
+ * Scaleway Object Storage origin bucket (S3) linked to the backend stage.
465
+ *
466
+ * One-of ('backendConfig'): at most one of 'scalewayS3', 'scalewayLb' could
467
+ * be set.
468
+ */
469
+ scalewayS3?: ScalewayS3BackendConfig;
470
+ /**
471
+ * Scaleway Load Balancer origin linked to the backend stage.
472
+ *
473
+ * One-of ('backendConfig'): at most one of 'scalewayS3', 'scalewayLb' could
474
+ * be set.
475
+ */
476
+ scalewayLb?: ScalewayLbBackendConfig;
477
+ }
478
+ export interface CreateCacheStageRequest {
479
+ /** Pipeline ID the Cache stage belongs to. */
480
+ pipelineId: string;
481
+ /** Time To Live (TTL) in seconds. Defines how long content is cached. */
482
+ fallbackTtl?: string;
483
+ /**
484
+ * Backend stage ID the cache stage will be linked to.
485
+ *
486
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
487
+ * 'routeStageId' could be set.
488
+ */
489
+ backendStageId?: string;
490
+ /**
491
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
492
+ * 'routeStageId' could be set.
493
+ */
494
+ wafStageId?: string;
495
+ /**
496
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
497
+ * 'routeStageId' could be set.
498
+ */
499
+ routeStageId?: string;
500
+ }
501
+ export interface CreateDNSStageRequest {
502
+ /** Pipeline ID the DNS stage belongs to. */
503
+ pipelineId: string;
504
+ /**
505
+ * Fully Qualified Domain Name (in the format subdomain.example.com) to attach
506
+ * to the stage.
507
+ */
508
+ fqdns?: string[];
509
+ /**
510
+ * TLS stage ID the DNS stage will be linked to.
511
+ *
512
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
513
+ * 'backendStageId' could be set.
514
+ */
515
+ tlsStageId?: string;
516
+ /**
517
+ * Cache stage ID the DNS stage will be linked to.
518
+ *
519
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
520
+ * 'backendStageId' could be set.
521
+ */
522
+ cacheStageId?: string;
523
+ /**
524
+ * Backend stage ID the DNS stage will be linked to.
525
+ *
526
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
527
+ * 'backendStageId' could be set.
528
+ */
529
+ backendStageId?: string;
530
+ }
531
+ export interface CreatePipelineRequest {
532
+ /** Project ID in which the pipeline will be created. */
533
+ projectId?: string;
534
+ /** Name of the pipeline. */
535
+ name: string;
536
+ /** Description of the pipeline. */
537
+ description: string;
538
+ }
539
+ export interface CreatePurgeRequestRequest {
540
+ /** Pipeline ID in which the purge request will be created. */
541
+ pipelineId: string;
542
+ /**
543
+ * List of asserts to purge.
544
+ *
545
+ * One-of ('target'): at most one of 'assets', 'all' could be set.
546
+ */
547
+ assets?: string[];
548
+ /**
549
+ * Defines whether to purge all content.
550
+ *
551
+ * One-of ('target'): at most one of 'assets', 'all' could be set.
552
+ */
553
+ all?: boolean;
554
+ }
555
+ export interface CreateRouteStageRequest {
556
+ /** Pipeline ID the route stage belongs to. */
557
+ pipelineId: string;
558
+ /**
559
+ * ID of the WAF stage HTTP requests should be forwarded to when no rules are
560
+ * matched.
561
+ *
562
+ * One-of ('next'): at most one of 'wafStageId' could be set.
563
+ */
564
+ wafStageId?: string;
565
+ }
566
+ export interface CreateTLSStageRequest {
567
+ /** Pipeline ID the TLS stage belongs to. */
568
+ pipelineId: string;
569
+ /** Secret (from Scaleway Secret Manager) containing your custom certificate. */
570
+ secrets?: TLSSecret[];
571
+ /**
572
+ * True when Scaleway generates and manages a Let's Encrypt certificate for
573
+ * the TLS stage/custom endpoint.
574
+ */
575
+ managedCertificate?: boolean;
576
+ /**
577
+ * Cache stage ID the TLS stage will be linked to.
578
+ *
579
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
580
+ * 'routeStageId', 'wafStageId' could be set.
581
+ */
582
+ cacheStageId?: string;
583
+ /**
584
+ * Backend stage ID the TLS stage will be linked to.
585
+ *
586
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
587
+ * 'routeStageId', 'wafStageId' could be set.
588
+ */
589
+ backendStageId?: string;
590
+ /**
591
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
592
+ * 'routeStageId', 'wafStageId' could be set.
593
+ */
594
+ routeStageId?: string;
595
+ /**
596
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
597
+ * 'routeStageId', 'wafStageId' could be set.
598
+ */
599
+ wafStageId?: string;
600
+ }
601
+ export interface CreateWafStageRequest {
602
+ /** Pipeline ID the WAF stage belongs to. */
603
+ pipelineId: string;
604
+ /** Mode defining WAF behavior (`disable`/`log_only`/`enable`). */
605
+ mode?: WafStageMode;
606
+ /**
607
+ * Sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as
608
+ * malicious. With a high level, requests are more likely to be classed as
609
+ * malicious, and false positives are expected. With a lower level, requests
610
+ * are more likely to be classed as benign.
611
+ */
612
+ paranoiaLevel: number;
613
+ /**
614
+ * ID of the backend stage to forward requests to after the WAF stage.
615
+ *
616
+ * One-of ('next'): at most one of 'backendStageId' could be set.
617
+ */
618
+ backendStageId?: string;
619
+ }
620
+ export interface DeleteBackendStageRequest {
621
+ /** ID of the backend stage to delete. */
622
+ backendStageId: string;
623
+ }
624
+ export interface DeleteCacheStageRequest {
625
+ /** ID of the cache stage to delete. */
626
+ cacheStageId: string;
627
+ }
628
+ export interface DeleteCurrentPlanRequest {
629
+ projectId?: string;
630
+ }
631
+ export interface DeleteDNSStageRequest {
632
+ /** ID of the DNS stage to delete. */
633
+ dnsStageId: string;
634
+ }
635
+ export interface DeletePipelineRequest {
636
+ /** ID of the pipeline to delete. */
637
+ pipelineId: string;
638
+ }
639
+ export interface DeleteRouteStageRequest {
640
+ /** ID of the route stage to delete. */
641
+ routeStageId: string;
642
+ }
643
+ export interface DeleteTLSStageRequest {
644
+ /** ID of the TLS stage to delete. */
645
+ tlsStageId: string;
646
+ }
647
+ export interface DeleteWafStageRequest {
648
+ /** ID of the WAF stage to delete. */
649
+ wafStageId: string;
650
+ }
651
+ export interface GetBackendStageRequest {
652
+ /** ID of the requested backend stage. */
653
+ backendStageId: string;
654
+ }
655
+ export interface GetBillingRequest {
656
+ projectId?: string;
657
+ }
658
+ export interface GetBillingResponse {
659
+ /**
660
+ * Information on the currently-selected, active Edge Services subscription
661
+ * plan.
662
+ */
663
+ currentPlan?: PlanDetails;
664
+ /**
665
+ * Cost to date (this month) for Edge Service subscription plans. This
666
+ * comprises the pro-rata cost of the current subscription plan, and any
667
+ * previous subscription plans that were active earlier in the month.
668
+ */
669
+ planCost?: Money;
670
+ /** Total number of pipelines currently configured. */
671
+ pipelineNumber: number;
672
+ /**
673
+ * Cost to date (this month) of pipelines not included in the subscription
674
+ * plans.
675
+ */
676
+ extraPipelinesCost?: Money;
677
+ /**
678
+ * Total amount of data egressed from the cache in gigabytes from the
679
+ * beginning of the month, for the active subscription plan.
680
+ */
681
+ currentPlanCacheUsage: number;
682
+ /**
683
+ * Total amount of extra data egressed from cache in gigabytes from the
684
+ * beginning of the month, not included in the subscription plans.
685
+ */
686
+ extraCacheUsage: number;
687
+ /**
688
+ * Cost to date (this month) of the data egressed from the cache that is not
689
+ * included in the subscription plans.
690
+ */
691
+ extraCacheCost?: Money;
692
+ /**
693
+ * Total number of requests processed by the WAF since the beginning of the
694
+ * current month, for the active subscription plan.
695
+ */
696
+ currentPlanWafUsage: number;
697
+ /**
698
+ * Total number of extra requests processed by the WAF from the beginning of
699
+ * the month, not included in the subscription plans.
700
+ */
701
+ extraWafUsage: number;
702
+ /**
703
+ * Cost to date (this month) of the extra requests processed by the WAF that
704
+ * were not included in the subscription plans.
705
+ */
706
+ extraWafCost?: Money;
707
+ /**
708
+ * Cost of activating WAF add-on (where subscription plan does not include
709
+ * WAF).
710
+ */
711
+ wafAddOn?: Money;
712
+ /**
713
+ * Detailed costs and usage for all Edge Services subscription plans that were
714
+ * activated during the month.
715
+ */
716
+ plansUsageDetails: Record<string, PlanUsageDetails>;
717
+ /**
718
+ * Total cost to date (this month) of all Edge Services resources including
719
+ * active subscription plan, previously active plans, extra pipelines and
720
+ * extra egress cache data.
721
+ */
722
+ totalCost?: Money;
723
+ }
724
+ export interface GetCacheStageRequest {
725
+ /** ID of the requested cache stage. */
726
+ cacheStageId: string;
727
+ }
728
+ export interface GetCurrentPlanRequest {
729
+ projectId?: string;
730
+ }
731
+ export interface GetDNSStageRequest {
732
+ /** ID of the requested DNS stage. */
733
+ dnsStageId: string;
734
+ }
735
+ export interface GetPipelineRequest {
736
+ /** ID of the requested pipeline. */
737
+ pipelineId: string;
738
+ }
739
+ export interface GetPurgeRequestRequest {
740
+ /** ID of the requested purge request. */
741
+ purgeRequestId: string;
742
+ }
743
+ export interface GetRouteStageRequest {
744
+ /** ID of the requested route stage. */
745
+ routeStageId: string;
746
+ }
747
+ export interface GetTLSStageRequest {
748
+ /** ID of the requested TLS stage. */
749
+ tlsStageId: string;
750
+ }
751
+ export interface GetWafStageRequest {
752
+ /** ID of the requested WAF stage. */
753
+ wafStageId: string;
754
+ }
755
+ export interface HeadStageResponse {
756
+ /** Modified or created head stage. */
757
+ headStage?: HeadStageResponseHeadStage;
758
+ }
759
+ export interface ListBackendStagesRequest {
760
+ /**
761
+ * Pipeline ID to filter for. Only backend stages from this pipeline will be
762
+ * returned.
763
+ */
764
+ pipelineId: string;
765
+ /** Sort order of backend stages in the response. */
766
+ orderBy?: ListBackendStagesRequestOrderBy;
767
+ /** Page number to return, from the paginated results. */
768
+ page?: number;
769
+ /** Number of backend stages to return per page. */
770
+ pageSize?: number;
771
+ /**
772
+ * Bucket name to filter for. Only backend stages from this Bucket will be
773
+ * returned.
774
+ */
775
+ bucketName?: string;
776
+ /**
777
+ * Bucket region to filter for. Only backend stages with buckets in this
778
+ * region will be returned.
779
+ */
780
+ bucketRegion?: string;
781
+ /**
782
+ * Load Balancer ID to filter for. Only backend stages with this Load Balancer
783
+ * will be returned.
784
+ */
785
+ lbId?: string;
786
+ }
787
+ export interface ListBackendStagesResponse {
788
+ /** Paginated list of backend stages. */
789
+ stages: BackendStage[];
790
+ /** Count of all backend stages matching the requested criteria. */
791
+ totalCount: number;
792
+ }
793
+ export interface ListCacheStagesRequest {
794
+ /**
795
+ * Pipeline ID to filter for. Only cache stages from this pipeline will be
796
+ * returned.
797
+ */
798
+ pipelineId: string;
799
+ /** Sort order of cache stages in the response. */
800
+ orderBy?: ListCacheStagesRequestOrderBy;
801
+ /** Page number to return, from the paginated results. */
802
+ page?: number;
803
+ /** Number of cache stages to return per page. */
804
+ pageSize?: number;
805
+ }
806
+ export interface ListCacheStagesResponse {
807
+ /** Paginated list of cache stages. */
808
+ stages: CacheStage[];
809
+ /** Count of all cache stages matching the requested criteria. */
810
+ totalCount: number;
811
+ }
812
+ export interface ListDNSStagesRequest {
813
+ /**
814
+ * Pipeline ID to filter for. Only DNS stages from this pipeline will be
815
+ * returned.
816
+ */
817
+ pipelineId: string;
818
+ /** Sort order of DNS stages in the response. */
819
+ orderBy?: ListDNSStagesRequestOrderBy;
820
+ /** Page number to return, from the paginated results. */
821
+ page?: number;
822
+ /** Number of DNS stages to return per page. */
823
+ pageSize?: number;
824
+ /**
825
+ * Fully Qualified Domain Name to filter for (in the format
826
+ * subdomain.example.com). Only DNS stages with this FQDN will be returned.
827
+ */
828
+ fqdn?: string;
829
+ }
830
+ export interface ListDNSStagesResponse {
831
+ /** Paginated list of DNS stages. */
832
+ stages: DNSStage[];
833
+ /** Count of all DNS stages matching the requested criteria. */
834
+ totalCount: number;
835
+ }
836
+ export interface ListHeadStagesRequest {
837
+ /** ID of the pipeline to update. */
838
+ pipelineId: string;
839
+ /** Page number to return, from the paginated results. */
840
+ page?: number;
841
+ /** Number of head stages to return per page. */
842
+ pageSize?: number;
843
+ }
844
+ export interface ListHeadStagesResponse {
845
+ /** Number of head stages to return per page. */
846
+ headStages: ListHeadStagesResponseHeadStage[];
847
+ /** Count of all head stages matching the requested pipeline_id. */
848
+ totalCount: number;
849
+ }
850
+ export interface ListPipelinesRequest {
851
+ /** Sort order of pipelines in the response. */
852
+ orderBy?: ListPipelinesRequestOrderBy;
853
+ /** Page number to return, from the paginated results. */
854
+ page?: number;
855
+ /** Number of pipelines to return per page. */
856
+ pageSize?: number;
857
+ /**
858
+ * Pipeline name to filter for. Only pipelines with this string within their
859
+ * name will be returned.
860
+ */
861
+ name?: string;
862
+ /**
863
+ * Organization ID to filter for. Only pipelines from this Organization will
864
+ * be returned.
865
+ */
866
+ organizationId?: string;
867
+ /**
868
+ * Project ID to filter for. Only pipelines from this Project will be
869
+ * returned.
870
+ */
871
+ projectId?: string;
872
+ /**
873
+ * Filter on backend stage. Only pipelines with a Load Balancer origin will be
874
+ * returned.
875
+ */
876
+ hasBackendStageLb?: boolean;
877
+ }
878
+ export interface ListPipelinesResponse {
879
+ /** Paginated list of pipelines. */
880
+ pipelines: Pipeline[];
881
+ /** Count of all pipelines matching the requested criteria. */
882
+ totalCount: number;
883
+ }
884
+ export interface ListPipelinesWithStagesRequest {
885
+ orderBy?: ListPipelinesWithStagesRequestOrderBy;
886
+ page?: number;
887
+ pageSize?: number;
888
+ name?: string;
889
+ organizationId?: string;
890
+ projectId?: string;
891
+ }
892
+ export interface ListPipelinesWithStagesResponse {
893
+ pipelines: PipelineStages[];
894
+ totalCount: number;
895
+ }
896
+ export interface ListPlansResponse {
897
+ totalCount: number;
898
+ plans: PlanDetails[];
899
+ }
900
+ export interface ListPurgeRequestsRequest {
901
+ /** Sort order of purge requests in the response. */
902
+ orderBy?: ListPurgeRequestsRequestOrderBy;
903
+ /** Page number to return, from the paginated results. */
904
+ page?: number;
905
+ /** Number of purge requests to return per page. */
906
+ pageSize?: number;
907
+ /**
908
+ * Organization ID to filter for. Only purge requests from this Project will
909
+ * be returned.
910
+ */
911
+ organizationId?: string;
912
+ /**
913
+ * Project ID to filter for. Only purge requests from this Project will be
914
+ * returned.
915
+ */
916
+ projectId?: string;
917
+ /**
918
+ * Pipeline ID to filter for. Only purge requests from this pipeline will be
919
+ * returned.
920
+ */
921
+ pipelineId?: string;
922
+ }
923
+ export interface ListPurgeRequestsResponse {
924
+ /** Paginated list of purge requests. */
925
+ purgeRequests: PurgeRequest[];
926
+ /** Count of all purge requests matching the requested criteria. */
927
+ totalCount: number;
928
+ }
929
+ export interface ListRouteRulesRequest {
930
+ /**
931
+ * Route stage ID to filter for. Only route rules from this route stage will
932
+ * be returned.
933
+ */
934
+ routeStageId: string;
935
+ }
936
+ export interface ListRouteRulesResponse {
937
+ /**
938
+ * List of rules to be checked against every HTTP request. The first matching
939
+ * rule will forward the request to its specified backend stage. If no rules
940
+ * are matched, the request is forwarded to the WAF stage defined by
941
+ * `waf_stage_id`.
942
+ */
943
+ routeRules: RouteRule[];
944
+ }
945
+ export interface ListRouteStagesRequest {
946
+ /**
947
+ * Pipeline ID to filter for. Only route stages from this pipeline will be
948
+ * returned.
949
+ */
950
+ pipelineId: string;
951
+ /** Sort order of route stages in the response. */
952
+ orderBy?: ListRouteStagesRequestOrderBy;
953
+ /** Page number to return, from the paginated results. */
954
+ page?: number;
955
+ /** Number of route stages to return per page. */
956
+ pageSize?: number;
957
+ }
958
+ export interface ListRouteStagesResponse {
959
+ /** Paginated list of summarized route stages. */
960
+ stages: RouteStage[];
961
+ /** Count of all route stages matching the requested criteria. */
962
+ totalCount: number;
963
+ }
964
+ export interface ListTLSStagesRequest {
965
+ /**
966
+ * Pipeline ID to filter for. Only TLS stages from this pipeline will be
967
+ * returned.
968
+ */
969
+ pipelineId: string;
970
+ /** Sort order of TLS stages in the response. */
971
+ orderBy?: ListTLSStagesRequestOrderBy;
972
+ /** Page number to return, from the paginated results. */
973
+ page?: number;
974
+ /** Number of TLS stages to return per page. */
975
+ pageSize?: number;
976
+ /**
977
+ * Secret ID to filter for. Only TLS stages with this Secret ID will be
978
+ * returned.
979
+ */
980
+ secretId?: string;
981
+ /**
982
+ * Secret region to filter for. Only TLS stages with a Secret in this region
983
+ * will be returned.
984
+ */
985
+ secretRegion?: string;
986
+ }
987
+ export interface ListTLSStagesResponse {
988
+ /** Paginated list of TLS stages. */
989
+ stages: TLSStage[];
990
+ /** Count of all TLS stages matching the requested criteria. */
991
+ totalCount: number;
992
+ }
993
+ export interface ListWafStagesRequest {
994
+ /**
995
+ * Pipeline ID to filter for. Only WAF stages from this pipeline will be
996
+ * returned.
997
+ */
998
+ pipelineId: string;
999
+ /** Sort order of WAF stages in the response. */
1000
+ orderBy?: ListWafStagesRequestOrderBy;
1001
+ /** Page number to return, from the paginated results. */
1002
+ page?: number;
1003
+ /** Number of WAF stages to return per page. */
1004
+ pageSize?: number;
1005
+ }
1006
+ export interface ListWafStagesResponse {
1007
+ /** Paginated list of WAF stages. */
1008
+ stages: WafStage[];
1009
+ /** Count of all WAF stages matching the requested criteria. */
1010
+ totalCount: number;
1011
+ }
1012
+ export interface Plan {
1013
+ planName: PlanName;
1014
+ }
1015
+ export interface SearchBackendStagesRequest {
1016
+ orderBy?: SearchBackendStagesRequestOrderBy;
1017
+ page?: number;
1018
+ pageSize?: number;
1019
+ projectId?: string;
1020
+ bucketName?: string;
1021
+ bucketRegion?: string;
1022
+ lbId?: string;
1023
+ }
1024
+ export interface SelectPlanRequest {
1025
+ projectId?: string;
1026
+ planName?: PlanName;
1027
+ }
1028
+ export interface SetHeadStageRequest {
1029
+ /** ID of the pipeline to update. */
1030
+ pipelineId: string;
1031
+ /**
1032
+ * Add a new head stage.
1033
+ *
1034
+ * One-of ('action'): at most one of 'addNewHeadStage', 'removeHeadStage',
1035
+ * 'swapHeadStage' could be set.
1036
+ */
1037
+ addNewHeadStage?: SetHeadStageRequestAddNewHeadStage;
1038
+ /**
1039
+ * Remove a head stage.
1040
+ *
1041
+ * One-of ('action'): at most one of 'addNewHeadStage', 'removeHeadStage',
1042
+ * 'swapHeadStage' could be set.
1043
+ */
1044
+ removeHeadStage?: SetHeadStageRequestRemoveHeadStage;
1045
+ /**
1046
+ * Replace a head stage with a new one.
1047
+ *
1048
+ * One-of ('action'): at most one of 'addNewHeadStage', 'removeHeadStage',
1049
+ * 'swapHeadStage' could be set.
1050
+ */
1051
+ swapHeadStage?: SetHeadStageRequestSwapHeadStage;
1052
+ }
1053
+ export interface SetRouteRulesRequest {
1054
+ /** ID of the route stage to update. */
1055
+ routeStageId: string;
1056
+ /**
1057
+ * List of rules to be checked against every HTTP request. The first matching
1058
+ * rule will forward the request to its specified backend stage. If no rules
1059
+ * are matched, the request is forwarded to the WAF stage defined by
1060
+ * `waf_stage_id`.
1061
+ */
1062
+ routeRules?: SetRouteRulesRequestRouteRule[];
1063
+ }
1064
+ export interface SetRouteRulesResponse {
1065
+ /**
1066
+ * List of rules to be checked against every HTTP request. The first matching
1067
+ * rule will forward the request to its specified backend stage. If no rules
1068
+ * are matched, the request is forwarded to the WAF stage defined by
1069
+ * `waf_stage_id`.
1070
+ */
1071
+ routeRules: RouteRule[];
1072
+ }
1073
+ export interface UpdateBackendStageRequest {
1074
+ /** ID of the backend stage to update. */
1075
+ backendStageId: string;
1076
+ /**
1077
+ * Scaleway Object Storage origin bucket (S3) linked to the backend stage.
1078
+ *
1079
+ * One-of ('backendConfig'): at most one of 'scalewayS3', 'scalewayLb' could
1080
+ * be set.
1081
+ */
1082
+ scalewayS3?: ScalewayS3BackendConfig;
1083
+ /**
1084
+ * Scaleway Load Balancer origin linked to the backend stage.
1085
+ *
1086
+ * One-of ('backendConfig'): at most one of 'scalewayS3', 'scalewayLb' could
1087
+ * be set.
1088
+ */
1089
+ scalewayLb?: ScalewayLbBackendConfig;
1090
+ /** Pipeline ID the Backend stage belongs to. */
1091
+ pipelineId: string;
1092
+ }
1093
+ export interface UpdateCacheStageRequest {
1094
+ /** ID of the cache stage to update. */
1095
+ cacheStageId: string;
1096
+ /** Time To Live (TTL) in seconds. Defines how long content is cached. */
1097
+ fallbackTtl?: string;
1098
+ /**
1099
+ * Backend stage ID the cache stage will be linked to.
1100
+ *
1101
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
1102
+ * 'routeStageId' could be set.
1103
+ */
1104
+ backendStageId?: string;
1105
+ /**
1106
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
1107
+ * 'routeStageId' could be set.
1108
+ */
1109
+ wafStageId?: string;
1110
+ /**
1111
+ * One-of ('next'): at most one of 'backendStageId', 'wafStageId',
1112
+ * 'routeStageId' could be set.
1113
+ */
1114
+ routeStageId?: string;
1115
+ }
1116
+ export interface UpdateDNSStageRequest {
1117
+ /** ID of the DNS stage to update. */
1118
+ dnsStageId: string;
1119
+ /**
1120
+ * Fully Qualified Domain Name (in the format subdomain.example.com) attached
1121
+ * to the stage.
1122
+ */
1123
+ fqdns?: string[];
1124
+ /**
1125
+ * TLS stage ID the DNS stage will be linked to.
1126
+ *
1127
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
1128
+ * 'backendStageId' could be set.
1129
+ */
1130
+ tlsStageId?: string;
1131
+ /**
1132
+ * Cache stage ID the DNS stage will be linked to.
1133
+ *
1134
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
1135
+ * 'backendStageId' could be set.
1136
+ */
1137
+ cacheStageId?: string;
1138
+ /**
1139
+ * Backend stage ID the DNS stage will be linked to.
1140
+ *
1141
+ * One-of ('next'): at most one of 'tlsStageId', 'cacheStageId',
1142
+ * 'backendStageId' could be set.
1143
+ */
1144
+ backendStageId?: string;
1145
+ }
1146
+ export interface UpdatePipelineRequest {
1147
+ /** ID of the pipeline to update. */
1148
+ pipelineId: string;
1149
+ /** Name of the pipeline. */
1150
+ name?: string;
1151
+ /** Description of the pipeline. */
1152
+ description?: string;
1153
+ }
1154
+ export interface UpdateRouteStageRequest {
1155
+ /** ID of the route stage to update. */
1156
+ routeStageId: string;
1157
+ /**
1158
+ * ID of the WAF stage HTTP requests should be forwarded to when no rules are
1159
+ * matched.
1160
+ *
1161
+ * One-of ('next'): at most one of 'wafStageId' could be set.
1162
+ */
1163
+ wafStageId?: string;
1164
+ }
1165
+ export interface UpdateTLSStageRequest {
1166
+ /** ID of the TLS stage to update. */
1167
+ tlsStageId: string;
1168
+ /** Secret (from Scaleway Secret-Manager) containing your custom certificate. */
1169
+ tlsSecretsConfig?: TLSSecretsConfig;
1170
+ /**
1171
+ * True when Scaleway generates and manages a Let's Encrypt certificate for
1172
+ * the TLS stage/custom endpoint.
1173
+ */
1174
+ managedCertificate?: boolean;
1175
+ /**
1176
+ * Cache stage ID the TLS stage will be linked to.
1177
+ *
1178
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
1179
+ * 'routeStageId', 'wafStageId' could be set.
1180
+ */
1181
+ cacheStageId?: string;
1182
+ /**
1183
+ * Backend stage ID the TLS stage will be linked to.
1184
+ *
1185
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
1186
+ * 'routeStageId', 'wafStageId' could be set.
1187
+ */
1188
+ backendStageId?: string;
1189
+ /**
1190
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
1191
+ * 'routeStageId', 'wafStageId' could be set.
1192
+ */
1193
+ routeStageId?: string;
1194
+ /**
1195
+ * One-of ('next'): at most one of 'cacheStageId', 'backendStageId',
1196
+ * 'routeStageId', 'wafStageId' could be set.
1197
+ */
1198
+ wafStageId?: string;
1199
+ }
1200
+ export interface UpdateWafStageRequest {
1201
+ /** ID of the WAF stage to update. */
1202
+ wafStageId: string;
1203
+ /** Mode defining WAF behavior (`disable`/`log_only`/`enable`). */
1204
+ mode?: WafStageMode;
1205
+ /**
1206
+ * Sensitivity level (`1`,`2`,`3`,`4`) to use when classifying requests as
1207
+ * malicious. With a high level, requests are more likely to be classed as
1208
+ * malicious, and false positives are expected. With a lower level, requests
1209
+ * are more likely to be classed as benign.
1210
+ */
1211
+ paranoiaLevel?: number;
1212
+ /**
1213
+ * ID of the backend stage to forward requests to after the WAF stage.
1214
+ *
1215
+ * One-of ('next'): at most one of 'backendStageId' could be set.
1216
+ */
1217
+ backendStageId?: string;
1218
+ }