From 126b33983d92ab65ab08444e1263c5ef978bf5e8 Mon Sep 17 00:00:00 2001 From: scaleway-bot Date: Wed, 26 Mar 2025 15:14:06 +0000 Subject: [PATCH] feat: update generated APIs --- .../src/api/interlink/v1beta1/api.gen.ts | 138 +++++++++++- .../src/api/interlink/v1beta1/content.gen.ts | 10 + .../src/api/interlink/v1beta1/index.gen.ts | 11 + .../api/interlink/v1beta1/marshalling.gen.ts | 106 ++++++++- .../src/api/interlink/v1beta1/types.gen.ts | 212 ++++++++++++++---- .../interlink/v1beta1/validation-rules.gen.ts | 17 ++ 6 files changed, 438 insertions(+), 56 deletions(-) create mode 100644 packages/clients/src/api/interlink/v1beta1/content.gen.ts diff --git a/packages/clients/src/api/interlink/v1beta1/api.gen.ts b/packages/clients/src/api/interlink/v1beta1/api.gen.ts index 19c8d71fd..3d8348729 100644 --- a/packages/clients/src/api/interlink/v1beta1/api.gen.ts +++ b/packages/clients/src/api/interlink/v1beta1/api.gen.ts @@ -5,8 +5,13 @@ import { enrichForPagination, urlParams, validatePathParam, + waitForResource, } from '@scaleway/sdk-client' -import type { Region as ScwRegion } from '@scaleway/sdk-client' +import type { Region as ScwRegion, WaitForOptions } from '@scaleway/sdk-client' +import { + DEDICATED_CONNECTION_TRANSIENT_STATUSES as DEDICATED_CONNECTION_TRANSIENT_STATUSES_INTERLINK, + LINK_TRANSIENT_STATUSES as LINK_TRANSIENT_STATUSES_INTERLINK, +} from './content.gen' import { marshalAttachRoutingPolicyRequest, marshalAttachVpcRequest, @@ -14,7 +19,9 @@ import { marshalCreateRoutingPolicyRequest, marshalUpdateLinkRequest, marshalUpdateRoutingPolicyRequest, + unmarshalDedicatedConnection, unmarshalLink, + unmarshalListDedicatedConnectionsResponse, unmarshalListLinksResponse, unmarshalListPartnersResponse, unmarshalListPopsResponse, @@ -28,17 +35,21 @@ import type { AttachVpcRequest, CreateLinkRequest, CreateRoutingPolicyRequest, + DedicatedConnection, DeleteLinkRequest, DeleteRoutingPolicyRequest, DetachRoutingPolicyRequest, DetachVpcRequest, DisableRoutePropagationRequest, EnableRoutePropagationRequest, + GetDedicatedConnectionRequest, GetLinkRequest, GetPartnerRequest, GetPopRequest, GetRoutingPolicyRequest, Link, + ListDedicatedConnectionsRequest, + ListDedicatedConnectionsResponse, ListLinksRequest, ListLinksResponse, ListPartnersRequest, @@ -72,6 +83,91 @@ export class API extends ParentAPI { 'pl-waw', ] + protected pageOfListDedicatedConnections = ( + request: Readonly = {}, + ) => + this.client.fetch( + { + method: 'GET', + path: `/interlink/v1beta1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/dedicated-connections`, + urlParams: urlParams( + ['bandwidth_mbps', request.bandwidthMbps], + ['name', request.name], + ['order_by', request.orderBy], + ['organization_id', request.organizationId], + ['page', request.page], + [ + 'page_size', + request.pageSize ?? this.client.settings.defaultPageSize, + ], + ['pop_id', request.popId], + ['project_id', request.projectId], + ['status', request.status], + ['tags', request.tags], + ), + }, + unmarshalListDedicatedConnectionsResponse, + ) + + /** + * List dedicated connections. For self-hosted users, list their dedicated + * physical connections in a given region. By default, the connections + * returned in the list are ordered by name in ascending order, though this + * can be modified via the `order_by` field. + * + * @param request - The request {@link ListDedicatedConnectionsRequest} + * @returns A Promise of ListDedicatedConnectionsResponse + */ + listDedicatedConnections = ( + request: Readonly = {}, + ) => + enrichForPagination( + 'connections', + this.pageOfListDedicatedConnections, + request, + ) + + /** + * Get a dedicated connection. For self-hosted users, get a dedicated physical + * connection corresponding to the given ID. The response object includes + * information such as the connection's name, status and total bandwidth. + * + * @param request - The request {@link GetDedicatedConnectionRequest} + * @returns A Promise of DedicatedConnection + */ + getDedicatedConnection = (request: Readonly) => + this.client.fetch( + { + method: 'GET', + path: `/interlink/v1beta1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/dedicated-connections/${validatePathParam('connectionId', request.connectionId)}`, + }, + unmarshalDedicatedConnection, + ) + + /** + * Waits for {@link DedicatedConnection} to be in a final state. + * + * @param request - The request {@link GetDedicatedConnectionRequest} + * @param options - The waiting options + * @returns A Promise of DedicatedConnection + */ + waitForDedicatedConnection = ( + request: Readonly, + options?: Readonly>, + ) => + waitForResource( + options?.stop ?? + (res => + Promise.resolve( + !DEDICATED_CONNECTION_TRANSIENT_STATUSES_INTERLINK.includes( + res.status, + ), + )), + this.getDedicatedConnection, + request, + options, + ) + protected pageOfListPartners = ( request: Readonly = {}, ) => @@ -126,6 +222,7 @@ export class API extends ParentAPI { method: 'GET', path: `/interlink/v1beta1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/pops`, urlParams: urlParams( + ['dedicated_available', request.dedicatedAvailable], ['hosting_provider_name', request.hostingProviderName], ['link_bandwidth_mbps', request.linkBandwidthMbps], ['name', request.name], @@ -176,6 +273,8 @@ export class API extends ParentAPI { ['bandwidth_mbps', request.bandwidthMbps], ['bgp_v4_status', request.bgpV4Status], ['bgp_v6_status', request.bgpV6Status], + ['connection_id', request.connectionId], + ['kind', request.kind], ['name', request.name], ['order_by', request.orderBy], ['organization_id', request.organizationId], @@ -208,9 +307,9 @@ export class API extends ParentAPI { enrichForPagination('links', this.pageOfListLinks, request) /** - * Get a link. Get a link (InterLink connection) for the given link ID. The - * response object includes information about the link's various configuration - * details. + * Get a link. Get a link (InterLink session / logical InterLink resource) for + * the given link ID. The response object includes information about the + * link's various configuration details. * * @param request - The request {@link GetLinkRequest} * @returns A Promise of Link @@ -225,10 +324,33 @@ export class API extends ParentAPI { ) /** - * Create a link. Create a link (InterLink connection) in a given PoP, - * specifying its various configuration details. For the moment only hosted - * links (faciliated by partners) are available, though in the future - * dedicated and shared links will also be possible. + * Waits for {@link Link} to be in a final state. + * + * @param request - The request {@link GetLinkRequest} + * @param options - The waiting options + * @returns A Promise of Link + */ + waitForLink = ( + request: Readonly, + options?: Readonly>, + ) => + waitForResource( + options?.stop ?? + (res => + Promise.resolve( + !LINK_TRANSIENT_STATUSES_INTERLINK.includes(res.status), + )), + this.getLink, + request, + options, + ) + + /** + * Create a link. Create a link (InterLink session / logical InterLink + * resource) in a given PoP, specifying its various configuration details. + * Links can either be hosted (faciliated by partners' shared physical + * connections) or self-hosted (for users who have purchased a dedicated + * physical connection). * * @param request - The request {@link CreateLinkRequest} * @returns A Promise of Link diff --git a/packages/clients/src/api/interlink/v1beta1/content.gen.ts b/packages/clients/src/api/interlink/v1beta1/content.gen.ts new file mode 100644 index 000000000..f22227890 --- /dev/null +++ b/packages/clients/src/api/interlink/v1beta1/content.gen.ts @@ -0,0 +1,10 @@ +// This file was automatically generated. DO NOT EDIT. +// If you have any remark or suggestion do not hesitate to open an issue. +import type { DedicatedConnectionStatus, LinkStatus } from './types.gen' + +/** Lists transient statutes of the enum {@link DedicatedConnectionStatus}. */ +export const DEDICATED_CONNECTION_TRANSIENT_STATUSES: DedicatedConnectionStatus[] = + ['configuring'] + +/** Lists transient statutes of the enum {@link LinkStatus}. */ +export const LINK_TRANSIENT_STATUSES: LinkStatus[] = ['configuring'] diff --git a/packages/clients/src/api/interlink/v1beta1/index.gen.ts b/packages/clients/src/api/interlink/v1beta1/index.gen.ts index 710cd67c6..18d6a4de4 100644 --- a/packages/clients/src/api/interlink/v1beta1/index.gen.ts +++ b/packages/clients/src/api/interlink/v1beta1/index.gen.ts @@ -1,24 +1,33 @@ // This file was automatically generated. DO NOT EDIT. // If you have any remark or suggestion do not hesitate to open an issue. export { API } from './api.gen' +export * from './content.gen' export type { AttachRoutingPolicyRequest, AttachVpcRequest, + BgpConfig, BgpStatus, CreateLinkRequest, CreateRoutingPolicyRequest, + DedicatedConnection, + DedicatedConnectionStatus, DeleteLinkRequest, DeleteRoutingPolicyRequest, DetachRoutingPolicyRequest, DetachVpcRequest, DisableRoutePropagationRequest, EnableRoutePropagationRequest, + GetDedicatedConnectionRequest, GetLinkRequest, GetPartnerRequest, GetPopRequest, GetRoutingPolicyRequest, Link, + LinkKind, LinkStatus, + ListDedicatedConnectionsRequest, + ListDedicatedConnectionsRequestOrderBy, + ListDedicatedConnectionsResponse, ListLinksRequest, ListLinksRequestOrderBy, ListLinksResponse, @@ -32,8 +41,10 @@ export type { ListRoutingPoliciesRequestOrderBy, ListRoutingPoliciesResponse, Partner, + PartnerHost, Pop, RoutingPolicy, + SelfHost, UpdateLinkRequest, UpdateRoutingPolicyRequest, } from './types.gen' diff --git a/packages/clients/src/api/interlink/v1beta1/marshalling.gen.ts b/packages/clients/src/api/interlink/v1beta1/marshalling.gen.ts index 502b9061a..64f7f6768 100644 --- a/packages/clients/src/api/interlink/v1beta1/marshalling.gen.ts +++ b/packages/clients/src/api/interlink/v1beta1/marshalling.gen.ts @@ -10,20 +10,91 @@ import type { DefaultValues } from '@scaleway/sdk-client' import type { AttachRoutingPolicyRequest, AttachVpcRequest, + BgpConfig, CreateLinkRequest, CreateRoutingPolicyRequest, + DedicatedConnection, Link, + ListDedicatedConnectionsResponse, ListLinksResponse, ListPartnersResponse, ListPopsResponse, ListRoutingPoliciesResponse, Partner, + PartnerHost, Pop, RoutingPolicy, + SelfHost, UpdateLinkRequest, UpdateRoutingPolicyRequest, } from './types.gen' +export const unmarshalDedicatedConnection = ( + data: unknown, +): DedicatedConnection => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'DedicatedConnection' failed as data isn't a dictionary.`, + ) + } + + return { + availableLinkBandwidths: data.available_link_bandwidths, + bandwidthMbps: data.bandwidth_mbps, + createdAt: unmarshalDate(data.created_at), + demarcationInfo: data.demarcation_info, + id: data.id, + name: data.name, + organizationId: data.organization_id, + popId: data.pop_id, + projectId: data.project_id, + region: data.region, + status: data.status, + tags: data.tags, + updatedAt: unmarshalDate(data.updated_at), + } as DedicatedConnection +} + +const unmarshalBgpConfig = (data: unknown): BgpConfig => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'BgpConfig' failed as data isn't a dictionary.`, + ) + } + + return { + asn: data.asn, + ipv4: data.ipv4, + ipv6: data.ipv6, + } as BgpConfig +} + +const unmarshalPartnerHost = (data: unknown): PartnerHost => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'PartnerHost' failed as data isn't a dictionary.`, + ) + } + + return { + disapprovedReason: data.disapproved_reason, + pairingKey: data.pairing_key, + partnerId: data.partner_id, + } as PartnerHost +} + +const unmarshalSelfHost = (data: unknown): SelfHost => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'SelfHost' failed as data isn't a dictionary.`, + ) + } + + return { + connectionId: data.connection_id, + } as SelfHost +} + export const unmarshalLink = (data: unknown): Link => { if (!isJSONObject(data)) { throw new TypeError( @@ -36,20 +107,26 @@ export const unmarshalLink = (data: unknown): Link => { bgpV4Status: data.bgp_v4_status, bgpV6Status: data.bgp_v6_status, createdAt: unmarshalDate(data.created_at), - disapprovedReason: data.disapproved_reason, enableRoutePropagation: data.enable_route_propagation, id: data.id, name: data.name, organizationId: data.organization_id, - pairingKey: data.pairing_key, - partnerId: data.partner_id, + partner: data.partner ? unmarshalPartnerHost(data.partner) : undefined, + peerBgpConfig: data.peer_bgp_config + ? unmarshalBgpConfig(data.peer_bgp_config) + : undefined, popId: data.pop_id, projectId: data.project_id, region: data.region, routingPolicyId: data.routing_policy_id, + scwBgpConfig: data.scw_bgp_config + ? unmarshalBgpConfig(data.scw_bgp_config) + : undefined, + self: data.self ? unmarshalSelfHost(data.self) : undefined, status: data.status, tags: data.tags, updatedAt: unmarshalDate(data.updated_at), + vlan: data.vlan, vpcId: data.vpc_id, } as Link } @@ -112,6 +189,24 @@ export const unmarshalRoutingPolicy = (data: unknown): RoutingPolicy => { } as RoutingPolicy } +export const unmarshalListDedicatedConnectionsResponse = ( + data: unknown, +): ListDedicatedConnectionsResponse => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'ListDedicatedConnectionsResponse' failed as data isn't a dictionary.`, + ) + } + + return { + connections: unmarshalArrayOfObject( + data.connections, + unmarshalDedicatedConnection, + ), + totalCount: data.total_count, + } as ListDedicatedConnectionsResponse +} + export const unmarshalListLinksResponse = ( data: unknown, ): ListLinksResponse => { @@ -196,9 +291,8 @@ export const marshalCreateLinkRequest = ( pop_id: request.popId, project_id: request.projectId ?? defaults.defaultProjectId, tags: request.tags, - ...resolveOneOf([ - { param: 'dedicated', value: request.dedicated }, - { param: 'port_id', value: request.portId }, + ...resolveOneOf([ + { param: 'connection_id', value: request.connectionId }, { param: 'partner_id', value: request.partnerId }, ]), }) diff --git a/packages/clients/src/api/interlink/v1beta1/types.gen.ts b/packages/clients/src/api/interlink/v1beta1/types.gen.ts index cb888752e..a9a2e152f 100644 --- a/packages/clients/src/api/interlink/v1beta1/types.gen.ts +++ b/packages/clients/src/api/interlink/v1beta1/types.gen.ts @@ -4,6 +4,18 @@ import type { Region as ScwRegion } from '@scaleway/sdk-client' export type BgpStatus = 'unknown_bgp_status' | 'up' | 'down' +export type DedicatedConnectionStatus = + | 'unknown_status' + | 'created' + | 'configuring' + | 'failed' + | 'active' + | 'disabled' + | 'deleted' + | 'locked' + +export type LinkKind = 'hosted' | 'self_hosted' + export type LinkStatus = | 'unknown_link_status' | 'configuring' @@ -19,6 +31,16 @@ export type LinkStatus = | 'deleted' | 'locked' +export type ListDedicatedConnectionsRequestOrderBy = + | 'created_at_asc' + | 'created_at_desc' + | 'updated_at_asc' + | 'updated_at_desc' + | 'name_asc' + | 'name_desc' + | 'status_asc' + | 'status_desc' + export type ListLinksRequestOrderBy = | 'created_at_asc' | 'created_at_desc' @@ -37,6 +59,66 @@ export type ListRoutingPoliciesRequestOrderBy = | 'name_asc' | 'name_desc' +export interface BgpConfig { + /** AS Number of the BGP peer. */ + asn: number + /** IPv4 address of the BGP peer. */ + ipv4: string + /** IPv6 address of the BGP peer. */ + ipv6: string +} + +export interface PartnerHost { + /** ID of the partner facilitating the link. */ + partnerId: string + /** Used to identify a link from a user or partner's point of view. */ + pairingKey: string + /** + * Reason given by partner to explain why they did not approve the request for + * a hosted link. + */ + disapprovedReason?: string +} + +export interface SelfHost { + /** Dedicated physical connection supporting the link. */ + connectionId: string +} + +export interface DedicatedConnection { + /** Unique identifier of the dedicated connection. */ + id: string + /** Project ID. */ + projectId: string + /** Organization ID. */ + organizationId: string + /** Status of the dedicated connection. */ + status: DedicatedConnectionStatus + /** Name of the dedicated connection. */ + name: string + /** List of tags associated with the dedicated connection. */ + tags: string[] + /** ID of the PoP where the dedicated connection is located. */ + popId: string + /** Bandwidth size of the dedicated connection. */ + bandwidthMbps: number + /** Size of the links supported on this dedicated connection. */ + availableLinkBandwidths: number[] + /** Creation date of the dedicated connection. */ + createdAt?: Date + /** Last modification date of the dedicated connection. */ + updatedAt?: Date + /** + * Demarcation details required by the data center to set up the supporting + * Cross Connect. This generally includes the physical space in the facility, + * the cabinet or rack the connection should land in, the patch panel to go + * in, the port designation, and the media type. + */ + demarcationInfo?: string + /** Region of the dedicated connection. */ + region: ScwRegion +} + export interface Link { /** Unique identifier of the link. */ id: string @@ -48,10 +130,8 @@ export interface Link { name: string /** List of tags associated with the link. */ tags: string[] - /** ID of the PoP where the link's corresponding port is located. */ + /** ID of the PoP where the link's corresponding connection is located. */ popId: string - /** ID of the partner facilitating this link. */ - partnerId?: string /** Rate limited bandwidth of the link. */ bandwidthMbps: number /** Status of the link. */ @@ -73,13 +153,24 @@ export interface Link { createdAt?: Date /** Last modification date of the link. */ updatedAt?: Date - /** Used to identify a link from a user or partner's point of view. */ - pairingKey: string /** - * Reason given by partner to explain why they did not approve the request for - * a hosted link. + * Partner host information. + * + * One-of ('hostInfo'): at most one of 'partner', 'self' could be set. */ - disapprovedReason?: string + partner?: PartnerHost + /** + * Self-host information. + * + * One-of ('hostInfo'): at most one of 'partner', 'self' could be set. + */ + self?: SelfHost + /** VLAN of the link. */ + vlan: number + /** BGP configuration on Scaleway's side. */ + scwBgpConfig?: BgpConfig + /** BGP configuration on peer's side (on-premises or other hosting provider). */ + peerBgpConfig?: BgpConfig /** Region of the link. */ region: ScwRegion } @@ -118,8 +209,8 @@ export interface Pop { /** Image URL of the PoP's logo. */ logoUrl: string /** - * Available bandwidth in Mbits/s for future hosted_links from available ports - * in this PoP. + * Available bandwidth in Mbits/s for future hosted links from available + * connections in this PoP. */ availableLinkBandwidthsMbps: number[] /** Region of the PoP. */ @@ -192,40 +283,23 @@ export type CreateLinkRequest = { popId: string /** * Desired bandwidth for the link. Must be compatible with available link - * bandwidths and remaining bandwidth capacity of the port. + * bandwidths and remaining bandwidth capacity of the connection. */ bandwidthMbps: number /** - * If true, a dedicated link (1 link per port, dedicated to one customer) will - * be crated. It is not necessary to specify a `port_id` or `partner_id`. A - * new port will created and assigned to the link. Note that Scaleway has not - * yet enabled the creation of dedicated links, this field is reserved for - * future use. - * - * One-of ('linkKind'): at most one of 'dedicated', 'portId', 'partnerId' - * could be set. - */ - dedicated?: boolean - /** - * If set, a shared link (N links per port, one of which is this customer's - * port) will be created. As the customer, specify the ID of the port you - * already have for this link. Note that shared links are not currently - * available. Note that Scaleway has not yet enabled the creation of shared - * links, this field is reserved for future use. + * If set, creates a self-hosted link using this dedicated physical + * connection. As the customer, specify the ID of the physical connection you + * already have for this link. * - * One-of ('linkKind'): at most one of 'dedicated', 'portId', 'partnerId' - * could be set. + * One-of ('host'): at most one of 'connectionId', 'partnerId' could be set. */ - portId?: string + connectionId?: string /** - * If set, a hosted link (N links per port on a partner port) will be created. - * Specify the ID of the chosen partner, who already has a shareable port with - * available bandwidth. Note that this is currently the only type of link - * offered by Scaleway, and therefore this field must be set when creating a - * link. + * If set, creates a hosted link on a partner's connection. Specify the ID of + * the chosen partner, who already has a shared connection with available + * bandwidth. * - * One-of ('linkKind'): at most one of 'dedicated', 'portId', 'partnerId' - * could be set. + * One-of ('host'): at most one of 'connectionId', 'partnerId' could be set. */ partnerId?: string } @@ -311,6 +385,16 @@ export type EnableRoutePropagationRequest = { linkId: string } +export type GetDedicatedConnectionRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: ScwRegion + /** ID of connection to get. */ + connectionId: string +} + export type GetLinkRequest = { /** * Region to target. If none is passed will use default region from the @@ -351,6 +435,41 @@ export type GetRoutingPolicyRequest = { routingPolicyId: string } +export type ListDedicatedConnectionsRequest = { + /** + * Region to target. If none is passed will use default region from the + * config. + */ + region?: ScwRegion + /** Order in which to return results. */ + orderBy?: ListDedicatedConnectionsRequestOrderBy + /** Page number to return. */ + page?: number + /** Maximum number of connections to return per page. */ + pageSize?: number + /** Project ID to filter for. */ + projectId?: string + /** Organization ID to filter for. */ + organizationId?: string + /** Link name to filter for. */ + name?: string + /** Tags to filter for. */ + tags?: string[] + /** Connection status to filter for. */ + status?: DedicatedConnectionStatus + /** Filter for dedicated connections with this bandwidth size. */ + bandwidthMbps?: number + /** Filter for dedicated connections present in this PoP. */ + popId?: string +} + +export interface ListDedicatedConnectionsResponse { + /** List of connections on current page. */ + connections: DedicatedConnection[] + /** Total number of connections returned. */ + totalCount: number +} + export type ListLinksRequest = { /** * Region to target. If none is passed will use default region from the @@ -377,7 +496,7 @@ export type ListLinksRequest = { bgpV4Status?: BgpStatus /** BGP IPv6 status to filter for. */ bgpV6Status?: BgpStatus - /** Filter for links attached to this PoP (via ports). */ + /** Filter for links attached to this PoP (via connections). */ popId?: string /** Filter for link bandwidth (in Mbps). */ bandwidthMbps?: number @@ -389,6 +508,10 @@ export type ListLinksRequest = { routingPolicyId?: string /** Filter for the link with this pairing_key. */ pairingKey?: string + /** Filter for hosted or self-hosted links. */ + kind?: LinkKind + /** Filter for links self-hosted on this connection. */ + connectionId?: string } export interface ListLinksResponse { @@ -410,7 +533,7 @@ export type ListPartnersRequest = { page?: number /** Maximum number of partners to return per page. */ pageSize?: number - /** Filter for partners present (offering a port) in one of these PoPs. */ + /** Filter for partners present (offering a connection) in one of these PoPs. */ popIds?: string[] } @@ -437,13 +560,18 @@ export type ListPopsRequest = { name?: string /** Hosting provider name to filter for. */ hostingProviderName?: string - /** Filter for PoPs hosting an available shared port from this partner. */ + /** Filter for PoPs hosting an available shared connection from this partner. */ partnerId?: string /** - * Filter for PoPs with a shared port allowing this bandwidth size. Note that - * we cannot guarantee that PoPs returned will have available capacity. + * Filter for PoPs with a shared connection allowing this bandwidth size. Note + * that we cannot guarantee that PoPs returned will have available capacity. */ linkBandwidthMbps?: number + /** + * Filter for PoPs with a dedicated connection available for self-hosted + * links. + */ + dedicatedAvailable?: boolean } export interface ListPopsResponse { diff --git a/packages/clients/src/api/interlink/v1beta1/validation-rules.gen.ts b/packages/clients/src/api/interlink/v1beta1/validation-rules.gen.ts index 40202ea39..e1bfad75f 100644 --- a/packages/clients/src/api/interlink/v1beta1/validation-rules.gen.ts +++ b/packages/clients/src/api/interlink/v1beta1/validation-rules.gen.ts @@ -1,6 +1,13 @@ // This file was automatically generated. DO NOT EDIT. // If you have any remark or suggestion do not hesitate to open an issue. +export const BgpConfig = { + asn: { + greaterThanOrEqual: 1, + lessThanOrEqual: 65534, + }, +} + export const CreateLinkRequest = { bandwidthMbps: { greaterThanOrEqual: 1, @@ -25,6 +32,16 @@ export const Link = { }, } +export const ListDedicatedConnectionsRequest = { + page: { + greaterThanOrEqual: 1, + }, + pageSize: { + greaterThanOrEqual: 1, + lessThanOrEqual: 1000, + }, +} + export const ListLinksRequest = { page: { greaterThanOrEqual: 1,