// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../../core/resource'; import { APIPromise } from '../../../core/api-promise'; import { RequestOptions } from '../../../internal/request-options'; import { path } from '../../../internal/utils/path'; export class BaseAddressSpaces extends APIResource { static override readonly _key: readonly ['magicCloudNetworking', 'onRamps', 'addressSpaces'] = Object.freeze(['magicCloudNetworking', 'onRamps', 'addressSpaces'] as const); /** * Update the Magic WAN Address Space (Closed Beta). */ update(params: AddressSpaceUpdateParams, options?: RequestOptions): APIPromise { const { account_id, ...body } = params; return ( this._client.put(path`/accounts/${account_id}/magic/cloud/onramps/magic_wan_address_space`, { body, ...options, }) as APIPromise<{ result: AddressSpaceUpdateResponse }> )._thenUnwrap((obj) => obj.result); } /** * Read the Magic WAN Address Space (Closed Beta). */ list(params: AddressSpaceListParams, options?: RequestOptions): APIPromise { const { account_id } = params; return ( this._client.get( path`/accounts/${account_id}/magic/cloud/onramps/magic_wan_address_space`, options, ) as APIPromise<{ result: AddressSpaceListResponse }> )._thenUnwrap((obj) => obj.result); } /** * Update the Magic WAN Address Space (Closed Beta). */ edit(params: AddressSpaceEditParams, options?: RequestOptions): APIPromise { const { account_id, ...body } = params; return ( this._client.patch(path`/accounts/${account_id}/magic/cloud/onramps/magic_wan_address_space`, { body, ...options, }) as APIPromise<{ result: AddressSpaceEditResponse }> )._thenUnwrap((obj) => obj.result); } } export class AddressSpaces extends BaseAddressSpaces {} export interface AddressSpaceUpdateResponse { prefixes: Array; } export interface AddressSpaceListResponse { prefixes: Array; } export interface AddressSpaceEditResponse { prefixes: Array; } export interface AddressSpaceUpdateParams { /** * Path param */ account_id: string; /** * Body param */ prefixes: Array; } export interface AddressSpaceListParams { account_id: string; } export interface AddressSpaceEditParams { /** * Path param */ account_id: string; /** * Body param */ prefixes: Array; } export declare namespace AddressSpaces { export { type AddressSpaceUpdateResponse as AddressSpaceUpdateResponse, type AddressSpaceListResponse as AddressSpaceListResponse, type AddressSpaceEditResponse as AddressSpaceEditResponse, type AddressSpaceUpdateParams as AddressSpaceUpdateParams, type AddressSpaceListParams as AddressSpaceListParams, type AddressSpaceEditParams as AddressSpaceEditParams, }; }