@scaleway/sdk-flexibleip 1.0.1

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,212 @@
1
+ import { API as API$1, validatePathParam, waitForResource, urlParams, enrichForPagination } from "@scaleway/sdk-client";
2
+ import { FLEXIBLE_IP_TRANSIENT_STATUSES } from "./content.gen.js";
3
+ import { marshalCreateFlexibleIPRequest, unmarshalFlexibleIP, unmarshalListFlexibleIPsResponse, marshalUpdateFlexibleIPRequest, marshalAttachFlexibleIPRequest, unmarshalAttachFlexibleIPsResponse, marshalDetachFlexibleIPRequest, unmarshalDetachFlexibleIPsResponse, marshalGenerateMACAddrRequest, marshalDuplicateMACAddrRequest, marshalMoveMACAddrRequest } from "./marshalling.gen.js";
4
+ const jsonContentHeaders = {
5
+ "Content-Type": "application/json; charset=utf-8"
6
+ };
7
+ class API extends API$1 {
8
+ /** Lists the available zones of the API. */
9
+ static LOCALITIES = [
10
+ "fr-par-1",
11
+ "fr-par-2",
12
+ "nl-ams-1",
13
+ "nl-ams-2",
14
+ "pl-waw-2",
15
+ "pl-waw-3"
16
+ ];
17
+ /**
18
+ * Create a new flexible IP. Generate a new flexible IP within a given zone, specifying its configuration including Project ID and description.
19
+ *
20
+ * @param request - The request {@link CreateFlexibleIPRequest}
21
+ * @returns A Promise of FlexibleIP
22
+ */
23
+ createFlexibleIP = (request) => this.client.fetch(
24
+ {
25
+ body: JSON.stringify(
26
+ marshalCreateFlexibleIPRequest(request, this.client.settings)
27
+ ),
28
+ headers: jsonContentHeaders,
29
+ method: "POST",
30
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips`
31
+ },
32
+ unmarshalFlexibleIP
33
+ );
34
+ /**
35
+ * Get an existing flexible IP. Retrieve information about an existing flexible IP, specified by its ID and zone. Its full details, including Project ID, description and status, are returned in the response object.
36
+ *
37
+ * @param request - The request {@link GetFlexibleIPRequest}
38
+ * @returns A Promise of FlexibleIP
39
+ */
40
+ getFlexibleIP = (request) => this.client.fetch(
41
+ {
42
+ method: "GET",
43
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}`
44
+ },
45
+ unmarshalFlexibleIP
46
+ );
47
+ /**
48
+ * Waits for {@link FlexibleIP} to be in a final state.
49
+ *
50
+ * @param request - The request {@link GetFlexibleIPRequest}
51
+ * @param options - The waiting options
52
+ * @returns A Promise of FlexibleIP
53
+ */
54
+ waitForFlexibleIP = (request, options) => waitForResource(
55
+ options?.stop ?? ((res) => Promise.resolve(
56
+ !FLEXIBLE_IP_TRANSIENT_STATUSES.includes(res.status)
57
+ )),
58
+ this.getFlexibleIP,
59
+ request,
60
+ options
61
+ );
62
+ pageOfListFlexibleIPs = (request = {}) => this.client.fetch(
63
+ {
64
+ method: "GET",
65
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips`,
66
+ urlParams: urlParams(
67
+ ["order_by", request.orderBy],
68
+ ["organization_id", request.organizationId],
69
+ ["page", request.page],
70
+ [
71
+ "page_size",
72
+ request.pageSize ?? this.client.settings.defaultPageSize
73
+ ],
74
+ ["project_id", request.projectId],
75
+ ["server_ids", request.serverIds],
76
+ ["status", request.status],
77
+ ["tags", request.tags]
78
+ )
79
+ },
80
+ unmarshalListFlexibleIPsResponse
81
+ );
82
+ /**
83
+ * List flexible IPs. List all flexible IPs within a given zone.
84
+ *
85
+ * @param request - The request {@link ListFlexibleIPsRequest}
86
+ * @returns A Promise of ListFlexibleIPsResponse
87
+ */
88
+ listFlexibleIPs = (request = {}) => enrichForPagination("flexibleIps", this.pageOfListFlexibleIPs, request);
89
+ /**
90
+ * Update an existing flexible IP. Update the parameters of an existing flexible IP, specified by its ID and zone. These parameters include tags and description.
91
+ *
92
+ * @param request - The request {@link UpdateFlexibleIPRequest}
93
+ * @returns A Promise of FlexibleIP
94
+ */
95
+ updateFlexibleIP = (request) => this.client.fetch(
96
+ {
97
+ body: JSON.stringify(
98
+ marshalUpdateFlexibleIPRequest(request, this.client.settings)
99
+ ),
100
+ headers: jsonContentHeaders,
101
+ method: "PATCH",
102
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}`
103
+ },
104
+ unmarshalFlexibleIP
105
+ );
106
+ /**
107
+ * Delete an existing flexible IP. Delete an existing flexible IP, specified by its ID and zone. Note that deleting a flexible IP is permanent and cannot be undone.
108
+ *
109
+ * @param request - The request {@link DeleteFlexibleIPRequest}
110
+ */
111
+ deleteFlexibleIP = (request) => this.client.fetch({
112
+ method: "DELETE",
113
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}`
114
+ });
115
+ /**
116
+ * Attach an existing flexible IP to a server. Attach an existing flexible IP to a specified Elastic Metal server.
117
+ *
118
+ * @param request - The request {@link AttachFlexibleIPRequest}
119
+ * @returns A Promise of AttachFlexibleIPsResponse
120
+ */
121
+ attachFlexibleIP = (request) => this.client.fetch(
122
+ {
123
+ body: JSON.stringify(
124
+ marshalAttachFlexibleIPRequest(request, this.client.settings)
125
+ ),
126
+ headers: jsonContentHeaders,
127
+ method: "POST",
128
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/attach`
129
+ },
130
+ unmarshalAttachFlexibleIPsResponse
131
+ );
132
+ /**
133
+ * Detach an existing flexible IP from a server. Detach an existing flexible IP from a specified Elastic Metal server.
134
+ *
135
+ * @param request - The request {@link DetachFlexibleIPRequest}
136
+ * @returns A Promise of DetachFlexibleIPsResponse
137
+ */
138
+ detachFlexibleIP = (request) => this.client.fetch(
139
+ {
140
+ body: JSON.stringify(
141
+ marshalDetachFlexibleIPRequest(request, this.client.settings)
142
+ ),
143
+ headers: jsonContentHeaders,
144
+ method: "POST",
145
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/detach`
146
+ },
147
+ unmarshalDetachFlexibleIPsResponse
148
+ );
149
+ /**
150
+ * Generate a virtual MAC address on an existing flexible IP. Generate a virtual MAC (Media Access Control) address on an existing flexible IP.
151
+ *
152
+ * @param request - The request {@link GenerateMACAddrRequest}
153
+ * @returns A Promise of FlexibleIP
154
+ */
155
+ generateMACAddr = (request) => this.client.fetch(
156
+ {
157
+ body: JSON.stringify(
158
+ marshalGenerateMACAddrRequest(request, this.client.settings)
159
+ ),
160
+ headers: jsonContentHeaders,
161
+ method: "POST",
162
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}/mac`
163
+ },
164
+ unmarshalFlexibleIP
165
+ );
166
+ /**
167
+ * Duplicate a virtual MAC address to another flexible IP. Duplicate a virtual MAC address from a given flexible IP to another flexible IP attached to the same server.
168
+ *
169
+ * @param request - The request {@link DuplicateMACAddrRequest}
170
+ * @returns A Promise of FlexibleIP
171
+ */
172
+ duplicateMACAddr = (request) => this.client.fetch(
173
+ {
174
+ body: JSON.stringify(
175
+ marshalDuplicateMACAddrRequest(request, this.client.settings)
176
+ ),
177
+ headers: jsonContentHeaders,
178
+ method: "POST",
179
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}/mac/duplicate`
180
+ },
181
+ unmarshalFlexibleIP
182
+ );
183
+ /**
184
+ * Relocate an existing virtual MAC address to a different flexible IP. Relocate a virtual MAC (Media Access Control) address from an existing flexible IP to a different flexible IP.
185
+ *
186
+ * @param request - The request {@link MoveMACAddrRequest}
187
+ * @returns A Promise of FlexibleIP
188
+ */
189
+ moveMACAddr = (request) => this.client.fetch(
190
+ {
191
+ body: JSON.stringify(
192
+ marshalMoveMACAddrRequest(request, this.client.settings)
193
+ ),
194
+ headers: jsonContentHeaders,
195
+ method: "POST",
196
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}/mac/move`
197
+ },
198
+ unmarshalFlexibleIP
199
+ );
200
+ /**
201
+ * Detach a given virtual MAC address from an existing flexible IP. Detach a given MAC (Media Access Control) address from an existing flexible IP.
202
+ *
203
+ * @param request - The request {@link DeleteMACAddrRequest}
204
+ */
205
+ deleteMACAddr = (request) => this.client.fetch({
206
+ method: "DELETE",
207
+ path: `/flexible-ip/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/fips/${validatePathParam("fipId", request.fipId)}/mac`
208
+ });
209
+ }
210
+ export {
211
+ API
212
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const FLEXIBLE_IP_TRANSIENT_STATUSES = [
4
+ "updating",
5
+ "detaching"
6
+ ];
7
+ const MAC_ADDRESS_TRANSIENT_STATUSES = [
8
+ "updating",
9
+ "deleting"
10
+ ];
11
+ exports.FLEXIBLE_IP_TRANSIENT_STATUSES = FLEXIBLE_IP_TRANSIENT_STATUSES;
12
+ exports.MAC_ADDRESS_TRANSIENT_STATUSES = MAC_ADDRESS_TRANSIENT_STATUSES;
@@ -0,0 +1,5 @@
1
+ import type { FlexibleIPStatus, MACAddressStatus } from './types.gen';
2
+ /** Lists transient statutes of the enum {@link FlexibleIPStatus}. */
3
+ export declare const FLEXIBLE_IP_TRANSIENT_STATUSES: FlexibleIPStatus[];
4
+ /** Lists transient statutes of the enum {@link MACAddressStatus}. */
5
+ export declare const MAC_ADDRESS_TRANSIENT_STATUSES: MACAddressStatus[];
@@ -0,0 +1,12 @@
1
+ const FLEXIBLE_IP_TRANSIENT_STATUSES = [
2
+ "updating",
3
+ "detaching"
4
+ ];
5
+ const MAC_ADDRESS_TRANSIENT_STATUSES = [
6
+ "updating",
7
+ "deleting"
8
+ ];
9
+ export {
10
+ FLEXIBLE_IP_TRANSIENT_STATUSES,
11
+ MAC_ADDRESS_TRANSIENT_STATUSES
12
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const api_gen = require("./api.gen.cjs");
4
+ const content_gen = require("./content.gen.cjs");
5
+ const marshalling_gen = require("./marshalling.gen.cjs");
6
+ const validationRules_gen = require("./validation-rules.gen.cjs");
7
+ exports.API = api_gen.API;
8
+ exports.FLEXIBLE_IP_TRANSIENT_STATUSES = content_gen.FLEXIBLE_IP_TRANSIENT_STATUSES;
9
+ exports.MAC_ADDRESS_TRANSIENT_STATUSES = content_gen.MAC_ADDRESS_TRANSIENT_STATUSES;
10
+ exports.marshalAttachFlexibleIPRequest = marshalling_gen.marshalAttachFlexibleIPRequest;
11
+ exports.marshalCreateFlexibleIPRequest = marshalling_gen.marshalCreateFlexibleIPRequest;
12
+ exports.marshalDetachFlexibleIPRequest = marshalling_gen.marshalDetachFlexibleIPRequest;
13
+ exports.marshalDuplicateMACAddrRequest = marshalling_gen.marshalDuplicateMACAddrRequest;
14
+ exports.marshalGenerateMACAddrRequest = marshalling_gen.marshalGenerateMACAddrRequest;
15
+ exports.marshalMoveMACAddrRequest = marshalling_gen.marshalMoveMACAddrRequest;
16
+ exports.marshalUpdateFlexibleIPRequest = marshalling_gen.marshalUpdateFlexibleIPRequest;
17
+ exports.unmarshalAttachFlexibleIPsResponse = marshalling_gen.unmarshalAttachFlexibleIPsResponse;
18
+ exports.unmarshalDetachFlexibleIPsResponse = marshalling_gen.unmarshalDetachFlexibleIPsResponse;
19
+ exports.unmarshalFlexibleIP = marshalling_gen.unmarshalFlexibleIP;
20
+ exports.unmarshalListFlexibleIPsResponse = marshalling_gen.unmarshalListFlexibleIPsResponse;
21
+ exports.ValidationRules = validationRules_gen;
@@ -0,0 +1,5 @@
1
+ export { API } from './api.gen';
2
+ export * from './content.gen';
3
+ export * from './marshalling.gen';
4
+ export type { AttachFlexibleIPRequest, AttachFlexibleIPsResponse, CreateFlexibleIPRequest, DeleteFlexibleIPRequest, DeleteMACAddrRequest, DetachFlexibleIPRequest, DetachFlexibleIPsResponse, DuplicateMACAddrRequest, FlexibleIP, FlexibleIPStatus, GenerateMACAddrRequest, GetFlexibleIPRequest, ListFlexibleIPsRequest, ListFlexibleIPsRequestOrderBy, ListFlexibleIPsResponse, MACAddress, MACAddressStatus, MACAddressType, MoveMACAddrRequest, UpdateFlexibleIPRequest, } from './types.gen';
5
+ export * as ValidationRules from './validation-rules.gen';
@@ -0,0 +1,21 @@
1
+ import { API } from "./api.gen.js";
2
+ import { FLEXIBLE_IP_TRANSIENT_STATUSES, MAC_ADDRESS_TRANSIENT_STATUSES } from "./content.gen.js";
3
+ import { marshalAttachFlexibleIPRequest, marshalCreateFlexibleIPRequest, marshalDetachFlexibleIPRequest, marshalDuplicateMACAddrRequest, marshalGenerateMACAddrRequest, marshalMoveMACAddrRequest, marshalUpdateFlexibleIPRequest, unmarshalAttachFlexibleIPsResponse, unmarshalDetachFlexibleIPsResponse, unmarshalFlexibleIP, unmarshalListFlexibleIPsResponse } from "./marshalling.gen.js";
4
+ import * as validationRules_gen from "./validation-rules.gen.js";
5
+ export {
6
+ API,
7
+ FLEXIBLE_IP_TRANSIENT_STATUSES,
8
+ MAC_ADDRESS_TRANSIENT_STATUSES,
9
+ validationRules_gen as ValidationRules,
10
+ marshalAttachFlexibleIPRequest,
11
+ marshalCreateFlexibleIPRequest,
12
+ marshalDetachFlexibleIPRequest,
13
+ marshalDuplicateMACAddrRequest,
14
+ marshalGenerateMACAddrRequest,
15
+ marshalMoveMACAddrRequest,
16
+ marshalUpdateFlexibleIPRequest,
17
+ unmarshalAttachFlexibleIPsResponse,
18
+ unmarshalDetachFlexibleIPsResponse,
19
+ unmarshalFlexibleIP,
20
+ unmarshalListFlexibleIPsResponse
21
+ };
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const sdkClient = require("@scaleway/sdk-client");
4
+ const unmarshalMACAddress = (data) => {
5
+ if (!sdkClient.isJSONObject(data)) {
6
+ throw new TypeError(
7
+ `Unmarshalling the type 'MACAddress' failed as data isn't a dictionary.`
8
+ );
9
+ }
10
+ return {
11
+ createdAt: sdkClient.unmarshalDate(data.created_at),
12
+ id: data.id,
13
+ macAddress: data.mac_address,
14
+ macType: data.mac_type,
15
+ status: data.status,
16
+ updatedAt: sdkClient.unmarshalDate(data.updated_at),
17
+ zone: data.zone
18
+ };
19
+ };
20
+ const unmarshalFlexibleIP = (data) => {
21
+ if (!sdkClient.isJSONObject(data)) {
22
+ throw new TypeError(
23
+ `Unmarshalling the type 'FlexibleIP' failed as data isn't a dictionary.`
24
+ );
25
+ }
26
+ return {
27
+ createdAt: sdkClient.unmarshalDate(data.created_at),
28
+ description: data.description,
29
+ id: data.id,
30
+ ipAddress: data.ip_address,
31
+ macAddress: data.mac_address ? unmarshalMACAddress(data.mac_address) : void 0,
32
+ organizationId: data.organization_id,
33
+ projectId: data.project_id,
34
+ reverse: data.reverse,
35
+ serverId: data.server_id,
36
+ status: data.status,
37
+ tags: data.tags,
38
+ updatedAt: sdkClient.unmarshalDate(data.updated_at),
39
+ zone: data.zone
40
+ };
41
+ };
42
+ const unmarshalAttachFlexibleIPsResponse = (data) => {
43
+ if (!sdkClient.isJSONObject(data)) {
44
+ throw new TypeError(
45
+ `Unmarshalling the type 'AttachFlexibleIPsResponse' failed as data isn't a dictionary.`
46
+ );
47
+ }
48
+ return {
49
+ flexibleIps: sdkClient.unmarshalArrayOfObject(data.flexible_ips, unmarshalFlexibleIP),
50
+ totalCount: data.total_count
51
+ };
52
+ };
53
+ const unmarshalDetachFlexibleIPsResponse = (data) => {
54
+ if (!sdkClient.isJSONObject(data)) {
55
+ throw new TypeError(
56
+ `Unmarshalling the type 'DetachFlexibleIPsResponse' failed as data isn't a dictionary.`
57
+ );
58
+ }
59
+ return {
60
+ flexibleIps: sdkClient.unmarshalArrayOfObject(data.flexible_ips, unmarshalFlexibleIP),
61
+ totalCount: data.total_count
62
+ };
63
+ };
64
+ const unmarshalListFlexibleIPsResponse = (data) => {
65
+ if (!sdkClient.isJSONObject(data)) {
66
+ throw new TypeError(
67
+ `Unmarshalling the type 'ListFlexibleIPsResponse' failed as data isn't a dictionary.`
68
+ );
69
+ }
70
+ return {
71
+ flexibleIps: sdkClient.unmarshalArrayOfObject(data.flexible_ips, unmarshalFlexibleIP),
72
+ totalCount: data.total_count
73
+ };
74
+ };
75
+ const marshalAttachFlexibleIPRequest = (request, defaults) => ({
76
+ fips_ids: request.fipsIds,
77
+ server_id: request.serverId
78
+ });
79
+ const marshalCreateFlexibleIPRequest = (request, defaults) => ({
80
+ description: request.description,
81
+ is_ipv6: request.isIpv6,
82
+ project_id: request.projectId ?? defaults.defaultProjectId,
83
+ reverse: request.reverse,
84
+ server_id: request.serverId,
85
+ tags: request.tags
86
+ });
87
+ const marshalDetachFlexibleIPRequest = (request, defaults) => ({
88
+ fips_ids: request.fipsIds
89
+ });
90
+ const marshalDuplicateMACAddrRequest = (request, defaults) => ({
91
+ duplicate_from_fip_id: request.duplicateFromFipId
92
+ });
93
+ const marshalGenerateMACAddrRequest = (request, defaults) => ({
94
+ mac_type: request.macType
95
+ });
96
+ const marshalMoveMACAddrRequest = (request, defaults) => ({
97
+ dst_fip_id: request.dstFipId
98
+ });
99
+ const marshalUpdateFlexibleIPRequest = (request, defaults) => ({
100
+ description: request.description,
101
+ reverse: request.reverse,
102
+ tags: request.tags
103
+ });
104
+ exports.marshalAttachFlexibleIPRequest = marshalAttachFlexibleIPRequest;
105
+ exports.marshalCreateFlexibleIPRequest = marshalCreateFlexibleIPRequest;
106
+ exports.marshalDetachFlexibleIPRequest = marshalDetachFlexibleIPRequest;
107
+ exports.marshalDuplicateMACAddrRequest = marshalDuplicateMACAddrRequest;
108
+ exports.marshalGenerateMACAddrRequest = marshalGenerateMACAddrRequest;
109
+ exports.marshalMoveMACAddrRequest = marshalMoveMACAddrRequest;
110
+ exports.marshalUpdateFlexibleIPRequest = marshalUpdateFlexibleIPRequest;
111
+ exports.unmarshalAttachFlexibleIPsResponse = unmarshalAttachFlexibleIPsResponse;
112
+ exports.unmarshalDetachFlexibleIPsResponse = unmarshalDetachFlexibleIPsResponse;
113
+ exports.unmarshalFlexibleIP = unmarshalFlexibleIP;
114
+ exports.unmarshalListFlexibleIPsResponse = unmarshalListFlexibleIPsResponse;
@@ -0,0 +1,13 @@
1
+ import type { DefaultValues } from '@scaleway/sdk-client';
2
+ import type { AttachFlexibleIPRequest, AttachFlexibleIPsResponse, CreateFlexibleIPRequest, DetachFlexibleIPRequest, DetachFlexibleIPsResponse, DuplicateMACAddrRequest, FlexibleIP, GenerateMACAddrRequest, ListFlexibleIPsResponse, MoveMACAddrRequest, UpdateFlexibleIPRequest } from './types.gen';
3
+ export declare const unmarshalFlexibleIP: (data: unknown) => FlexibleIP;
4
+ export declare const unmarshalAttachFlexibleIPsResponse: (data: unknown) => AttachFlexibleIPsResponse;
5
+ export declare const unmarshalDetachFlexibleIPsResponse: (data: unknown) => DetachFlexibleIPsResponse;
6
+ export declare const unmarshalListFlexibleIPsResponse: (data: unknown) => ListFlexibleIPsResponse;
7
+ export declare const marshalAttachFlexibleIPRequest: (request: AttachFlexibleIPRequest, defaults: DefaultValues) => Record<string, unknown>;
8
+ export declare const marshalCreateFlexibleIPRequest: (request: CreateFlexibleIPRequest, defaults: DefaultValues) => Record<string, unknown>;
9
+ export declare const marshalDetachFlexibleIPRequest: (request: DetachFlexibleIPRequest, defaults: DefaultValues) => Record<string, unknown>;
10
+ export declare const marshalDuplicateMACAddrRequest: (request: DuplicateMACAddrRequest, defaults: DefaultValues) => Record<string, unknown>;
11
+ export declare const marshalGenerateMACAddrRequest: (request: GenerateMACAddrRequest, defaults: DefaultValues) => Record<string, unknown>;
12
+ export declare const marshalMoveMACAddrRequest: (request: MoveMACAddrRequest, defaults: DefaultValues) => Record<string, unknown>;
13
+ export declare const marshalUpdateFlexibleIPRequest: (request: UpdateFlexibleIPRequest, defaults: DefaultValues) => Record<string, unknown>;
@@ -0,0 +1,114 @@
1
+ import { isJSONObject, unmarshalDate, unmarshalArrayOfObject } from "@scaleway/sdk-client";
2
+ const unmarshalMACAddress = (data) => {
3
+ if (!isJSONObject(data)) {
4
+ throw new TypeError(
5
+ `Unmarshalling the type 'MACAddress' failed as data isn't a dictionary.`
6
+ );
7
+ }
8
+ return {
9
+ createdAt: unmarshalDate(data.created_at),
10
+ id: data.id,
11
+ macAddress: data.mac_address,
12
+ macType: data.mac_type,
13
+ status: data.status,
14
+ updatedAt: unmarshalDate(data.updated_at),
15
+ zone: data.zone
16
+ };
17
+ };
18
+ const unmarshalFlexibleIP = (data) => {
19
+ if (!isJSONObject(data)) {
20
+ throw new TypeError(
21
+ `Unmarshalling the type 'FlexibleIP' failed as data isn't a dictionary.`
22
+ );
23
+ }
24
+ return {
25
+ createdAt: unmarshalDate(data.created_at),
26
+ description: data.description,
27
+ id: data.id,
28
+ ipAddress: data.ip_address,
29
+ macAddress: data.mac_address ? unmarshalMACAddress(data.mac_address) : void 0,
30
+ organizationId: data.organization_id,
31
+ projectId: data.project_id,
32
+ reverse: data.reverse,
33
+ serverId: data.server_id,
34
+ status: data.status,
35
+ tags: data.tags,
36
+ updatedAt: unmarshalDate(data.updated_at),
37
+ zone: data.zone
38
+ };
39
+ };
40
+ const unmarshalAttachFlexibleIPsResponse = (data) => {
41
+ if (!isJSONObject(data)) {
42
+ throw new TypeError(
43
+ `Unmarshalling the type 'AttachFlexibleIPsResponse' failed as data isn't a dictionary.`
44
+ );
45
+ }
46
+ return {
47
+ flexibleIps: unmarshalArrayOfObject(data.flexible_ips, unmarshalFlexibleIP),
48
+ totalCount: data.total_count
49
+ };
50
+ };
51
+ const unmarshalDetachFlexibleIPsResponse = (data) => {
52
+ if (!isJSONObject(data)) {
53
+ throw new TypeError(
54
+ `Unmarshalling the type 'DetachFlexibleIPsResponse' failed as data isn't a dictionary.`
55
+ );
56
+ }
57
+ return {
58
+ flexibleIps: unmarshalArrayOfObject(data.flexible_ips, unmarshalFlexibleIP),
59
+ totalCount: data.total_count
60
+ };
61
+ };
62
+ const unmarshalListFlexibleIPsResponse = (data) => {
63
+ if (!isJSONObject(data)) {
64
+ throw new TypeError(
65
+ `Unmarshalling the type 'ListFlexibleIPsResponse' failed as data isn't a dictionary.`
66
+ );
67
+ }
68
+ return {
69
+ flexibleIps: unmarshalArrayOfObject(data.flexible_ips, unmarshalFlexibleIP),
70
+ totalCount: data.total_count
71
+ };
72
+ };
73
+ const marshalAttachFlexibleIPRequest = (request, defaults) => ({
74
+ fips_ids: request.fipsIds,
75
+ server_id: request.serverId
76
+ });
77
+ const marshalCreateFlexibleIPRequest = (request, defaults) => ({
78
+ description: request.description,
79
+ is_ipv6: request.isIpv6,
80
+ project_id: request.projectId ?? defaults.defaultProjectId,
81
+ reverse: request.reverse,
82
+ server_id: request.serverId,
83
+ tags: request.tags
84
+ });
85
+ const marshalDetachFlexibleIPRequest = (request, defaults) => ({
86
+ fips_ids: request.fipsIds
87
+ });
88
+ const marshalDuplicateMACAddrRequest = (request, defaults) => ({
89
+ duplicate_from_fip_id: request.duplicateFromFipId
90
+ });
91
+ const marshalGenerateMACAddrRequest = (request, defaults) => ({
92
+ mac_type: request.macType
93
+ });
94
+ const marshalMoveMACAddrRequest = (request, defaults) => ({
95
+ dst_fip_id: request.dstFipId
96
+ });
97
+ const marshalUpdateFlexibleIPRequest = (request, defaults) => ({
98
+ description: request.description,
99
+ reverse: request.reverse,
100
+ tags: request.tags
101
+ });
102
+ export {
103
+ marshalAttachFlexibleIPRequest,
104
+ marshalCreateFlexibleIPRequest,
105
+ marshalDetachFlexibleIPRequest,
106
+ marshalDuplicateMACAddrRequest,
107
+ marshalGenerateMACAddrRequest,
108
+ marshalMoveMACAddrRequest,
109
+ marshalUpdateFlexibleIPRequest,
110
+ unmarshalAttachFlexibleIPsResponse,
111
+ unmarshalDetachFlexibleIPsResponse,
112
+ unmarshalFlexibleIP,
113
+ unmarshalListFlexibleIPsResponse
114
+ };