2023-11-16 10:25:52 -06:00

1 line
77 KiB
Plaintext

{"version":3,"sources":["../../src/environment/dirs.ts","../../src/environment/root.ts","../../src/zrok/api/runtime.ts","../../src/zrok/api/models/SparkDataSample.ts","../../src/zrok/api/models/Environment.ts","../../src/zrok/api/models/Frontend.ts","../../src/zrok/api/models/Share.ts","../../src/zrok/api/models/EnvironmentAndResources.ts","../../src/zrok/api/models/MetricsSample.ts","../../src/zrok/api/models/Metrics.ts","../../src/zrok/api/models/PasswordRequirements.ts","../../src/zrok/api/models/ModelConfiguration.ts","../../src/zrok/api/models/Overview.ts","../../src/zrok/api/apis/MetadataApi.ts"],"sourcesContent":["import { homedir } from \"os\"\nimport { join } from \"node:path\"\n\nexport function rootDir(): string {\n return join(homedir(), \".zrok\")\n}\n\nexport function metadataFile(): string {\n return join(rootDir(), \"metadata.json\")\n}\n\nexport function configFile(): string {\n return join(rootDir(), \"config.json\")\n}\n\nexport function environmentFile(): string {\n return join(rootDir(), \"environment.json\")\n}\n\nexport function identitiesDir(): string {\n return join(rootDir(), \"identities\")\n}\n\nexport function identityFile(name: string): string {\n return join(identitiesDir(), name + \".json\")\n}","import { configFile, environmentFile, identityFile, metadataFile, rootDir } from \"./dirs\";\nimport fs from \"node:fs\"\nimport { Configuration, MetadataApi } from \"../zrok/api\"\n\nconst V = \"v0.4\"\n\nexport class Metadata {\n V: string;\n RootPath: string;\n\n constructor(V: string, RootPath: string = \"\") {\n this.V = V\n this.RootPath = RootPath\n }\n}\n\nexport class ApiEndpoint {\n endpoint: string\n frm: string\n\n constructor(endpoint: string, frm: string) {\n this.endpoint = endpoint\n this.frm = frm\n }\n}\n\nexport class Config {\n ApiEndpoint: string\n\n constructor(ApiEndpoint: string) {\n this.ApiEndpoint = ApiEndpoint\n }\n}\n\nexport class Environment {\n Token: string\n ZitiIdentity: string\n ApiEndpoint: string\n\n constructor(Token: string, ZitiIdentity: string, ApiEndpoint: string) {\n this.Token = Token\n this.ZitiIdentity = ZitiIdentity\n this.ApiEndpoint = ApiEndpoint\n }\n}\n\nexport class Root {\n meta: Metadata\n cfg: Config\n env: Environment\n\n constructor(meta: Metadata = new Metadata(V, rootDir()), cfg: Config, env: Environment) {\n this.meta = meta\n this.cfg = cfg\n this.env = env\n }\n\n public HasConfig(): boolean {\n return this.cfg !== undefined && Object.keys(this.cfg).length === 0\n }\n\n public Client(): Configuration {\n let apiEndpoint = this.ApiEndpoint()\n\n let conf = new Configuration({\n basePath: apiEndpoint.endpoint + '/api/v1',\n accessToken: this.env.Token,\n })\n\n let mapi = new MetadataApi(conf)\n let ver: Promise<string> = mapi.version()\n\n const regex : RegExp = new RegExp(\"^(refs/(heads|tags)/)?\" + V);\n ver.then(v => {\n console.log(\"got version \" + v)\n if(!regex.test(v)) {\n throw new Error(\"Expected a '\" + V + \"' version, received: '\" + v+ \"'\")\n }\n })\n\n return conf\n }\n\n private ApiEndpoint(): ApiEndpoint {\n let apiEndpoint = \"https://api.zrok.io\"\n let frm = \"binary\"\n\n if (this.cfg.ApiEndpoint != \"\") {\n apiEndpoint = this.cfg.ApiEndpoint\n frm = \"config\"\n }\n\n let env = process.env.ZROK_API_ENDPOINT\n if (env != null) {\n apiEndpoint = env\n frm = \"ZROK_API_ENDPOINT\"\n }\n\n if (this.IsEnabled()) {\n apiEndpoint = this.env.ApiEndpoint\n frm = \"env\"\n }\n\n return new ApiEndpoint(apiEndpoint.replace(/\\/+$/, \"\"), frm)\n }\n\n public IsEnabled(): boolean {\n return this.env !== undefined && Object.keys(this.env).length > 0\n }\n\n private PublicIdentityName(): string {\n return \"public\"\n }\n\n private EnvironmentIdentityName(): string {\n return \"environment\"\n }\n\n private ZitiIdentityName(name: string): string {\n return identityFile(name)\n }\n}\n\nexport function Assert(): boolean {\n if (rootExists()) {\n let meta = loadMetadata()\n return meta.V == V\n }\n return false\n}\n\nexport function Load(): Root {\n if (rootExists()) {\n return new Root(loadMetadata(), loadConfig(), loadEnvironment())\n }\n throw new Error(\"unable to load root. Does not exist\")\n}\n\nfunction rootExists(): boolean {\n return fs.existsSync(metadataFile())\n}\n\nfunction loadMetadata(): Metadata {\n let mf = metadataFile()\n let data = fs.readFileSync(mf)\n let serial = JSON.parse(data.toString())\n return new Metadata(serial.v)\n}\n\nfunction loadConfig(): Config {\n let cf = configFile()\n let data = fs.readFileSync(cf)\n let serial = JSON.parse(data.toString())\n return new Config(serial.api_endpoint)\n}\n\nfunction loadEnvironment(): Environment {\n let ef = environmentFile()\n let data = fs.readFileSync(ef)\n let serial = JSON.parse(data.toString())\n return new Environment(serial.zrok_token, serial.ziti_identity, serial.api_endpoint)\n}","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"/api/v1\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | ((name: string) => string); // parameter for apiKey security\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name?: string, scopes?: string[]) => string | Promise<string>) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n\t private static readonly jsonRegex = new RegExp('^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$', 'i');\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise<Response> {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && (response.status >= 200 && response.status < 300)) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n }))\n };\n\n let body: any;\n if (isFormData(overriddenInit.body)\n || (overriddenInit.body instanceof URLSearchParams)\n || isBlob(overriddenInit.body)) {\n body = overriddenInit.body;\n } else if (this.isJsonMime(headers['Content-Type'])) {\n body = JSON.stringify(overriddenInit.body);\n } else {\n body = overriddenInit.body;\n }\n\n const init: RequestInit = {\n ...overriddenInit,\n body\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response = await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n }) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n};\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise<RequestInit>\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map(key => querystringSingleKey(key, params[key], prefix))\n .filter(part => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery, keyPrefix: string = ''): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({ ...acc, [key]: fn(data[key]) }),\n {}\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(public raw: Response, private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SparkDataSample\n */\nexport interface SparkDataSample {\n /**\n * \n * @type {number}\n * @memberof SparkDataSample\n */\n rx?: number;\n /**\n * \n * @type {number}\n * @memberof SparkDataSample\n */\n tx?: number;\n}\n\n/**\n * Check if a given object implements the SparkDataSample interface.\n */\nexport function instanceOfSparkDataSample(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function SparkDataSampleFromJSON(json: any): SparkDataSample {\n return SparkDataSampleFromJSONTyped(json, false);\n}\n\nexport function SparkDataSampleFromJSONTyped(json: any, ignoreDiscriminator: boolean): SparkDataSample {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'rx': !exists(json, 'rx') ? undefined : json['rx'],\n 'tx': !exists(json, 'tx') ? undefined : json['tx'],\n };\n}\n\nexport function SparkDataSampleToJSON(value?: SparkDataSample | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'rx': value.rx,\n 'tx': value.tx,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { SparkDataSample } from './SparkDataSample';\nimport {\n SparkDataSampleFromJSON,\n SparkDataSampleFromJSONTyped,\n SparkDataSampleToJSON,\n} from './SparkDataSample';\n\n/**\n * \n * @export\n * @interface Environment\n */\nexport interface Environment {\n /**\n * \n * @type {string}\n * @memberof Environment\n */\n description?: string;\n /**\n * \n * @type {string}\n * @memberof Environment\n */\n host?: string;\n /**\n * \n * @type {string}\n * @memberof Environment\n */\n address?: string;\n /**\n * \n * @type {string}\n * @memberof Environment\n */\n zId?: string;\n /**\n * \n * @type {Array<SparkDataSample>}\n * @memberof Environment\n */\n activity?: Array<SparkDataSample>;\n /**\n * \n * @type {boolean}\n * @memberof Environment\n */\n limited?: boolean;\n /**\n * \n * @type {number}\n * @memberof Environment\n */\n createdAt?: number;\n /**\n * \n * @type {number}\n * @memberof Environment\n */\n updatedAt?: number;\n}\n\n/**\n * Check if a given object implements the Environment interface.\n */\nexport function instanceOfEnvironment(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EnvironmentFromJSON(json: any): Environment {\n return EnvironmentFromJSONTyped(json, false);\n}\n\nexport function EnvironmentFromJSONTyped(json: any, ignoreDiscriminator: boolean): Environment {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'description': !exists(json, 'description') ? undefined : json['description'],\n 'host': !exists(json, 'host') ? undefined : json['host'],\n 'address': !exists(json, 'address') ? undefined : json['address'],\n 'zId': !exists(json, 'zId') ? undefined : json['zId'],\n 'activity': !exists(json, 'activity') ? undefined : ((json['activity'] as Array<any>).map(SparkDataSampleFromJSON)),\n 'limited': !exists(json, 'limited') ? undefined : json['limited'],\n 'createdAt': !exists(json, 'createdAt') ? undefined : json['createdAt'],\n 'updatedAt': !exists(json, 'updatedAt') ? undefined : json['updatedAt'],\n };\n}\n\nexport function EnvironmentToJSON(value?: Environment | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'description': value.description,\n 'host': value.host,\n 'address': value.address,\n 'zId': value.zId,\n 'activity': value.activity === undefined ? undefined : ((value.activity as Array<any>).map(SparkDataSampleToJSON)),\n 'limited': value.limited,\n 'createdAt': value.createdAt,\n 'updatedAt': value.updatedAt,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Frontend\n */\nexport interface Frontend {\n /**\n * \n * @type {number}\n * @memberof Frontend\n */\n id?: number;\n /**\n * \n * @type {string}\n * @memberof Frontend\n */\n shrToken?: string;\n /**\n * \n * @type {string}\n * @memberof Frontend\n */\n zId?: string;\n /**\n * \n * @type {number}\n * @memberof Frontend\n */\n createdAt?: number;\n /**\n * \n * @type {number}\n * @memberof Frontend\n */\n updatedAt?: number;\n}\n\n/**\n * Check if a given object implements the Frontend interface.\n */\nexport function instanceOfFrontend(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function FrontendFromJSON(json: any): Frontend {\n return FrontendFromJSONTyped(json, false);\n}\n\nexport function FrontendFromJSONTyped(json: any, ignoreDiscriminator: boolean): Frontend {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'shrToken': !exists(json, 'shrToken') ? undefined : json['shrToken'],\n 'zId': !exists(json, 'zId') ? undefined : json['zId'],\n 'createdAt': !exists(json, 'createdAt') ? undefined : json['createdAt'],\n 'updatedAt': !exists(json, 'updatedAt') ? undefined : json['updatedAt'],\n };\n}\n\nexport function FrontendToJSON(value?: Frontend | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'id': value.id,\n 'shrToken': value.shrToken,\n 'zId': value.zId,\n 'createdAt': value.createdAt,\n 'updatedAt': value.updatedAt,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { SparkDataSample } from './SparkDataSample';\nimport {\n SparkDataSampleFromJSON,\n SparkDataSampleFromJSONTyped,\n SparkDataSampleToJSON,\n} from './SparkDataSample';\n\n/**\n * \n * @export\n * @interface Share\n */\nexport interface Share {\n /**\n * \n * @type {string}\n * @memberof Share\n */\n token?: string;\n /**\n * \n * @type {string}\n * @memberof Share\n */\n zId?: string;\n /**\n * \n * @type {string}\n * @memberof Share\n */\n shareMode?: string;\n /**\n * \n * @type {string}\n * @memberof Share\n */\n backendMode?: string;\n /**\n * \n * @type {string}\n * @memberof Share\n */\n frontendSelection?: string;\n /**\n * \n * @type {string}\n * @memberof Share\n */\n frontendEndpoint?: string;\n /**\n * \n * @type {string}\n * @memberof Share\n */\n backendProxyEndpoint?: string;\n /**\n * \n * @type {boolean}\n * @memberof Share\n */\n reserved?: boolean;\n /**\n * \n * @type {Array<SparkDataSample>}\n * @memberof Share\n */\n activity?: Array<SparkDataSample>;\n /**\n * \n * @type {boolean}\n * @memberof Share\n */\n limited?: boolean;\n /**\n * \n * @type {number}\n * @memberof Share\n */\n createdAt?: number;\n /**\n * \n * @type {number}\n * @memberof Share\n */\n updatedAt?: number;\n}\n\n/**\n * Check if a given object implements the Share interface.\n */\nexport function instanceOfShare(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ShareFromJSON(json: any): Share {\n return ShareFromJSONTyped(json, false);\n}\n\nexport function ShareFromJSONTyped(json: any, ignoreDiscriminator: boolean): Share {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'token': !exists(json, 'token') ? undefined : json['token'],\n 'zId': !exists(json, 'zId') ? undefined : json['zId'],\n 'shareMode': !exists(json, 'shareMode') ? undefined : json['shareMode'],\n 'backendMode': !exists(json, 'backendMode') ? undefined : json['backendMode'],\n 'frontendSelection': !exists(json, 'frontendSelection') ? undefined : json['frontendSelection'],\n 'frontendEndpoint': !exists(json, 'frontendEndpoint') ? undefined : json['frontendEndpoint'],\n 'backendProxyEndpoint': !exists(json, 'backendProxyEndpoint') ? undefined : json['backendProxyEndpoint'],\n 'reserved': !exists(json, 'reserved') ? undefined : json['reserved'],\n 'activity': !exists(json, 'activity') ? undefined : ((json['activity'] as Array<any>).map(SparkDataSampleFromJSON)),\n 'limited': !exists(json, 'limited') ? undefined : json['limited'],\n 'createdAt': !exists(json, 'createdAt') ? undefined : json['createdAt'],\n 'updatedAt': !exists(json, 'updatedAt') ? undefined : json['updatedAt'],\n };\n}\n\nexport function ShareToJSON(value?: Share | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'token': value.token,\n 'zId': value.zId,\n 'shareMode': value.shareMode,\n 'backendMode': value.backendMode,\n 'frontendSelection': value.frontendSelection,\n 'frontendEndpoint': value.frontendEndpoint,\n 'backendProxyEndpoint': value.backendProxyEndpoint,\n 'reserved': value.reserved,\n 'activity': value.activity === undefined ? undefined : ((value.activity as Array<any>).map(SparkDataSampleToJSON)),\n 'limited': value.limited,\n 'createdAt': value.createdAt,\n 'updatedAt': value.updatedAt,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { Environment } from './Environment';\nimport {\n EnvironmentFromJSON,\n EnvironmentFromJSONTyped,\n EnvironmentToJSON,\n} from './Environment';\nimport type { Frontend } from './Frontend';\nimport {\n FrontendFromJSON,\n FrontendFromJSONTyped,\n FrontendToJSON,\n} from './Frontend';\nimport type { Share } from './Share';\nimport {\n ShareFromJSON,\n ShareFromJSONTyped,\n ShareToJSON,\n} from './Share';\n\n/**\n * \n * @export\n * @interface EnvironmentAndResources\n */\nexport interface EnvironmentAndResources {\n /**\n * \n * @type {Environment}\n * @memberof EnvironmentAndResources\n */\n environment?: Environment;\n /**\n * \n * @type {Array<Frontend>}\n * @memberof EnvironmentAndResources\n */\n frontends?: Array<Frontend>;\n /**\n * \n * @type {Array<Share>}\n * @memberof EnvironmentAndResources\n */\n shares?: Array<Share>;\n}\n\n/**\n * Check if a given object implements the EnvironmentAndResources interface.\n */\nexport function instanceOfEnvironmentAndResources(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function EnvironmentAndResourcesFromJSON(json: any): EnvironmentAndResources {\n return EnvironmentAndResourcesFromJSONTyped(json, false);\n}\n\nexport function EnvironmentAndResourcesFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnvironmentAndResources {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'environment': !exists(json, 'environment') ? undefined : EnvironmentFromJSON(json['environment']),\n 'frontends': !exists(json, 'frontends') ? undefined : ((json['frontends'] as Array<any>).map(FrontendFromJSON)),\n 'shares': !exists(json, 'shares') ? undefined : ((json['shares'] as Array<any>).map(ShareFromJSON)),\n };\n}\n\nexport function EnvironmentAndResourcesToJSON(value?: EnvironmentAndResources | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'environment': EnvironmentToJSON(value.environment),\n 'frontends': value.frontends === undefined ? undefined : ((value.frontends as Array<any>).map(FrontendToJSON)),\n 'shares': value.shares === undefined ? undefined : ((value.shares as Array<any>).map(ShareToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface MetricsSample\n */\nexport interface MetricsSample {\n /**\n * \n * @type {number}\n * @memberof MetricsSample\n */\n rx?: number;\n /**\n * \n * @type {number}\n * @memberof MetricsSample\n */\n tx?: number;\n /**\n * \n * @type {number}\n * @memberof MetricsSample\n */\n timestamp?: number;\n}\n\n/**\n * Check if a given object implements the MetricsSample interface.\n */\nexport function instanceOfMetricsSample(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MetricsSampleFromJSON(json: any): MetricsSample {\n return MetricsSampleFromJSONTyped(json, false);\n}\n\nexport function MetricsSampleFromJSONTyped(json: any, ignoreDiscriminator: boolean): MetricsSample {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'rx': !exists(json, 'rx') ? undefined : json['rx'],\n 'tx': !exists(json, 'tx') ? undefined : json['tx'],\n 'timestamp': !exists(json, 'timestamp') ? undefined : json['timestamp'],\n };\n}\n\nexport function MetricsSampleToJSON(value?: MetricsSample | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'rx': value.rx,\n 'tx': value.tx,\n 'timestamp': value.timestamp,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { MetricsSample } from './MetricsSample';\nimport {\n MetricsSampleFromJSON,\n MetricsSampleFromJSONTyped,\n MetricsSampleToJSON,\n} from './MetricsSample';\n\n/**\n * \n * @export\n * @interface Metrics\n */\nexport interface Metrics {\n /**\n * \n * @type {string}\n * @memberof Metrics\n */\n scope?: string;\n /**\n * \n * @type {string}\n * @memberof Metrics\n */\n id?: string;\n /**\n * \n * @type {number}\n * @memberof Metrics\n */\n period?: number;\n /**\n * \n * @type {Array<MetricsSample>}\n * @memberof Metrics\n */\n samples?: Array<MetricsSample>;\n}\n\n/**\n * Check if a given object implements the Metrics interface.\n */\nexport function instanceOfMetrics(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function MetricsFromJSON(json: any): Metrics {\n return MetricsFromJSONTyped(json, false);\n}\n\nexport function MetricsFromJSONTyped(json: any, ignoreDiscriminator: boolean): Metrics {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'scope': !exists(json, 'scope') ? undefined : json['scope'],\n 'id': !exists(json, 'id') ? undefined : json['id'],\n 'period': !exists(json, 'period') ? undefined : json['period'],\n 'samples': !exists(json, 'samples') ? undefined : ((json['samples'] as Array<any>).map(MetricsSampleFromJSON)),\n };\n}\n\nexport function MetricsToJSON(value?: Metrics | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'scope': value.scope,\n 'id': value.id,\n 'period': value.period,\n 'samples': value.samples === undefined ? undefined : ((value.samples as Array<any>).map(MetricsSampleToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface PasswordRequirements\n */\nexport interface PasswordRequirements {\n /**\n * \n * @type {number}\n * @memberof PasswordRequirements\n */\n length?: number;\n /**\n * \n * @type {boolean}\n * @memberof PasswordRequirements\n */\n requireCapital?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PasswordRequirements\n */\n requireNumeric?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof PasswordRequirements\n */\n requireSpecial?: boolean;\n /**\n * \n * @type {string}\n * @memberof PasswordRequirements\n */\n validSpecialCharacters?: string;\n}\n\n/**\n * Check if a given object implements the PasswordRequirements interface.\n */\nexport function instanceOfPasswordRequirements(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function PasswordRequirementsFromJSON(json: any): PasswordRequirements {\n return PasswordRequirementsFromJSONTyped(json, false);\n}\n\nexport function PasswordRequirementsFromJSONTyped(json: any, ignoreDiscriminator: boolean): PasswordRequirements {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'length': !exists(json, 'length') ? undefined : json['length'],\n 'requireCapital': !exists(json, 'requireCapital') ? undefined : json['requireCapital'],\n 'requireNumeric': !exists(json, 'requireNumeric') ? undefined : json['requireNumeric'],\n 'requireSpecial': !exists(json, 'requireSpecial') ? undefined : json['requireSpecial'],\n 'validSpecialCharacters': !exists(json, 'validSpecialCharacters') ? undefined : json['validSpecialCharacters'],\n };\n}\n\nexport function PasswordRequirementsToJSON(value?: PasswordRequirements | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'length': value.length,\n 'requireCapital': value.requireCapital,\n 'requireNumeric': value.requireNumeric,\n 'requireSpecial': value.requireSpecial,\n 'validSpecialCharacters': value.validSpecialCharacters,\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { PasswordRequirements } from './PasswordRequirements';\nimport {\n PasswordRequirementsFromJSON,\n PasswordRequirementsFromJSONTyped,\n PasswordRequirementsToJSON,\n} from './PasswordRequirements';\n\n/**\n * \n * @export\n * @interface ModelConfiguration\n */\nexport interface ModelConfiguration {\n /**\n * \n * @type {string}\n * @memberof ModelConfiguration\n */\n version?: string;\n /**\n * \n * @type {string}\n * @memberof ModelConfiguration\n */\n touLink?: string;\n /**\n * \n * @type {boolean}\n * @memberof ModelConfiguration\n */\n invitesOpen?: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ModelConfiguration\n */\n requiresInviteToken?: boolean;\n /**\n * \n * @type {string}\n * @memberof ModelConfiguration\n */\n inviteTokenContact?: string;\n /**\n * \n * @type {PasswordRequirements}\n * @memberof ModelConfiguration\n */\n passwordRequirements?: PasswordRequirements;\n}\n\n/**\n * Check if a given object implements the ModelConfiguration interface.\n */\nexport function instanceOfModelConfiguration(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function ModelConfigurationFromJSON(json: any): ModelConfiguration {\n return ModelConfigurationFromJSONTyped(json, false);\n}\n\nexport function ModelConfigurationFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelConfiguration {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'version': !exists(json, 'version') ? undefined : json['version'],\n 'touLink': !exists(json, 'touLink') ? undefined : json['touLink'],\n 'invitesOpen': !exists(json, 'invitesOpen') ? undefined : json['invitesOpen'],\n 'requiresInviteToken': !exists(json, 'requiresInviteToken') ? undefined : json['requiresInviteToken'],\n 'inviteTokenContact': !exists(json, 'inviteTokenContact') ? undefined : json['inviteTokenContact'],\n 'passwordRequirements': !exists(json, 'passwordRequirements') ? undefined : PasswordRequirementsFromJSON(json['passwordRequirements']),\n };\n}\n\nexport function ModelConfigurationToJSON(value?: ModelConfiguration | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'version': value.version,\n 'touLink': value.touLink,\n 'invitesOpen': value.invitesOpen,\n 'requiresInviteToken': value.requiresInviteToken,\n 'inviteTokenContact': value.inviteTokenContact,\n 'passwordRequirements': PasswordRequirementsToJSON(value.passwordRequirements),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from '../runtime';\nimport type { EnvironmentAndResources } from './EnvironmentAndResources';\nimport {\n EnvironmentAndResourcesFromJSON,\n EnvironmentAndResourcesFromJSONTyped,\n EnvironmentAndResourcesToJSON,\n} from './EnvironmentAndResources';\n\n/**\n * \n * @export\n * @interface Overview\n */\nexport interface Overview {\n /**\n * \n * @type {boolean}\n * @memberof Overview\n */\n accountLimited?: boolean;\n /**\n * \n * @type {Array<EnvironmentAndResources>}\n * @memberof Overview\n */\n environments?: Array<EnvironmentAndResources>;\n}\n\n/**\n * Check if a given object implements the Overview interface.\n */\nexport function instanceOfOverview(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function OverviewFromJSON(json: any): Overview {\n return OverviewFromJSONTyped(json, false);\n}\n\nexport function OverviewFromJSONTyped(json: any, ignoreDiscriminator: boolean): Overview {\n if ((json === undefined) || (json === null)) {\n return json;\n }\n return {\n \n 'accountLimited': !exists(json, 'accountLimited') ? undefined : json['accountLimited'],\n 'environments': !exists(json, 'environments') ? undefined : ((json['environments'] as Array<any>).map(EnvironmentAndResourcesFromJSON)),\n };\n}\n\nexport function OverviewToJSON(value?: Overview | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n \n 'accountLimited': value.accountLimited,\n 'environments': value.environments === undefined ? undefined : ((value.environments as Array<any>).map(EnvironmentAndResourcesToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * zrok\n * zrok client access\n *\n * The version of the OpenAPI document: 0.3.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n Environment,\n EnvironmentAndResources,\n Frontend,\n Metrics,\n ModelConfiguration,\n Overview,\n Share,\n} from '../models/index';\nimport {\n EnvironmentFromJSON,\n EnvironmentToJSON,\n EnvironmentAndResourcesFromJSON,\n EnvironmentAndResourcesToJSON,\n FrontendFromJSON,\n FrontendToJSON,\n MetricsFromJSON,\n MetricsToJSON,\n ModelConfigurationFromJSON,\n ModelConfigurationToJSON,\n OverviewFromJSON,\n OverviewToJSON,\n ShareFromJSON,\n ShareToJSON,\n} from '../models/index';\n\nexport interface GetAccountMetricsRequest {\n duration?: string;\n}\n\nexport interface GetEnvironmentDetailRequest {\n envZId: string;\n}\n\nexport interface GetEnvironmentMetricsRequest {\n envId: string;\n duration?: string;\n}\n\nexport interface GetFrontendDetailRequest {\n feId: number;\n}\n\nexport interface GetShareDetailRequest {\n shrToken: string;\n}\n\nexport interface GetShareMetricsRequest {\n shrToken: string;\n duration?: string;\n}\n\n/**\n * \n */\nexport class MetadataApi extends runtime.BaseAPI {\n\n /**\n */\n async _configurationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ModelConfiguration>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request({\n path: `/configuration`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ModelConfigurationFromJSON(jsonValue));\n }\n\n /**\n */\n async _configuration(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ModelConfiguration> {\n const response = await this._configurationRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getAccountDetailRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Environment>>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/detail/account`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(EnvironmentFromJSON));\n }\n\n /**\n */\n async getAccountDetail(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Environment>> {\n const response = await this.getAccountDetailRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getAccountMetricsRaw(requestParameters: GetAccountMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Metrics>> {\n const queryParameters: any = {};\n\n if (requestParameters.duration !== undefined) {\n queryParameters['duration'] = requestParameters.duration;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/metrics/account`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MetricsFromJSON(jsonValue));\n }\n\n /**\n */\n async getAccountMetrics(requestParameters: GetAccountMetricsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Metrics> {\n const response = await this.getAccountMetricsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getEnvironmentDetailRaw(requestParameters: GetEnvironmentDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentAndResources>> {\n if (requestParameters.envZId === null || requestParameters.envZId === undefined) {\n throw new runtime.RequiredError('envZId','Required parameter requestParameters.envZId was null or undefined when calling getEnvironmentDetail.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/detail/environment/{envZId}`.replace(`{${\"envZId\"}}`, encodeURIComponent(String(requestParameters.envZId))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentAndResourcesFromJSON(jsonValue));\n }\n\n /**\n */\n async getEnvironmentDetail(requestParameters: GetEnvironmentDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentAndResources> {\n const response = await this.getEnvironmentDetailRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getEnvironmentMetricsRaw(requestParameters: GetEnvironmentMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Metrics>> {\n if (requestParameters.envId === null || requestParameters.envId === undefined) {\n throw new runtime.RequiredError('envId','Required parameter requestParameters.envId was null or undefined when calling getEnvironmentMetrics.');\n }\n\n const queryParameters: any = {};\n\n if (requestParameters.duration !== undefined) {\n queryParameters['duration'] = requestParameters.duration;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/metrics/environment/{envId}`.replace(`{${\"envId\"}}`, encodeURIComponent(String(requestParameters.envId))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MetricsFromJSON(jsonValue));\n }\n\n /**\n */\n async getEnvironmentMetrics(requestParameters: GetEnvironmentMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Metrics> {\n const response = await this.getEnvironmentMetricsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getFrontendDetailRaw(requestParameters: GetFrontendDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Frontend>> {\n if (requestParameters.feId === null || requestParameters.feId === undefined) {\n throw new runtime.RequiredError('feId','Required parameter requestParameters.feId was null or undefined when calling getFrontendDetail.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/detail/frontend/{feId}`.replace(`{${\"feId\"}}`, encodeURIComponent(String(requestParameters.feId))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => FrontendFromJSON(jsonValue));\n }\n\n /**\n */\n async getFrontendDetail(requestParameters: GetFrontendDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Frontend> {\n const response = await this.getFrontendDetailRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getShareDetailRaw(requestParameters: GetShareDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Share>> {\n if (requestParameters.shrToken === null || requestParameters.shrToken === undefined) {\n throw new runtime.RequiredError('shrToken','Required parameter requestParameters.shrToken was null or undefined when calling getShareDetail.');\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/detail/share/{shrToken}`.replace(`{${\"shrToken\"}}`, encodeURIComponent(String(requestParameters.shrToken))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ShareFromJSON(jsonValue));\n }\n\n /**\n */\n async getShareDetail(requestParameters: GetShareDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Share> {\n const response = await this.getShareDetailRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async getShareMetricsRaw(requestParameters: GetShareMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Metrics>> {\n if (requestParameters.shrToken === null || requestParameters.shrToken === undefined) {\n throw new runtime.RequiredError('shrToken','Required parameter requestParameters.shrToken was null or undefined when calling getShareMetrics.');\n }\n\n const queryParameters: any = {};\n\n if (requestParameters.duration !== undefined) {\n queryParameters['duration'] = requestParameters.duration;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/metrics/share/{shrToken}`.replace(`{${\"shrToken\"}}`, encodeURIComponent(String(requestParameters.shrToken))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => MetricsFromJSON(jsonValue));\n }\n\n /**\n */\n async getShareMetrics(requestParameters: GetShareMetricsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Metrics> {\n const response = await this.getShareMetricsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n */\n async overviewRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Overview>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"x-token\"] = this.configuration.apiKey(\"x-token\"); // key authentication\n }\n\n const response = await this.request({\n path: `/overview`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => OverviewFromJSON(jsonValue));\n }\n\n /**\n */\n async overview(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Overview> {\n const response = await this.overviewRaw(initOverrides);\n return await response.value();\n }\n\n /**\n */\n async versionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request({\n path: `/version`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse<string>(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n */\n async version(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {\n const response = await this.versionRaw(initOverrides);\n return await response.value();\n }\n\n}\n"],"mappings":"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","names":["V","ApiEndpoint"]}