/* tslint:disable */ /* eslint-disable */ /** * Faraday REST API * The [Faraday](https://faraday.ai) API makes it easy to predict customer behavior programmatically. See our [API change policy](https://faraday.ai/legal). * * The version of the OpenAPI document: 1.0.0 * Contact: support@faraday.ai * * 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 { KnowledgebaseOverview, KnowledgebaseOverviewPatch, KnowledgebaseOverviewRevisionSummary, UseCase, UseCasePatch, UseCasePost, UseCaseRevision, UseCaseRevisionSummary, UseCaseSummary, } from '../models'; export interface ArchiveUseCaseRequest { useCaseId: string; } export interface CreateUseCaseRequest { useCaseFields: UseCasePost; } export interface GetKnowledgebaseOverviewRevisionRequest { revisionId: string; } export interface GetUseCaseRequest { useCaseId: string; } export interface GetUseCaseRevisionRequest { useCaseId: string; revisionId: string; } export interface ListUseCaseRevisionsRequest { useCaseId: string; } export interface ListUseCasesRequest { ids?: Array; } export interface UnarchiveUseCaseRequest { useCaseId: string; } export interface UpdateKnowledgebaseOverviewRequest { knowledgebaseOverviewFields: KnowledgebaseOverviewPatch; } export interface UpdateUseCaseRequest { useCaseId: string; useCaseFields: UseCasePatch; } /** * */ export class KnowledgebaseApi extends runtime.BaseAPI { /** * Archive a use case. Use cases have no downstream dependents so no cascade configuration is required. * Archive a use case */ async archiveUseCaseRaw(requestParameters: ArchiveUseCaseRequest, ): Promise> { if (requestParameters.useCaseId === null || requestParameters.useCaseId === undefined) { throw new runtime.RequiredError('useCaseId','Required parameter requestParameters.useCaseId was null or undefined when calling archiveUseCase.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases/{use_case_id}/archive`.replace(`{${"use_case_id"}}`, encodeURIComponent(String(requestParameters.useCaseId))), method: 'POST', headers: headerParameters, query: queryParameters, }); return new runtime.VoidApiResponse(response); } /** * Archive a use case. Use cases have no downstream dependents so no cascade configuration is required. * Archive a use case */ async archiveUseCase(useCaseId: string, ): Promise { await this.archiveUseCaseRaw({ useCaseId: useCaseId }, ); } /** * Create a new use case under the calling account. * Create a use case */ async createUseCaseRaw(requestParameters: CreateUseCaseRequest, ): Promise> { if (requestParameters.useCaseFields === null || requestParameters.useCaseFields === undefined) { throw new runtime.RequiredError('useCaseFields','Required parameter requestParameters.useCaseFields was null or undefined when calling createUseCase.'); } 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("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases`, method: 'POST', headers: headerParameters, query: queryParameters, body: requestParameters.useCaseFields, }); return new runtime.JSONApiResponse(response); } /** * Create a new use case under the calling account. * Create a use case */ async createUseCase(useCaseFields: UseCasePost, ): Promise { const response = await this.createUseCaseRaw({ useCaseFields: useCaseFields }, ); return await response.value(); } /** * Get the current revision of this account\'s knowledgebase overview. If no overview has ever been written, `revision_id` and `created_at` are absent and `content` is the empty string. * Retrieve the account overview */ async getKnowledgebaseOverviewRaw(): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/overview`, method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * Get the current revision of this account\'s knowledgebase overview. If no overview has ever been written, `revision_id` and `created_at` are absent and `content` is the empty string. * Retrieve the account overview */ async getKnowledgebaseOverview(): Promise { const response = await this.getKnowledgebaseOverviewRaw(); return await response.value(); } /** * Read an older saved revision of the account overview. The shape matches the current-revision endpoint. * Retrieve a specific account overview revision */ async getKnowledgebaseOverviewRevisionRaw(requestParameters: GetKnowledgebaseOverviewRevisionRequest, ): Promise> { if (requestParameters.revisionId === null || requestParameters.revisionId === undefined) { throw new runtime.RequiredError('revisionId','Required parameter requestParameters.revisionId was null or undefined when calling getKnowledgebaseOverviewRevision.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/overview/revisions/{revision_id}`.replace(`{${"revision_id"}}`, encodeURIComponent(String(requestParameters.revisionId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * Read an older saved revision of the account overview. The shape matches the current-revision endpoint. * Retrieve a specific account overview revision */ async getKnowledgebaseOverviewRevision(revisionId: string, ): Promise { const response = await this.getKnowledgebaseOverviewRevisionRaw({ revisionId: revisionId }, ); return await response.value(); } /** * Get the full current revision of a use case, including its computed `resources` list. * Retrieve a use case */ async getUseCaseRaw(requestParameters: GetUseCaseRequest, ): Promise> { if (requestParameters.useCaseId === null || requestParameters.useCaseId === undefined) { throw new runtime.RequiredError('useCaseId','Required parameter requestParameters.useCaseId was null or undefined when calling getUseCase.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases/{use_case_id}`.replace(`{${"use_case_id"}}`, encodeURIComponent(String(requestParameters.useCaseId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * Get the full current revision of a use case, including its computed `resources` list. * Retrieve a use case */ async getUseCase(useCaseId: string, ): Promise { const response = await this.getUseCaseRaw({ useCaseId: useCaseId }, ); return await response.value(); } /** * Read an older saved revision of a use case. The shape matches the current-revision endpoint, except `resources` is omitted (resources are a live computed property, not part of the versioned content). * Retrieve a specific use case revision */ async getUseCaseRevisionRaw(requestParameters: GetUseCaseRevisionRequest, ): Promise> { if (requestParameters.useCaseId === null || requestParameters.useCaseId === undefined) { throw new runtime.RequiredError('useCaseId','Required parameter requestParameters.useCaseId was null or undefined when calling getUseCaseRevision.'); } if (requestParameters.revisionId === null || requestParameters.revisionId === undefined) { throw new runtime.RequiredError('revisionId','Required parameter requestParameters.revisionId was null or undefined when calling getUseCaseRevision.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases/{use_case_id}/revisions/{revision_id}`.replace(`{${"use_case_id"}}`, encodeURIComponent(String(requestParameters.useCaseId))).replace(`{${"revision_id"}}`, encodeURIComponent(String(requestParameters.revisionId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * Read an older saved revision of a use case. The shape matches the current-revision endpoint, except `resources` is omitted (resources are a live computed property, not part of the versioned content). * Retrieve a specific use case revision */ async getUseCaseRevision(useCaseId: string, revisionId: string, ): Promise { const response = await this.getUseCaseRevisionRaw({ useCaseId: useCaseId, revisionId: revisionId }, ); return await response.value(); } /** * List every saved revision of the account overview, newest first. * List account overview revisions */ async listKnowledgebaseOverviewRevisionsRaw(): Promise>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/overview/revisions`, method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * List every saved revision of the account overview, newest first. * List account overview revisions */ async listKnowledgebaseOverviewRevisions(): Promise> { const response = await this.listKnowledgebaseOverviewRevisionsRaw(); return await response.value(); } /** * List every saved revision of a use case, newest first. * List use case revisions */ async listUseCaseRevisionsRaw(requestParameters: ListUseCaseRevisionsRequest, ): Promise>> { if (requestParameters.useCaseId === null || requestParameters.useCaseId === undefined) { throw new runtime.RequiredError('useCaseId','Required parameter requestParameters.useCaseId was null or undefined when calling listUseCaseRevisions.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases/{use_case_id}/revisions`.replace(`{${"use_case_id"}}`, encodeURIComponent(String(requestParameters.useCaseId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * List every saved revision of a use case, newest first. * List use case revisions */ async listUseCaseRevisions(useCaseId: string, ): Promise> { const response = await this.listUseCaseRevisionsRaw({ useCaseId: useCaseId }, ); return await response.value(); } /** * Get a list of use cases for the calling account. Returns summary fields only; fetch a specific use case to see its preface, guide, and resources. * List use cases */ async listUseCasesRaw(requestParameters: ListUseCasesRequest, ): Promise>> { const queryParameters: any = {}; if (requestParameters.ids) { queryParameters['ids'] = requestParameters.ids; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases`, method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response); } /** * Get a list of use cases for the calling account. Returns summary fields only; fetch a specific use case to see its preface, guide, and resources. * List use cases */ async listUseCases(ids?: Array, ): Promise> { const response = await this.listUseCasesRaw({ ids: ids }, ); return await response.value(); } /** * Unarchive a use case. * Unarchive a use case */ async unarchiveUseCaseRaw(requestParameters: UnarchiveUseCaseRequest, ): Promise> { if (requestParameters.useCaseId === null || requestParameters.useCaseId === undefined) { throw new runtime.RequiredError('useCaseId','Required parameter requestParameters.useCaseId was null or undefined when calling unarchiveUseCase.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases/{use_case_id}/unarchive`.replace(`{${"use_case_id"}}`, encodeURIComponent(String(requestParameters.useCaseId))), method: 'POST', headers: headerParameters, query: queryParameters, }); return new runtime.VoidApiResponse(response); } /** * Unarchive a use case. * Unarchive a use case */ async unarchiveUseCase(useCaseId: string, ): Promise { await this.unarchiveUseCaseRaw({ useCaseId: useCaseId }, ); } /** * Save a new revision of the account overview. Optimistic locking: pass back the `revision_id` you read; if the server\'s current revision has moved past it, the request is rejected with 409. Omit `revision_id` only when the overview has never been written before. * Update the account overview */ async updateKnowledgebaseOverviewRaw(requestParameters: UpdateKnowledgebaseOverviewRequest, ): Promise> { if (requestParameters.knowledgebaseOverviewFields === null || requestParameters.knowledgebaseOverviewFields === undefined) { throw new runtime.RequiredError('knowledgebaseOverviewFields','Required parameter requestParameters.knowledgebaseOverviewFields was null or undefined when calling updateKnowledgebaseOverview.'); } 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("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/overview`, method: 'PATCH', headers: headerParameters, query: queryParameters, body: requestParameters.knowledgebaseOverviewFields, }); return new runtime.JSONApiResponse(response); } /** * Save a new revision of the account overview. Optimistic locking: pass back the `revision_id` you read; if the server\'s current revision has moved past it, the request is rejected with 409. Omit `revision_id` only when the overview has never been written before. * Update the account overview */ async updateKnowledgebaseOverview(knowledgebaseOverviewFields: KnowledgebaseOverviewPatch, ): Promise { const response = await this.updateKnowledgebaseOverviewRaw({ knowledgebaseOverviewFields: knowledgebaseOverviewFields }, ); return await response.value(); } /** * Save a new revision of a use case. Optimistic locking: pass back the `revision_id` you read; if the server\'s current revision has moved past it, the request is rejected with 409. Fields not present are left at their current values. * Update a use case */ async updateUseCaseRaw(requestParameters: UpdateUseCaseRequest, ): Promise> { if (requestParameters.useCaseId === null || requestParameters.useCaseId === undefined) { throw new runtime.RequiredError('useCaseId','Required parameter requestParameters.useCaseId was null or undefined when calling updateUseCase.'); } if (requestParameters.useCaseFields === null || requestParameters.useCaseFields === undefined) { throw new runtime.RequiredError('useCaseFields','Required parameter requestParameters.useCaseFields was null or undefined when calling updateUseCase.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/merge-patch+json'; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/knowledgebase/use_cases/{use_case_id}`.replace(`{${"use_case_id"}}`, encodeURIComponent(String(requestParameters.useCaseId))), method: 'PATCH', headers: headerParameters, query: queryParameters, body: requestParameters.useCaseFields, }); return new runtime.JSONApiResponse(response); } /** * Save a new revision of a use case. Optimistic locking: pass back the `revision_id` you read; if the server\'s current revision has moved past it, the request is rejected with 409. Fields not present are left at their current values. * Update a use case */ async updateUseCase(useCaseId: string, useCaseFields: UseCasePatch, ): Promise { const response = await this.updateUseCaseRaw({ useCaseId: useCaseId, useCaseFields: useCaseFields }, ); return await response.value(); } }