/* tslint:disable */ /* eslint-disable */ /** * Defined Networking API * <br/> <br/> This API enables automated administration of Defined Networking hosts, roles, logs, and more. To authenticate, obtain an api key to use as a bearer token from your Defined Networking admin panel [API Keys page](https://admin.defined.net/settings/api-keys). API keys must be given the appropriate permission scopes for every method and endpoint, as specified throughout this documentation. Please [contact us](https://www.defined.net/contact?reason=support) for any questions or issues. In the event of a token leak, please take care to [rotate the key](/guides/rotating-api-keys). <div className=\'introduction-end\'></div> * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { HostAndEnrollCodeCreate200Response, HostAndEnrollCodeCreate400Response, HostBlock200Response, HostCreate200Response, HostCreate400Response, HostCreateRequest, HostDelete200Response, HostEdit200Response, HostEditRequest, HostEnrollCodeCreate200Response, HostGet200Response, HostsList200Response, } from '../models'; import { HostAndEnrollCodeCreate200ResponseFromJSON, HostAndEnrollCodeCreate200ResponseToJSON, HostAndEnrollCodeCreate400ResponseFromJSON, HostAndEnrollCodeCreate400ResponseToJSON, HostBlock200ResponseFromJSON, HostBlock200ResponseToJSON, HostCreate200ResponseFromJSON, HostCreate200ResponseToJSON, HostCreate400ResponseFromJSON, HostCreate400ResponseToJSON, HostCreateRequestFromJSON, HostCreateRequestToJSON, HostDelete200ResponseFromJSON, HostDelete200ResponseToJSON, HostEdit200ResponseFromJSON, HostEdit200ResponseToJSON, HostEditRequestFromJSON, HostEditRequestToJSON, HostEnrollCodeCreate200ResponseFromJSON, HostEnrollCodeCreate200ResponseToJSON, HostGet200ResponseFromJSON, HostGet200ResponseToJSON, HostsList200ResponseFromJSON, HostsList200ResponseToJSON, } from '../models'; export interface HostAndEnrollCodeCreateRequest { hostCreateRequest: HostCreateRequest; } export interface HostBlockRequest { hostID: string; } export interface HostCreateOperationRequest { hostCreateRequest: HostCreateRequest; } export interface HostDeleteRequest { hostID: string; } export interface HostEditOperationRequest { hostID: string; hostEditRequest: HostEditRequest; } export interface HostEnrollCodeCreateRequest { hostID: string; } export interface HostGetRequest { hostID: string; } export interface HostsListRequest { includeCounts?: boolean; cursor?: string; pageSize?: number; filterIsBlocked?: boolean; filterIsLighthouse?: boolean; filterIsRelay?: boolean; filterMetadataLastSeenAt?: HostsListFilterMetadataLastSeenAtEnum; filterMetadataPlatform?: HostsListFilterMetadataPlatformEnum; filterMetadataUpdateAvailable?: boolean; } /** * */ export class HostsApi extends runtime.BaseAPI { /** * Token scopes required: `hosts:create`, `hosts:enroll` ### Request * Create host & enrollment code */ async hostAndEnrollCodeCreateRaw(requestParameters: HostAndEnrollCodeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostAndEnrollCodeCreate200Response>> { if (requestParameters.hostCreateRequest === null || requestParameters.hostCreateRequest === undefined) { throw new runtime.RequiredError('hostCreateRequest','Required parameter requestParameters.hostCreateRequest was null or undefined when calling hostAndEnrollCodeCreate.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/host-and-enrollment-code`, method: 'POST', headers: headerParameters, query: queryParameters, body: HostCreateRequestToJSON(requestParameters.hostCreateRequest), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostAndEnrollCodeCreate200ResponseFromJSON(jsonValue)); } /** * Token scopes required: `hosts:create`, `hosts:enroll` ### Request * Create host & enrollment code */ async hostAndEnrollCodeCreate(requestParameters: HostAndEnrollCodeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostAndEnrollCodeCreate200Response> { const response = await this.hostAndEnrollCodeCreateRaw(requestParameters, initOverrides); return await response.value(); } /** * Prevent a host from being able to interact with other nodes on your network. See https://www.defined.net/blog/blocklisting/ for more details. To unblock, re-enroll the host. Token scope required: `hosts:block` ### Request * Block host */ async hostBlockRaw(requestParameters: HostBlockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostBlock200Response>> { if (requestParameters.hostID === null || requestParameters.hostID === undefined) { throw new runtime.RequiredError('hostID','Required parameter requestParameters.hostID was null or undefined when calling hostBlock.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts/{hostID}/block`.replace(`{${"hostID"}}`, encodeURIComponent(String(requestParameters.hostID))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostBlock200ResponseFromJSON(jsonValue)); } /** * Prevent a host from being able to interact with other nodes on your network. See https://www.defined.net/blog/blocklisting/ for more details. To unblock, re-enroll the host. Token scope required: `hosts:block` ### Request * Block host */ async hostBlock(requestParameters: HostBlockRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostBlock200Response> { const response = await this.hostBlockRaw(requestParameters, initOverrides); return await response.value(); } /** * Create a new host, lighthouse, or relay. Token scope required: `hosts:create` ### Request * Create host */ async hostCreateRaw(requestParameters: HostCreateOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostCreate200Response>> { if (requestParameters.hostCreateRequest === null || requestParameters.hostCreateRequest === undefined) { throw new runtime.RequiredError('hostCreateRequest','Required parameter requestParameters.hostCreateRequest was null or undefined when calling hostCreate.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts`, method: 'POST', headers: headerParameters, query: queryParameters, body: HostCreateRequestToJSON(requestParameters.hostCreateRequest), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostCreate200ResponseFromJSON(jsonValue)); } /** * Create a new host, lighthouse, or relay. Token scope required: `hosts:create` ### Request * Create host */ async hostCreate(requestParameters: HostCreateOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostCreate200Response> { const response = await this.hostCreateRaw(requestParameters, initOverrides); return await response.value(); } /** * Token scope required: `hosts:delete` ### Request * Delete host */ async hostDeleteRaw(requestParameters: HostDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostDelete200Response>> { if (requestParameters.hostID === null || requestParameters.hostID === undefined) { throw new runtime.RequiredError('hostID','Required parameter requestParameters.hostID was null or undefined when calling hostDelete.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts/{hostID}`.replace(`{${"hostID"}}`, encodeURIComponent(String(requestParameters.hostID))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostDelete200ResponseFromJSON(jsonValue)); } /** * Token scope required: `hosts:delete` ### Request * Delete host */ async hostDelete(requestParameters: HostDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostDelete200Response> { const response = await this.hostDeleteRaw(requestParameters, initOverrides); return await response.value(); } /** * Token scope required: `hosts:update` :::caution Any properties not provided in the request will be reset to their default values. ::: ### Request * Edit host */ async hostEditRaw(requestParameters: HostEditOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostEdit200Response>> { if (requestParameters.hostID === null || requestParameters.hostID === undefined) { throw new runtime.RequiredError('hostID','Required parameter requestParameters.hostID was null or undefined when calling hostEdit.'); } if (requestParameters.hostEditRequest === null || requestParameters.hostEditRequest === undefined) { throw new runtime.RequiredError('hostEditRequest','Required parameter requestParameters.hostEditRequest was null or undefined when calling hostEdit.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts/{hostID}`.replace(`{${"hostID"}}`, encodeURIComponent(String(requestParameters.hostID))), method: 'PUT', headers: headerParameters, query: queryParameters, body: HostEditRequestToJSON(requestParameters.hostEditRequest), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostEdit200ResponseFromJSON(jsonValue)); } /** * Token scope required: `hosts:update` :::caution Any properties not provided in the request will be reset to their default values. ::: ### Request * Edit host */ async hostEdit(requestParameters: HostEditOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostEdit200Response> { const response = await this.hostEditRaw(requestParameters, initOverrides); return await response.value(); } /** * Obtain a code that can be used with the `dnclient enroll` command on a host, lighthouse, or relay to enroll it into your Managed Nebula network. Token scope required: `hosts:enroll` ### Request * Create enrollment code */ async hostEnrollCodeCreateRaw(requestParameters: HostEnrollCodeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostEnrollCodeCreate200Response>> { if (requestParameters.hostID === null || requestParameters.hostID === undefined) { throw new runtime.RequiredError('hostID','Required parameter requestParameters.hostID was null or undefined when calling hostEnrollCodeCreate.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts/{hostID}/enrollment-code`.replace(`{${"hostID"}}`, encodeURIComponent(String(requestParameters.hostID))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostEnrollCodeCreate200ResponseFromJSON(jsonValue)); } /** * Obtain a code that can be used with the `dnclient enroll` command on a host, lighthouse, or relay to enroll it into your Managed Nebula network. Token scope required: `hosts:enroll` ### Request * Create enrollment code */ async hostEnrollCodeCreate(requestParameters: HostEnrollCodeCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostEnrollCodeCreate200Response> { const response = await this.hostEnrollCodeCreateRaw(requestParameters, initOverrides); return await response.value(); } /** * Fetch information about a particular host, lighthouse, or relay. Token scope required: `hosts:read` ### Request * Get host */ async hostGetRaw(requestParameters: HostGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostGet200Response>> { if (requestParameters.hostID === null || requestParameters.hostID === undefined) { throw new runtime.RequiredError('hostID','Required parameter requestParameters.hostID was null or undefined when calling hostGet.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts/{hostID}`.replace(`{${"hostID"}}`, encodeURIComponent(String(requestParameters.hostID))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostGet200ResponseFromJSON(jsonValue)); } /** * Fetch information about a particular host, lighthouse, or relay. Token scope required: `hosts:read` ### Request * Get host */ async hostGet(requestParameters: HostGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostGet200Response> { const response = await this.hostGetRaw(requestParameters, initOverrides); return await response.value(); } /** * Get a paginated list of hosts, lighthouses, and relays. Token scope required: `hosts:list` ### Request * List hosts */ async hostsListRaw(requestParameters: HostsListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostsList200Response>> { const queryParameters: any = {}; if (requestParameters.includeCounts !== undefined) { queryParameters['includeCounts'] = requestParameters.includeCounts; } if (requestParameters.cursor !== undefined) { queryParameters['cursor'] = requestParameters.cursor; } if (requestParameters.pageSize !== undefined) { queryParameters['pageSize'] = requestParameters.pageSize; } if (requestParameters.filterIsBlocked !== undefined) { queryParameters['filter.isBlocked'] = requestParameters.filterIsBlocked; } if (requestParameters.filterIsLighthouse !== undefined) { queryParameters['filter.isLighthouse'] = requestParameters.filterIsLighthouse; } if (requestParameters.filterIsRelay !== undefined) { queryParameters['filter.isRelay'] = requestParameters.filterIsRelay; } if (requestParameters.filterMetadataLastSeenAt !== undefined) { queryParameters['filter.metadata.lastSeenAt'] = requestParameters.filterMetadataLastSeenAt; } if (requestParameters.filterMetadataPlatform !== undefined) { queryParameters['filter.metadata.platform'] = requestParameters.filterMetadataPlatform; } if (requestParameters.filterMetadataUpdateAvailable !== undefined) { queryParameters['filter.metadata.updateAvailable'] = requestParameters.filterMetadataUpdateAvailable; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("ApiToken", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/v1/hosts`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => HostsList200ResponseFromJSON(jsonValue)); } /** * Get a paginated list of hosts, lighthouses, and relays. Token scope required: `hosts:list` ### Request * List hosts */ async hostsList(requestParameters: HostsListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostsList200Response> { const response = await this.hostsListRaw(requestParameters, initOverrides); return await response.value(); } } /** * @export */ export const HostsListFilterMetadataLastSeenAtEnum = { Null: 'null' } as const; export type HostsListFilterMetadataLastSeenAtEnum = typeof HostsListFilterMetadataLastSeenAtEnum[keyof typeof HostsListFilterMetadataLastSeenAtEnum]; /** * @export */ export const HostsListFilterMetadataPlatformEnum = { Mobile: 'mobile', Dnclient: 'dnclient', Null: 'null' } as const; export type HostsListFilterMetadataPlatformEnum = typeof HostsListFilterMetadataPlatformEnum[keyof typeof HostsListFilterMetadataPlatformEnum];