Skip to content

Commit 5bafa75

Browse files
committed
as prepends added to direct link with unit test cases
Signed-off-by: Sridhar G K <[email protected]>
1 parent 9922794 commit 5bafa75

File tree

2 files changed

+454
-10
lines changed

2 files changed

+454
-10
lines changed

direct-link/v1.ts

Lines changed: 243 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* (C) Copyright IBM Corp. 2021, 2022.
2+
* (C) Copyright IBM Corp. 2022.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
1515
*/
1616

1717
/**
18-
* IBM OpenAPI SDK Code Generator Version: 3.43.0-49eab5c7-20211117-152138
18+
* IBM OpenAPI SDK Code Generator Version: 3.60.2-95dc7721-20221102-203229
1919
*/
2020

2121
import * as extend from 'extend';
@@ -105,6 +105,134 @@ class DirectLinkV1 extends BaseService {
105105
this.version = options.version;
106106
}
107107

108+
/*************************
109+
* gatewayASPrepends
110+
************************/
111+
112+
/**
113+
* List AS Prepends.
114+
*
115+
* Retrieve all AS Prepends for the specified Direct Link gateway.
116+
*
117+
* @param {Object} params - The parameters to send to the service.
118+
* @param {string} params.gatewayId - Direct Link gateway identifier.
119+
* @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
120+
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.AsPrependCollection>>}
121+
*/
122+
public listGatewayAsPrepends(
123+
params: DirectLinkV1.ListGatewayAsPrependsParams
124+
): Promise<DirectLinkV1.Response<DirectLinkV1.AsPrependCollection>> {
125+
const _params = { ...params };
126+
const requiredParams = ['gatewayId'];
127+
128+
const missingParams = getMissingParams(_params, requiredParams);
129+
if (missingParams) {
130+
return Promise.reject(missingParams);
131+
}
132+
133+
const query = {
134+
'version': this.version,
135+
};
136+
137+
const path = {
138+
'gateway_id': _params.gatewayId,
139+
};
140+
141+
const sdkHeaders = getSdkHeaders(
142+
DirectLinkV1.DEFAULT_SERVICE_NAME,
143+
'v1',
144+
'listGatewayAsPrepends'
145+
);
146+
147+
const parameters = {
148+
options: {
149+
url: '/gateways/{gateway_id}/as_prepends',
150+
method: 'GET',
151+
qs: query,
152+
path,
153+
},
154+
defaultOptions: extend(true, {}, this.baseOptions, {
155+
headers: extend(
156+
true,
157+
sdkHeaders,
158+
{
159+
'Accept': 'application/json',
160+
},
161+
_params.headers
162+
),
163+
}),
164+
};
165+
166+
return this.createRequest(parameters);
167+
}
168+
169+
/**
170+
* Replace existing AS Prepends.
171+
*
172+
* Replace the given set of AS prepends on the specified gateway. Existing resources may be reused when the
173+
* individual AS Prepend item is unchanged.
174+
*
175+
* @param {Object} params - The parameters to send to the service.
176+
* @param {string} params.gatewayId - Direct Link gateway identifier.
177+
* @param {string} params.ifMatch - If present, the request will fail if the specified ETag value does not match the
178+
* resource's current ETag value.
179+
* @param {AsPrependPrefixArrayTemplate[]} [params.asPrepends] - array of AS Prepend configuration information.
180+
* @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
181+
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.AsPrependCollection>>}
182+
*/
183+
public replaceGatewayAsPrepends(
184+
params: DirectLinkV1.ReplaceGatewayAsPrependsParams
185+
): Promise<DirectLinkV1.Response<DirectLinkV1.AsPrependCollection>> {
186+
const _params = { ...params };
187+
const requiredParams = ['gatewayId', 'ifMatch'];
188+
189+
const missingParams = getMissingParams(_params, requiredParams);
190+
if (missingParams) {
191+
return Promise.reject(missingParams);
192+
}
193+
194+
const body = {
195+
'as_prepends': _params.asPrepends,
196+
};
197+
198+
const query = {
199+
'version': this.version,
200+
};
201+
202+
const path = {
203+
'gateway_id': _params.gatewayId,
204+
};
205+
206+
const sdkHeaders = getSdkHeaders(
207+
DirectLinkV1.DEFAULT_SERVICE_NAME,
208+
'v1',
209+
'replaceGatewayAsPrepends'
210+
);
211+
212+
const parameters = {
213+
options: {
214+
url: '/gateways/{gateway_id}/as_prepends',
215+
method: 'PUT',
216+
body,
217+
qs: query,
218+
path,
219+
},
220+
defaultOptions: extend(true, {}, this.baseOptions, {
221+
headers: extend(
222+
true,
223+
sdkHeaders,
224+
{
225+
'Accept': 'application/json',
226+
'Content-Type': 'application/json',
227+
'If-Match': _params.ifMatch,
228+
},
229+
_params.headers
230+
),
231+
}),
232+
};
233+
234+
return this.createRequest(parameters);
235+
}
108236
/*************************
109237
* gateways
110238
************************/
@@ -218,11 +346,11 @@ class DirectLinkV1 extends BaseService {
218346
* @param {Object} params - The parameters to send to the service.
219347
* @param {string} params.id - Direct Link gateway identifier.
220348
* @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
221-
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.Empty>>}
349+
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.EmptyObject>>}
222350
*/
223351
public deleteGateway(
224352
params: DirectLinkV1.DeleteGatewayParams
225-
): Promise<DirectLinkV1.Response<DirectLinkV1.Empty>> {
353+
): Promise<DirectLinkV1.Response<DirectLinkV1.EmptyObject>> {
226354
const _params = { ...params };
227355
const requiredParams = ['id'];
228356

@@ -459,6 +587,8 @@ class DirectLinkV1 extends BaseService {
459587
* @param {Object} params - The parameters to send to the service.
460588
* @param {string} params.id - Direct Link Connect gateway identifier.
461589
* @param {string} params.action - Action request.
590+
* @param {AsPrependTemplate[]} [params.asPrepends] - Applicable for create_gateway_approve requests to create AS
591+
* Prepends. Contains an array of AS Prepend configuration information.
462592
* @param {GatewayActionTemplateAuthenticationKey} [params.authenticationKey] - Applicable for create_gateway_approve
463593
* requests to select the gateway's BGP MD5 authentication key.
464594
* The key material that you provide must be base64 encoded and original string must be maximum 126 ASCII characters
@@ -498,6 +628,7 @@ class DirectLinkV1 extends BaseService {
498628

499629
const body = {
500630
'action': _params.action,
631+
'as_prepends': _params.asPrepends,
501632
'authentication_key': _params.authenticationKey,
502633
'bfd_config': _params.bfdConfig,
503634
'connection_mode': _params.connectionMode,
@@ -613,11 +744,11 @@ class DirectLinkV1 extends BaseService {
613744
* @param {NodeJS.ReadableStream | Buffer} [params.upload] - Completion notice PDF file.
614745
* @param {string} [params.uploadContentType] - The content type of upload.
615746
* @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
616-
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.Empty>>}
747+
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.EmptyObject>>}
617748
*/
618749
public createGatewayCompletionNotice(
619750
params: DirectLinkV1.CreateGatewayCompletionNoticeParams
620-
): Promise<DirectLinkV1.Response<DirectLinkV1.Empty>> {
751+
): Promise<DirectLinkV1.Response<DirectLinkV1.EmptyObject>> {
621752
const _params = { ...params };
622753
const requiredParams = ['id'];
623754

@@ -1279,11 +1410,11 @@ class DirectLinkV1 extends BaseService {
12791410
* @param {string} params.gatewayId - Direct Link gateway identifier.
12801411
* @param {string} params.id - The virtual connection identifier.
12811412
* @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
1282-
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.Empty>>}
1413+
* @returns {Promise<DirectLinkV1.Response<DirectLinkV1.EmptyObject>>}
12831414
*/
12841415
public deleteGatewayVirtualConnection(
12851416
params: DirectLinkV1.DeleteGatewayVirtualConnectionParams
1286-
): Promise<DirectLinkV1.Response<DirectLinkV1.Empty>> {
1417+
): Promise<DirectLinkV1.Response<DirectLinkV1.EmptyObject>> {
12871418
const _params = { ...params };
12881419
const requiredParams = ['gatewayId', 'id'];
12891420

@@ -1485,7 +1616,7 @@ namespace DirectLinkV1 {
14851616
export type Callback<T> = (error: any, response?: Response<T>) => void;
14861617

14871618
/** The body of a service request that returns no response data. */
1488-
export interface Empty {}
1619+
export interface EmptyObject {}
14891620

14901621
/** A standard JS object, defined to avoid the limitations of `Object` and `object` */
14911622
export interface JsonObject {
@@ -1496,6 +1627,26 @@ namespace DirectLinkV1 {
14961627
* request interfaces
14971628
************************/
14981629

1630+
/** Parameters for the `listGatewayAsPrepends` operation. */
1631+
export interface ListGatewayAsPrependsParams {
1632+
/** Direct Link gateway identifier. */
1633+
gatewayId: string;
1634+
headers?: OutgoingHttpHeaders;
1635+
}
1636+
1637+
/** Parameters for the `replaceGatewayAsPrepends` operation. */
1638+
export interface ReplaceGatewayAsPrependsParams {
1639+
/** Direct Link gateway identifier. */
1640+
gatewayId: string;
1641+
/** If present, the request will fail if the specified ETag value does not match the resource's current ETag
1642+
* value.
1643+
*/
1644+
ifMatch: string;
1645+
/** array of AS Prepend configuration information. */
1646+
asPrepends?: AsPrependPrefixArrayTemplate[];
1647+
headers?: OutgoingHttpHeaders;
1648+
}
1649+
14991650
/** Parameters for the `listGateways` operation. */
15001651
export interface ListGatewaysParams {
15011652
headers?: OutgoingHttpHeaders;
@@ -1617,6 +1768,10 @@ namespace DirectLinkV1 {
16171768
id: string;
16181769
/** Action request. */
16191770
action: CreateGatewayActionConstants.Action | string;
1771+
/** Applicable for create_gateway_approve requests to create AS Prepends. Contains an array of AS Prepend
1772+
* configuration information.
1773+
*/
1774+
asPrepends?: AsPrependTemplate[];
16201775
/** Applicable for create_gateway_approve requests to select the gateway's BGP MD5 authentication key.
16211776
* The key material that you provide must be base64 encoded and original string must be maximum 126 ASCII
16221777
* characters in length.
@@ -1884,6 +2039,80 @@ namespace DirectLinkV1 {
18842039
* model interfaces
18852040
************************/
18862041

2042+
/** Gateway AS Prepend object. */
2043+
export interface AsPrepend {
2044+
/** The date and time resource was created. */
2045+
created_at?: string;
2046+
/** The unique identifier for this AS Prepend. */
2047+
id?: string;
2048+
/** Number of times the ASN to appended to the AS Path. */
2049+
length?: number;
2050+
/** Route type this AS Prepend applies to. */
2051+
policy?: string;
2052+
/** Deprecated: Comma separated list of prefixes this AS Prepend applies to. If empty, this applies to all
2053+
* prefixes.
2054+
*/
2055+
prefix?: string;
2056+
/** Array of prefixes this AS Prepend applies to. This parameter is not returned when AS Prepend applies to all
2057+
* prefixes. Note that ordering is not significant and may differ from request order.
2058+
*/
2059+
specific_prefixes?: string[];
2060+
/** The date and time resource was last updated. */
2061+
updated_at?: string;
2062+
}
2063+
2064+
/** array of AS Prepends. */
2065+
export interface AsPrependCollection {
2066+
/** array of AS Prepend information. */
2067+
as_prepends?: AsPrependEntry[];
2068+
}
2069+
2070+
/** AS Prepends API object. */
2071+
export interface AsPrependEntry {
2072+
/** The date and time resource was created. */
2073+
created_at?: string;
2074+
/** The unique identifier for this AS Prepend. */
2075+
id?: string;
2076+
/** Number of times the ASN to appended to the AS Path. */
2077+
length?: number;
2078+
/** Route type this AS Prepend applies to. */
2079+
policy?: string;
2080+
/** Array of prefixes this AS Prepend applies to. This parameter is not returned when AS Prepend applies to all
2081+
* prefixes. Note that ordering is not significant and may differ from request order.
2082+
*/
2083+
specific_prefixes?: string[];
2084+
/** The date and time resource was last updated. */
2085+
updated_at?: string;
2086+
}
2087+
2088+
/** Create AS Prepend Configuration template. */
2089+
export interface AsPrependPrefixArrayTemplate {
2090+
/** Number of times the ASN to be prepended to the AS Path. */
2091+
length: number;
2092+
/** Route type this AS Prepend applies to. */
2093+
policy: string;
2094+
/** Array of prefixes this AS Prepend applies to. If this property is absent, the AS Prepend applies to all
2095+
* prefixes. Note that ordering is not significant and may differ from request order.
2096+
*/
2097+
specific_prefixes?: string[];
2098+
}
2099+
2100+
/** Create AS Prepend Configuration template. */
2101+
export interface AsPrependTemplate {
2102+
/** Number of times the ASN to be prepended to the AS Path. */
2103+
length: number;
2104+
/** Route type this AS Prepend applies to. */
2105+
policy: string;
2106+
/** Deprecated: Comma separated list of prefixes this AS Prepend applies to. Maximum of 10 prefixes. If not
2107+
* specified, this AS Prepend applies to all prefixes.
2108+
*/
2109+
prefix?: string;
2110+
/** Array of prefixes this AS Prepend applies to. If this property is absent, the AS Prepend applies to all
2111+
* prefixes.
2112+
*/
2113+
specific_prefixes?: string[];
2114+
}
2115+
18872116
/** Cross Connect Router details. */
18882117
export interface CrossConnectRouter {
18892118
/** Array of capabilities for this router. */
@@ -1896,6 +2125,8 @@ namespace DirectLinkV1 {
18962125

18972126
/** gateway. */
18982127
export interface Gateway {
2128+
/** array of AS Prepend information. */
2129+
as_prepends?: AsPrepend[];
18992130
/** The identity of the standard key to use for BGP MD5 authentication key.
19002131
* The key material that you provide must be base64 encoded and original string must be maximum 126 ASCII
19012132
* characters in length.
@@ -2268,11 +2499,14 @@ namespace DirectLinkV1 {
22682499

22692500
/** gateway status. */
22702501
export interface GatewayStatusCollection {
2502+
/** array of status. */
22712503
status?: GatewayStatus[];
22722504
}
22732505

22742506
/** Create gateway template. */
22752507
export interface GatewayTemplate {
2508+
/** array of AS Prepend configuration information. */
2509+
as_prepends?: AsPrependTemplate[];
22762510
/** The identity of the standard key to use for BGP MD5 authentication key.
22772511
* The key material that you provide must be base64 encoded and original string must be maximum 126 ASCII
22782512
* characters in length.

0 commit comments

Comments
 (0)