@scaleway/sdk-vpc 2.11.0 → 2.12.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.
@@ -0,0 +1,1156 @@
1
+ import type { Region as ScwRegion } from '@scaleway/sdk-client';
2
+ export type AclRuleProtocol = 'ANY' | 'TCP' | 'UDP' | 'ICMP';
3
+ export type Action = 'unknown_action' | 'accept' | 'drop';
4
+ export type ListIngressRulesRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'source_asc' | 'source_desc' | 'prefix_len_asc' | 'prefix_len_desc';
5
+ export type ListPrivateNetworksRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
6
+ export type ListSubnetOverlapsRequestOrderBy = 'subnet_asc' | 'subnet_desc' | 'target_subnet_asc' | 'target_subnet_desc';
7
+ export type ListSubnetsRequestOrderBy = 'created_at_asc' | 'created_at_desc';
8
+ export type ListVPCConnectorsRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
9
+ export type ListVPCsRequestOrderBy = 'created_at_asc' | 'created_at_desc' | 'name_asc' | 'name_desc';
10
+ export type RouteType = 'unknown_route_type' | 'subnet' | 'default' | 'custom' | 'interlink' | 's2s_vpn';
11
+ export type VPCConnectorStatus = 'unknown_vpc_connector_status' | 'orphan' | 'peered' | 'conflict';
12
+ export interface Subnet {
13
+ /**
14
+ * ID of the subnet.
15
+ */
16
+ id: string;
17
+ /**
18
+ * Subnet creation date.
19
+ */
20
+ createdAt?: Date;
21
+ /**
22
+ * Subnet last modification date.
23
+ */
24
+ updatedAt?: Date;
25
+ /**
26
+ * Subnet CIDR.
27
+ */
28
+ subnet: string;
29
+ /**
30
+ * Scaleway Project the subnet belongs to.
31
+ */
32
+ projectId: string;
33
+ /**
34
+ * Private Network the subnet belongs to.
35
+ */
36
+ privateNetworkId: string;
37
+ /**
38
+ * VPC the subnet belongs to.
39
+ */
40
+ vpcId: string;
41
+ /**
42
+ * Region in which the Subnet can be used.
43
+ */
44
+ region: ScwRegion;
45
+ }
46
+ export interface PrivateNetwork {
47
+ /**
48
+ * Private Network ID.
49
+ */
50
+ id: string;
51
+ /**
52
+ * Private Network name.
53
+ */
54
+ name: string;
55
+ /**
56
+ * Scaleway Organization the Private Network belongs to.
57
+ */
58
+ organizationId: string;
59
+ /**
60
+ * Scaleway Project the Private Network belongs to.
61
+ */
62
+ projectId: string;
63
+ /**
64
+ * Region in which the Private Network is available.
65
+ */
66
+ region: ScwRegion;
67
+ /**
68
+ * Tags of the Private Network.
69
+ */
70
+ tags: string[];
71
+ /**
72
+ * Date the Private Network was created.
73
+ */
74
+ createdAt?: Date;
75
+ /**
76
+ * Date the Private Network was last modified.
77
+ */
78
+ updatedAt?: Date;
79
+ /**
80
+ * Private Network subnets.
81
+ */
82
+ subnets: Subnet[];
83
+ /**
84
+ * VPC the Private Network belongs to.
85
+ */
86
+ vpcId: string;
87
+ /**
88
+ * Defines whether managed DHCP is enabled for this Private Network.
89
+ */
90
+ dhcpEnabled: boolean;
91
+ /**
92
+ * Defines whether default v4 and v6 routes are propagated for this Private Network.
93
+ */
94
+ defaultRoutePropagationEnabled: boolean;
95
+ /**
96
+ * Defines whether this Private Network is enabled for S3 integration.
97
+ */
98
+ hasS3Integration: boolean;
99
+ }
100
+ export interface Route {
101
+ /**
102
+ * Route ID.
103
+ */
104
+ id: string;
105
+ /**
106
+ * Route description.
107
+ */
108
+ description: string;
109
+ /**
110
+ * Tags of the Route.
111
+ */
112
+ tags: string[];
113
+ /**
114
+ * VPC the Route belongs to.
115
+ */
116
+ vpcId: string;
117
+ /**
118
+ * Destination of the Route.
119
+ */
120
+ destination: string;
121
+ /**
122
+ * ID of the nexthop resource.
123
+ */
124
+ nexthopResourceId?: string;
125
+ /**
126
+ * ID of the nexthop private network.
127
+ */
128
+ nexthopPrivateNetworkId?: string;
129
+ /**
130
+ * ID of the nexthop VPC connector.
131
+ */
132
+ nexthopVpcConnectorId?: string;
133
+ /**
134
+ * Date the Route was created.
135
+ */
136
+ createdAt?: Date;
137
+ /**
138
+ * Date the Route was last modified.
139
+ */
140
+ updatedAt?: Date;
141
+ /**
142
+ * Defines whether the route can be modified or deleted by the user.
143
+ */
144
+ isReadOnly: boolean;
145
+ /**
146
+ * Type of the Route.
147
+ */
148
+ type?: RouteType;
149
+ /**
150
+ * Region of the Route.
151
+ */
152
+ region: ScwRegion;
153
+ }
154
+ export interface VPCConnectorPeerInfo {
155
+ organizationId: string;
156
+ projectId: string;
157
+ vpcName: string;
158
+ }
159
+ export interface AclRule {
160
+ /**
161
+ * Protocol to which this rule applies.
162
+ */
163
+ protocol: AclRuleProtocol;
164
+ /**
165
+ * Source IP range to which this rule applies (CIDR notation with subnet mask).
166
+ */
167
+ source: string;
168
+ /**
169
+ * Starting port of the source port range to which this rule applies (inclusive).
170
+ */
171
+ srcPortLow: number;
172
+ /**
173
+ * Ending port of the source port range to which this rule applies (inclusive).
174
+ */
175
+ srcPortHigh: number;
176
+ /**
177
+ * Destination IP range to which this rule applies (CIDR notation with subnet mask).
178
+ */
179
+ destination: string;
180
+ /**
181
+ * Starting port of the destination port range to which this rule applies (inclusive).
182
+ */
183
+ dstPortLow: number;
184
+ /**
185
+ * Ending port of the destination port range to which this rule applies (inclusive).
186
+ */
187
+ dstPortHigh: number;
188
+ /**
189
+ * Policy to apply to the packet.
190
+ */
191
+ action: Action;
192
+ /**
193
+ * Rule description.
194
+ */
195
+ description?: string;
196
+ }
197
+ export interface IngressRule {
198
+ /**
199
+ * ID of the ingress rule.
200
+ */
201
+ id: string;
202
+ /**
203
+ * ID of the VPC this rule belongs to.
204
+ */
205
+ vpcId: string;
206
+ /**
207
+ * Date the ingress rule was created.
208
+ */
209
+ createdAt?: Date;
210
+ /**
211
+ * Date the ingress rule was last modified.
212
+ */
213
+ updatedAt?: Date;
214
+ /**
215
+ * Whether this rule applies to IPv4 or IPv6 traffic.
216
+ */
217
+ isIpv6: boolean;
218
+ /**
219
+ * Source network to apply this rule on.
220
+ */
221
+ source: string;
222
+ /**
223
+ * IP of the local resource to redirect ingress traffic to.
224
+ */
225
+ nexthopResourceIp: string;
226
+ /**
227
+ * ID of the Private Network the destination resource is in.
228
+ */
229
+ nexthopPrivateNetworkId: string;
230
+ /**
231
+ * Description of this ingress rule.
232
+ */
233
+ description?: string;
234
+ /**
235
+ * Tags of this ingress rule.
236
+ */
237
+ tags: string[];
238
+ /**
239
+ * Scaleway Organization the ingress rule belongs to.
240
+ */
241
+ organizationId: string;
242
+ /**
243
+ * Scaleway Project the ingress rule belongs to.
244
+ */
245
+ projectId: string;
246
+ /**
247
+ * Region of the ingress rule.
248
+ */
249
+ region: ScwRegion;
250
+ }
251
+ export interface ListSubnetOverlapsResponseSubnetOverlap {
252
+ subnetId: string;
253
+ subnet: string;
254
+ targetSubnetId: string;
255
+ targetSubnet: string;
256
+ }
257
+ export interface VPCConnector {
258
+ /**
259
+ * VPC connector ID.
260
+ */
261
+ id: string;
262
+ /**
263
+ * VPC connector name.
264
+ */
265
+ name: string;
266
+ /**
267
+ * Scaleway Organization the VPC connector belongs to.
268
+ */
269
+ organizationId: string;
270
+ /**
271
+ * Scaleway Project the VPC connector belongs to.
272
+ */
273
+ projectId: string;
274
+ /**
275
+ * VPC the VPC connector belongs to (origin VPC).
276
+ */
277
+ vpcId: string;
278
+ /**
279
+ * VPC with which the VPC connector is peered (target VPC).
280
+ */
281
+ targetVpcId: string;
282
+ /**
283
+ * Status of the VPC connector.
284
+ */
285
+ status: VPCConnectorStatus;
286
+ /**
287
+ * Peer info of target VPC. Available when status is Peered.
288
+ */
289
+ peerInfo?: VPCConnectorPeerInfo;
290
+ /**
291
+ * Region of the VPC connector.
292
+ */
293
+ region: ScwRegion;
294
+ /**
295
+ * Tags for the VPC connector.
296
+ */
297
+ tags: string[];
298
+ /**
299
+ * Date the VPC connector was created.
300
+ */
301
+ createdAt?: Date;
302
+ /**
303
+ * Date the VPC connector was last modified.
304
+ */
305
+ updatedAt?: Date;
306
+ }
307
+ export interface VPC {
308
+ /**
309
+ * VPC ID.
310
+ */
311
+ id: string;
312
+ /**
313
+ * VPC name.
314
+ */
315
+ name: string;
316
+ /**
317
+ * Scaleway Organization the VPC belongs to.
318
+ */
319
+ organizationId: string;
320
+ /**
321
+ * Scaleway Project the VPC belongs to.
322
+ */
323
+ projectId: string;
324
+ /**
325
+ * Region of the VPC.
326
+ */
327
+ region: ScwRegion;
328
+ /**
329
+ * Tags for the VPC.
330
+ */
331
+ tags: string[];
332
+ /**
333
+ * Defines whether the VPC is the default one for its Project.
334
+ */
335
+ isDefault: boolean;
336
+ /**
337
+ * Date the VPC was created.
338
+ */
339
+ createdAt?: Date;
340
+ /**
341
+ * Date the VPC was last modified.
342
+ */
343
+ updatedAt?: Date;
344
+ /**
345
+ * Number of Private Networks within this VPC.
346
+ */
347
+ privateNetworkCount: number;
348
+ /**
349
+ * Defines whether the VPC routes traffic between its Private Networks.
350
+ */
351
+ routingEnabled: boolean;
352
+ /**
353
+ * Defines whether the VPC advertises custom routes between its Private Networks.
354
+ */
355
+ customRoutesPropagationEnabled: boolean;
356
+ /**
357
+ * Defines whether the VPC allows packets from peered VPCs to transit through.
358
+ */
359
+ transitivityEnabled: boolean;
360
+ /**
361
+ * Defines whether the S3 integration is enabled for the VPC.
362
+ */
363
+ s3IntegrationEnabled: boolean;
364
+ }
365
+ export type AddPrivateNetworkS3EndpointRequest = {
366
+ /**
367
+ * Region to target. If none is passed will use default region from the config.
368
+ */
369
+ region?: ScwRegion;
370
+ /**
371
+ * ID of the VPC containing the S3 Endpoint.
372
+ */
373
+ vpcId: string;
374
+ /**
375
+ * ID of the Private Network to add to the S3 Endpoint.
376
+ */
377
+ privateNetworkId: string;
378
+ };
379
+ export interface AddPrivateNetworkS3EndpointResponse {
380
+ /**
381
+ * ID of the VPC containing the S3 Endpoint.
382
+ */
383
+ vpcId: string;
384
+ /**
385
+ * IDs of the Private Networks associated with the S3 Endpoint.
386
+ */
387
+ privateNetworkIds: string[];
388
+ }
389
+ export type CreateIngressRuleRequest = {
390
+ /**
391
+ * Region to target. If none is passed will use default region from the config.
392
+ */
393
+ region?: ScwRegion;
394
+ /**
395
+ * ID of the VPC this rule will belong to.
396
+ */
397
+ vpcId: string;
398
+ /**
399
+ * Source network to match ingress traffic on. Can be IPv6 or IPv4.
400
+ */
401
+ source: string;
402
+ /**
403
+ * IP of the local resource to redirect ingress traffic to. IP version must be consistent with the source network.
404
+ */
405
+ nexthopResourceIp: string;
406
+ /**
407
+ * ID of the Private Network the destination resource is in.
408
+ */
409
+ nexthopPrivateNetworkId: string;
410
+ /**
411
+ * Description for this ingress rule.
412
+ */
413
+ description?: string;
414
+ /**
415
+ * Tags for this ingress rule.
416
+ */
417
+ tags?: string[];
418
+ };
419
+ export type CreatePrivateNetworkRequest = {
420
+ /**
421
+ * Region to target. If none is passed will use default region from the config.
422
+ */
423
+ region?: ScwRegion;
424
+ /**
425
+ * Name for the Private Network.
426
+ */
427
+ name?: string;
428
+ /**
429
+ * Scaleway Project in which to create the Private Network.
430
+ */
431
+ projectId?: string;
432
+ /**
433
+ * Tags for the Private Network.
434
+ */
435
+ tags?: string[];
436
+ /**
437
+ * Private Network subnets CIDR.
438
+ */
439
+ subnets?: string[];
440
+ /**
441
+ * VPC in which to create the Private Network.
442
+ */
443
+ vpcId?: string;
444
+ /**
445
+ * Defines whether default v4 and v6 routes are propagated for this Private Network.
446
+ */
447
+ defaultRoutePropagationEnabled: boolean;
448
+ };
449
+ export type CreateRouteRequest = {
450
+ /**
451
+ * Region to target. If none is passed will use default region from the config.
452
+ */
453
+ region?: ScwRegion;
454
+ /**
455
+ * Route description.
456
+ */
457
+ description: string;
458
+ /**
459
+ * Tags of the Route.
460
+ */
461
+ tags?: string[];
462
+ /**
463
+ * VPC the Route belongs to.
464
+ */
465
+ vpcId: string;
466
+ /**
467
+ * Destination of the Route.
468
+ */
469
+ destination: string;
470
+ /**
471
+ * ID of the nexthop resource.
472
+ */
473
+ nexthopResourceId?: string;
474
+ /**
475
+ * ID of the nexthop private network.
476
+ */
477
+ nexthopPrivateNetworkId?: string;
478
+ /**
479
+ * ID of the nexthop VPC Connector.
480
+ */
481
+ nexthopVpcConnectorId?: string;
482
+ };
483
+ export type CreateVPCConnectorRequest = {
484
+ /**
485
+ * Region to target. If none is passed will use default region from the config.
486
+ */
487
+ region?: ScwRegion;
488
+ /**
489
+ * Name for the VPC connector.
490
+ */
491
+ name?: string;
492
+ /**
493
+ * Tags for the VPC connector.
494
+ */
495
+ tags?: string[];
496
+ /**
497
+ * VPC ID to filter for. Only connectors belonging to this VPC will be returned.
498
+ */
499
+ vpcId: string;
500
+ /**
501
+ * Target VPC ID to filter for. Only connectors belonging to this target VPC will be returned.
502
+ */
503
+ targetVpcId: string;
504
+ };
505
+ export type CreateVPCRequest = {
506
+ /**
507
+ * Region to target. If none is passed will use default region from the config.
508
+ */
509
+ region?: ScwRegion;
510
+ /**
511
+ * Name for the VPC.
512
+ */
513
+ name?: string;
514
+ /**
515
+ * Scaleway Project in which to create the VPC.
516
+ */
517
+ projectId?: string;
518
+ /**
519
+ * Tags for the VPC.
520
+ */
521
+ tags?: string[];
522
+ /**
523
+ * Enable routing between Private Networks in the VPC.
524
+ */
525
+ enableRouting: boolean;
526
+ /**
527
+ * Enable packets from peered VPCs to transit through this VPC.
528
+ */
529
+ enableTransitivity: boolean;
530
+ };
531
+ export type DeleteIngressRuleRequest = {
532
+ /**
533
+ * Region to target. If none is passed will use default region from the config.
534
+ */
535
+ region?: ScwRegion;
536
+ /**
537
+ * ID of the ingress rule to delete.
538
+ */
539
+ ruleId: string;
540
+ };
541
+ export type DeletePrivateNetworkRequest = {
542
+ /**
543
+ * Region to target. If none is passed will use default region from the config.
544
+ */
545
+ region?: ScwRegion;
546
+ /**
547
+ * Private Network ID.
548
+ */
549
+ privateNetworkId: string;
550
+ };
551
+ export type DeletePrivateNetworkS3EndpointRequest = {
552
+ /**
553
+ * Region to target. If none is passed will use default region from the config.
554
+ */
555
+ region?: ScwRegion;
556
+ /**
557
+ * ID of the VPC containing the S3 Endpoint.
558
+ */
559
+ vpcId: string;
560
+ /**
561
+ * ID of the Private Network to remove from the S3 Endpoint.
562
+ */
563
+ privateNetworkId: string;
564
+ };
565
+ export type DeleteRouteRequest = {
566
+ /**
567
+ * Region to target. If none is passed will use default region from the config.
568
+ */
569
+ region?: ScwRegion;
570
+ /**
571
+ * Route ID.
572
+ */
573
+ routeId: string;
574
+ };
575
+ export type DeleteVPCConnectorRequest = {
576
+ /**
577
+ * Region to target. If none is passed will use default region from the config.
578
+ */
579
+ region?: ScwRegion;
580
+ /**
581
+ * VPC connector ID.
582
+ */
583
+ vpcConnectorId: string;
584
+ };
585
+ export type DeleteVPCRequest = {
586
+ /**
587
+ * Region to target. If none is passed will use default region from the config.
588
+ */
589
+ region?: ScwRegion;
590
+ /**
591
+ * VPC ID.
592
+ */
593
+ vpcId: string;
594
+ };
595
+ export type DisableS3EndpointRequest = {
596
+ /**
597
+ * Region to target. If none is passed will use default region from the config.
598
+ */
599
+ region?: ScwRegion;
600
+ /**
601
+ * ID of the VPC for which to disable S3 integration.
602
+ */
603
+ vpcId: string;
604
+ };
605
+ export type EnableCustomRoutesPropagationRequest = {
606
+ /**
607
+ * Region to target. If none is passed will use default region from the config.
608
+ */
609
+ region?: ScwRegion;
610
+ /**
611
+ * VPC ID.
612
+ */
613
+ vpcId: string;
614
+ };
615
+ export type EnableDHCPRequest = {
616
+ /**
617
+ * Region to target. If none is passed will use default region from the config.
618
+ */
619
+ region?: ScwRegion;
620
+ /**
621
+ * Private Network ID.
622
+ */
623
+ privateNetworkId: string;
624
+ };
625
+ export type EnableRoutingRequest = {
626
+ /**
627
+ * Region to target. If none is passed will use default region from the config.
628
+ */
629
+ region?: ScwRegion;
630
+ /**
631
+ * VPC ID.
632
+ */
633
+ vpcId: string;
634
+ };
635
+ export type EnableS3EndpointRequest = {
636
+ /**
637
+ * Region to target. If none is passed will use default region from the config.
638
+ */
639
+ region?: ScwRegion;
640
+ /**
641
+ * ID of the VPC for which to enable S3 integration.
642
+ */
643
+ vpcId: string;
644
+ /**
645
+ * IDs of the Private Networks for which to enable S3 integration.
646
+ */
647
+ privateNetworkIds?: string[];
648
+ };
649
+ export type GetAclRequest = {
650
+ /**
651
+ * Region to target. If none is passed will use default region from the config.
652
+ */
653
+ region?: ScwRegion;
654
+ /**
655
+ * ID of the Network ACL's VPC.
656
+ */
657
+ vpcId: string;
658
+ /**
659
+ * Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type.
660
+ */
661
+ isIpv6: boolean;
662
+ };
663
+ export interface GetAclResponse {
664
+ rules: AclRule[];
665
+ defaultPolicy: Action;
666
+ }
667
+ export type GetIngressRuleRequest = {
668
+ /**
669
+ * Region to target. If none is passed will use default region from the config.
670
+ */
671
+ region?: ScwRegion;
672
+ /**
673
+ * ID of the ingress rule to return.
674
+ */
675
+ ruleId: string;
676
+ };
677
+ export type GetPrivateNetworkRequest = {
678
+ /**
679
+ * Region to target. If none is passed will use default region from the config.
680
+ */
681
+ region?: ScwRegion;
682
+ /**
683
+ * Private Network ID.
684
+ */
685
+ privateNetworkId: string;
686
+ };
687
+ export type GetRouteRequest = {
688
+ /**
689
+ * Region to target. If none is passed will use default region from the config.
690
+ */
691
+ region?: ScwRegion;
692
+ /**
693
+ * Route ID.
694
+ */
695
+ routeId: string;
696
+ };
697
+ export type GetVPCConnectorRequest = {
698
+ /**
699
+ * Region to target. If none is passed will use default region from the config.
700
+ */
701
+ region?: ScwRegion;
702
+ /**
703
+ * VPC connector ID.
704
+ */
705
+ vpcConnectorId: string;
706
+ };
707
+ export type GetVPCRequest = {
708
+ /**
709
+ * Region to target. If none is passed will use default region from the config.
710
+ */
711
+ region?: ScwRegion;
712
+ /**
713
+ * VPC ID.
714
+ */
715
+ vpcId: string;
716
+ };
717
+ export type ListIngressRulesRequest = {
718
+ /**
719
+ * Region to target. If none is passed will use default region from the config.
720
+ */
721
+ region?: ScwRegion;
722
+ /**
723
+ * Sort order of the returned ingress rules.
724
+ */
725
+ orderBy?: ListIngressRulesRequestOrderBy;
726
+ /**
727
+ * Page number to return, from the paginated results.
728
+ */
729
+ page?: number;
730
+ /**
731
+ * Maximum number of ingress rules to return per page.
732
+ */
733
+ pageSize?: number;
734
+ /**
735
+ * ID of the VPC to filter for.
736
+ */
737
+ vpcId?: string;
738
+ /**
739
+ * Next hop IP to filter for.
740
+ */
741
+ nexthopResourceIp?: string;
742
+ /**
743
+ * Next hop Private Network ID to filter for. Only ingress rules with this Private Network as next hop will be returned.
744
+ */
745
+ nexthopPrivateNetworkId?: string;
746
+ /**
747
+ * Whether to return only IPv4 or IPv6 ingress rules.
748
+ */
749
+ isIpv6?: boolean;
750
+ /**
751
+ * Tags to filter for. Only ingress rules with one or more matching tags will be returned.
752
+ */
753
+ tags?: string[];
754
+ /**
755
+ * Organization ID to filter for. Only ingress rules belonging to this Organization will be returned.
756
+ */
757
+ organizationId?: string;
758
+ /**
759
+ * Project ID to filter for. Only ingress rules belonging to this Project will be returned.
760
+ */
761
+ projectId?: string;
762
+ };
763
+ export interface ListIngressRulesResponse {
764
+ rules: IngressRule[];
765
+ totalCount: number;
766
+ }
767
+ export type ListPrivateNetworksRequest = {
768
+ /**
769
+ * Region to target. If none is passed will use default region from the config.
770
+ */
771
+ region?: ScwRegion;
772
+ /**
773
+ * Sort order of the returned Private Networks.
774
+ */
775
+ orderBy?: ListPrivateNetworksRequestOrderBy;
776
+ /**
777
+ * Page number to return, from the paginated results.
778
+ */
779
+ page?: number;
780
+ /**
781
+ * Maximum number of Private Networks to return per page.
782
+ */
783
+ pageSize?: number;
784
+ /**
785
+ * Name to filter for. Only Private Networks with names containing this string will be returned.
786
+ */
787
+ name?: string;
788
+ /**
789
+ * Tags to filter for. Only Private Networks with one or more matching tags will be returned.
790
+ */
791
+ tags?: string[];
792
+ /**
793
+ * Organization ID to filter for. Only Private Networks belonging to this Organization will be returned.
794
+ */
795
+ organizationId?: string;
796
+ /**
797
+ * Project ID to filter for. Only Private Networks belonging to this Project will be returned.
798
+ */
799
+ projectId?: string;
800
+ /**
801
+ * Private Network IDs to filter for. Only Private Networks with one of these IDs will be returned.
802
+ */
803
+ privateNetworkIds?: string[];
804
+ /**
805
+ * VPC ID to filter for. Only Private Networks belonging to this VPC will be returned.
806
+ */
807
+ vpcId?: string;
808
+ /**
809
+ * DHCP status to filter for. When true, only Private Networks with managed DHCP enabled will be returned.
810
+ */
811
+ dhcpEnabled?: boolean;
812
+ /**
813
+ * Filter by whether S3 integration is enabled. When set, only matching Private Networks will be returned.
814
+ */
815
+ s3IntegrationEnabled?: boolean;
816
+ };
817
+ export interface ListPrivateNetworksResponse {
818
+ privateNetworks: PrivateNetwork[];
819
+ totalCount: number;
820
+ }
821
+ export type ListSubnetOverlapsRequest = {
822
+ /**
823
+ * Region to target. If none is passed will use default region from the config.
824
+ */
825
+ region?: ScwRegion;
826
+ /**
827
+ * VPC Peering connector ID.
828
+ */
829
+ vpcConnectorId: string;
830
+ /**
831
+ * Sort order of the returned Subnet overlaps.
832
+ */
833
+ orderBy?: ListSubnetOverlapsRequestOrderBy;
834
+ /**
835
+ * Page number to return, from the paginated results.
836
+ */
837
+ page?: number;
838
+ /**
839
+ * Maximum number of Subnet overlaps to return per page.
840
+ */
841
+ pageSize?: number;
842
+ };
843
+ export interface ListSubnetOverlapsResponse {
844
+ subnetOverlaps: ListSubnetOverlapsResponseSubnetOverlap[];
845
+ totalCount: number;
846
+ }
847
+ export type ListSubnetsRequest = {
848
+ /**
849
+ * Region to target. If none is passed will use default region from the config.
850
+ */
851
+ region?: ScwRegion;
852
+ /**
853
+ * Sort order of the returned subnets.
854
+ */
855
+ orderBy?: ListSubnetsRequestOrderBy;
856
+ /**
857
+ * Page number to return, from the paginated results.
858
+ */
859
+ page?: number;
860
+ /**
861
+ * Maximum number of Private Networks to return per page.
862
+ */
863
+ pageSize?: number;
864
+ /**
865
+ * Organization ID to filter for. Only subnets belonging to this Organization will be returned.
866
+ */
867
+ organizationId?: string;
868
+ /**
869
+ * Project ID to filter for. Only subnets belonging to this Project will be returned.
870
+ */
871
+ projectId?: string;
872
+ /**
873
+ * Subnet IDs to filter for. Only subnets matching the specified IDs will be returned.
874
+ */
875
+ subnetIds?: string[];
876
+ /**
877
+ * VPC ID to filter for. Only subnets belonging to this VPC will be returned.
878
+ */
879
+ vpcId?: string;
880
+ };
881
+ export interface ListSubnetsResponse {
882
+ subnets: Subnet[];
883
+ totalCount: number;
884
+ }
885
+ export type ListVPCConnectorsRequest = {
886
+ /**
887
+ * Region to target. If none is passed will use default region from the config.
888
+ */
889
+ region?: ScwRegion;
890
+ /**
891
+ * Sort order of the returned VPC connectors.
892
+ */
893
+ orderBy?: ListVPCConnectorsRequestOrderBy;
894
+ /**
895
+ * Page number to return, from the paginated results.
896
+ */
897
+ page?: number;
898
+ /**
899
+ * Maximum number of VPC connectors to return per page.
900
+ */
901
+ pageSize?: number;
902
+ /**
903
+ * Name to filter for. Only connectors with names containing this string will be returned.
904
+ */
905
+ name?: string;
906
+ /**
907
+ * Tags to filter for. Only connectors with one or more matching tags will be returned.
908
+ */
909
+ tags?: string[];
910
+ /**
911
+ * Organization ID to filter for. Only connectors belonging to this Organization will be returned.
912
+ */
913
+ organizationId?: string;
914
+ /**
915
+ * Project ID to filter for. Only connectors belonging to this Project will be returned.
916
+ */
917
+ projectId?: string;
918
+ /**
919
+ * VPC ID to filter for. Only connectors belonging to this VPC will be returned.
920
+ */
921
+ vpcId?: string;
922
+ /**
923
+ * Target VPC ID to filter for. Only connectors belonging to this target VPC will be returned.
924
+ */
925
+ targetVpcId?: string;
926
+ /**
927
+ * Status of the VPC connector.
928
+ */
929
+ status?: VPCConnectorStatus;
930
+ };
931
+ export interface ListVPCConnectorsResponse {
932
+ vpcConnectors: VPCConnector[];
933
+ totalCount: number;
934
+ }
935
+ export type ListVPCsRequest = {
936
+ /**
937
+ * Region to target. If none is passed will use default region from the config.
938
+ */
939
+ region?: ScwRegion;
940
+ /**
941
+ * Sort order of the returned VPCs.
942
+ */
943
+ orderBy?: ListVPCsRequestOrderBy;
944
+ /**
945
+ * Page number to return, from the paginated results.
946
+ */
947
+ page?: number;
948
+ /**
949
+ * Maximum number of VPCs to return per page.
950
+ */
951
+ pageSize?: number;
952
+ /**
953
+ * Name to filter for. Only VPCs with names containing this string will be returned.
954
+ */
955
+ name?: string;
956
+ /**
957
+ * Tags to filter for. Only VPCs with one or more matching tags will be returned.
958
+ */
959
+ tags?: string[];
960
+ /**
961
+ * Organization ID to filter for. Only VPCs belonging to this Organization will be returned.
962
+ */
963
+ organizationId?: string;
964
+ /**
965
+ * Project ID to filter for. Only VPCs belonging to this Project will be returned.
966
+ */
967
+ projectId?: string;
968
+ /**
969
+ * Defines whether to filter only for VPCs which are the default one for their Project.
970
+ */
971
+ isDefault?: boolean;
972
+ /**
973
+ * Defines whether to filter only for VPCs which route traffic between their Private Networks.
974
+ */
975
+ routingEnabled?: boolean;
976
+ /**
977
+ * Defines whether to filter only for VPCs with S3 integration enabled.
978
+ */
979
+ s3IntegrationEnabled?: boolean;
980
+ };
981
+ export interface ListVPCsResponse {
982
+ vpcs: VPC[];
983
+ totalCount: number;
984
+ }
985
+ export type SetAclRequest = {
986
+ /**
987
+ * Region to target. If none is passed will use default region from the config.
988
+ */
989
+ region?: ScwRegion;
990
+ /**
991
+ * ID of the Network ACL's VPC.
992
+ */
993
+ vpcId: string;
994
+ /**
995
+ * List of Network ACL rules.
996
+ */
997
+ rules: AclRule[];
998
+ /**
999
+ * Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type.
1000
+ */
1001
+ isIpv6: boolean;
1002
+ /**
1003
+ * Action to take for packets which do not match any rules.
1004
+ */
1005
+ defaultPolicy: Action;
1006
+ };
1007
+ export interface SetAclResponse {
1008
+ rules: AclRule[];
1009
+ defaultPolicy: Action;
1010
+ }
1011
+ export type SetPrivateNetworksS3EndpointRequest = {
1012
+ /**
1013
+ * Region to target. If none is passed will use default region from the config.
1014
+ */
1015
+ region?: ScwRegion;
1016
+ /**
1017
+ * ID of the VPC containing the S3 Endpoint.
1018
+ */
1019
+ vpcId: string;
1020
+ /**
1021
+ * IDs of the Private Networks to associate with the S3 Endpoint.
1022
+ */
1023
+ privateNetworkIds: string[];
1024
+ };
1025
+ export interface SetPrivateNetworksS3EndpointResponse {
1026
+ /**
1027
+ * ID of the VPC containing the S3 Endpoint.
1028
+ */
1029
+ vpcId: string;
1030
+ /**
1031
+ * IDs of the Private Networks associated with the S3 Endpoint.
1032
+ */
1033
+ privateNetworkIds: string[];
1034
+ }
1035
+ export type UpdateIngressRuleRequest = {
1036
+ /**
1037
+ * Region to target. If none is passed will use default region from the config.
1038
+ */
1039
+ region?: ScwRegion;
1040
+ /**
1041
+ * ID of the ingress rule to update.
1042
+ */
1043
+ ruleId: string;
1044
+ /**
1045
+ * Source network to match ingress traffic on. Can be IPv4 or IPv6.
1046
+ */
1047
+ source?: string;
1048
+ /**
1049
+ * IP of the local resource to redirect ingress traffic to. IP version must be consistent with the source network.
1050
+ */
1051
+ nexthopResourceIp?: string;
1052
+ /**
1053
+ * ID of the Private Network the destination resource is in.
1054
+ */
1055
+ nexthopPrivateNetworkId?: string;
1056
+ /**
1057
+ * Description to set for this ingress rule.
1058
+ */
1059
+ description?: string;
1060
+ /**
1061
+ * Tags to set for this ingress rule.
1062
+ */
1063
+ tags?: string[];
1064
+ };
1065
+ export type UpdatePrivateNetworkRequest = {
1066
+ /**
1067
+ * Region to target. If none is passed will use default region from the config.
1068
+ */
1069
+ region?: ScwRegion;
1070
+ /**
1071
+ * Private Network ID.
1072
+ */
1073
+ privateNetworkId: string;
1074
+ /**
1075
+ * Name for the Private Network.
1076
+ */
1077
+ name?: string;
1078
+ /**
1079
+ * Tags for the Private Network.
1080
+ */
1081
+ tags?: string[];
1082
+ /**
1083
+ * Defines whether default v4 and v6 routes are propagated for this Private Network.
1084
+ */
1085
+ defaultRoutePropagationEnabled?: boolean;
1086
+ };
1087
+ export type UpdateRouteRequest = {
1088
+ /**
1089
+ * Region to target. If none is passed will use default region from the config.
1090
+ */
1091
+ region?: ScwRegion;
1092
+ /**
1093
+ * Route ID.
1094
+ */
1095
+ routeId: string;
1096
+ /**
1097
+ * Route description.
1098
+ */
1099
+ description?: string;
1100
+ /**
1101
+ * Tags of the Route.
1102
+ */
1103
+ tags?: string[];
1104
+ /**
1105
+ * Destination of the Route.
1106
+ */
1107
+ destination?: string;
1108
+ /**
1109
+ * ID of the nexthop resource.
1110
+ */
1111
+ nexthopResourceId?: string;
1112
+ /**
1113
+ * ID of the nexthop private network.
1114
+ */
1115
+ nexthopPrivateNetworkId?: string;
1116
+ /**
1117
+ * ID of the nexthop VPC connector.
1118
+ */
1119
+ nexthopVpcConnectorId?: string;
1120
+ };
1121
+ export type UpdateVPCConnectorRequest = {
1122
+ /**
1123
+ * Region to target. If none is passed will use default region from the config.
1124
+ */
1125
+ region?: ScwRegion;
1126
+ /**
1127
+ * VPC connector ID.
1128
+ */
1129
+ vpcConnectorId: string;
1130
+ /**
1131
+ * Name for the VPC connector.
1132
+ */
1133
+ name?: string;
1134
+ /**
1135
+ * Tags for the VPC connector.
1136
+ */
1137
+ tags?: string[];
1138
+ };
1139
+ export type UpdateVPCRequest = {
1140
+ /**
1141
+ * Region to target. If none is passed will use default region from the config.
1142
+ */
1143
+ region?: ScwRegion;
1144
+ /**
1145
+ * VPC ID.
1146
+ */
1147
+ vpcId: string;
1148
+ /**
1149
+ * Name for the VPC.
1150
+ */
1151
+ name?: string;
1152
+ /**
1153
+ * Tags for the VPC.
1154
+ */
1155
+ tags?: string[];
1156
+ };