Skip to content

Commit 529c0d3

Browse files
authored
feat(vpc_gw): support passing IPAM IP IDs (#952)
1 parent 366fbe5 commit 529c0d3

File tree

3 files changed

+47
-7
lines changed

3 files changed

+47
-7
lines changed

packages/clients/src/api/vpcgw/v1/index.gen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export type {
66
CreateDHCPEntryRequest,
77
CreateDHCPRequest,
88
CreateGatewayNetworkRequest,
9+
CreateGatewayNetworkRequestIpamConfig,
910
CreateGatewayRequest,
1011
CreateIPRequest,
1112
CreatePATRuleRequest,
@@ -63,6 +64,7 @@ export type {
6364
UpdateDHCPEntryRequest,
6465
UpdateDHCPRequest,
6566
UpdateGatewayNetworkRequest,
67+
UpdateGatewayNetworkRequestIpamConfig,
6668
UpdateGatewayRequest,
6769
UpdateIPRequest,
6870
UpdatePATRuleRequest,

packages/clients/src/api/vpcgw/v1/marshalling.gen.ts

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import type {
1212
CreateDHCPEntryRequest,
1313
CreateDHCPRequest,
1414
CreateGatewayNetworkRequest,
15+
CreateGatewayNetworkRequestIpamConfig,
1516
CreateGatewayRequest,
1617
CreateIPRequest,
1718
CreatePATRuleRequest,
@@ -39,6 +40,7 @@ import type {
3940
UpdateDHCPEntryRequest,
4041
UpdateDHCPRequest,
4142
UpdateGatewayNetworkRequest,
43+
UpdateGatewayNetworkRequestIpamConfig,
4244
UpdateGatewayRequest,
4345
UpdateIPRequest,
4446
UpdatePATRuleRequest,
@@ -81,7 +83,10 @@ const unmarshalIpamConfig = (data: unknown) => {
8183
)
8284
}
8385

84-
return { pushDefaultRoute: data.push_default_route } as IpamConfig
86+
return {
87+
ipamIpId: data.ipam_ip_id,
88+
pushDefaultRoute: data.push_default_route,
89+
} as IpamConfig
8590
}
8691

8792
export const unmarshalGatewayNetwork = (data: unknown) => {
@@ -355,10 +360,11 @@ export const marshalCreateDHCPRequest = (
355360
valid_lifetime: request.validLifetime,
356361
})
357362

358-
const marshalIpamConfig = (
359-
request: IpamConfig,
363+
const marshalCreateGatewayNetworkRequestIpamConfig = (
364+
request: CreateGatewayNetworkRequestIpamConfig,
360365
defaults: DefaultValues,
361366
): Record<string, unknown> => ({
367+
ipam_ip_id: request.ipamIpId,
362368
push_default_route: request.pushDefaultRoute,
363369
})
364370

@@ -380,6 +386,14 @@ const marshalSetPATRulesRequestRule = (
380386
public_port: request.publicPort,
381387
})
382388

389+
const marshalUpdateGatewayNetworkRequestIpamConfig = (
390+
request: UpdateGatewayNetworkRequestIpamConfig,
391+
defaults: DefaultValues,
392+
): Record<string, unknown> => ({
393+
ipam_ip_id: request.ipamIpId,
394+
push_default_route: request.pushDefaultRoute,
395+
})
396+
383397
export const marshalCreateDHCPEntryRequest = (
384398
request: CreateDHCPEntryRequest,
385399
defaults: DefaultValues,
@@ -415,7 +429,10 @@ export const marshalCreateGatewayNetworkRequest = (
415429
{
416430
param: 'ipam_config',
417431
value: request.ipamConfig
418-
? marshalIpamConfig(request.ipamConfig, defaults)
432+
? marshalCreateGatewayNetworkRequestIpamConfig(
433+
request.ipamConfig,
434+
defaults,
435+
)
419436
: undefined,
420437
},
421438
]),
@@ -521,7 +538,10 @@ export const marshalUpdateGatewayNetworkRequest = (
521538
{
522539
param: 'ipam_config',
523540
value: request.ipamConfig
524-
? marshalIpamConfig(request.ipamConfig, defaults)
541+
? marshalUpdateGatewayNetworkRequestIpamConfig(
542+
request.ipamConfig,
543+
defaults,
544+
)
525545
: undefined,
526546
},
527547
]),

packages/clients/src/api/vpcgw/v1/types.gen.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ export type ListPATRulesRequestOrderBy =
7171

7272
export type PATRuleProtocol = 'unknown' | 'both' | 'tcp' | 'udp'
7373

74+
/** Create gateway network request. ipam config. */
75+
export interface CreateGatewayNetworkRequestIpamConfig {
76+
/** Enabling the default route also enables masquerading. */
77+
pushDefaultRoute: boolean
78+
/** Use this IPAM-booked IP ID as the Gateway's IP in this Private Network. */
79+
ipamIpId?: string
80+
}
81+
7482
/** Dhcp. */
7583
export interface DHCP {
7684
/** ID of the DHCP config. */
@@ -292,6 +300,8 @@ export interface IP {
292300
export interface IpamConfig {
293301
/** Defines whether the default route is enabled on that Gateway Network. */
294302
pushDefaultRoute: boolean
303+
/** IPAM-booked IP ID as the Gateway's IP in this Private Network. */
304+
ipamIpId: string
295305
}
296306

297307
/** List dhcp entries response. */
@@ -409,6 +419,14 @@ export interface SetPATRulesResponse {
409419
patRules: PATRule[]
410420
}
411421

422+
/** Update gateway network request. ipam config. */
423+
export interface UpdateGatewayNetworkRequestIpamConfig {
424+
/** Enabling the default route also enables masquerading. */
425+
pushDefaultRoute?: boolean
426+
/** Use this IPAM-booked IP ID as the Gateway's IP in this Private Network. */
427+
ipamIpId?: string
428+
}
429+
412430
export type ListGatewaysRequest = {
413431
/** Zone to target. If none is passed will use default zone from the config. */
414432
zone?: Zone
@@ -592,7 +610,7 @@ export type CreateGatewayNetworkRequest = {
592610
* One-of ('ipConfig'): at most one of 'dhcpId', 'dhcp', 'address',
593611
* 'ipamConfig' could be set.
594612
*/
595-
ipamConfig?: IpamConfig
613+
ipamConfig?: CreateGatewayNetworkRequestIpamConfig
596614
}
597615

598616
export type UpdateGatewayNetworkRequest = {
@@ -635,7 +653,7 @@ export type UpdateGatewayNetworkRequest = {
635653
* One-of ('ipConfig'): at most one of 'dhcpId', 'address', 'ipamConfig' could
636654
* be set.
637655
*/
638-
ipamConfig?: IpamConfig
656+
ipamConfig?: UpdateGatewayNetworkRequestIpamConfig
639657
}
640658

641659
export type DeleteGatewayNetworkRequest = {

0 commit comments

Comments
 (0)