sindri
Version:
The Sindri Labs JavaScript SDK and CLI tool.
823 lines (787 loc) • 23.9 kB
text/typescript
/* generated using openapi-typescript-codegen -- do no edit */
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
import type { ActionResponse } from "../models/ActionResponse";
import type { CircuitInfoResponse } from "../models/CircuitInfoResponse";
import type { CircuitStatusResponse } from "../models/CircuitStatusResponse";
import type { PagedCircuitInfoResponse } from "../models/PagedCircuitInfoResponse";
import type { PagedProjectInfoResponse } from "../models/PagedProjectInfoResponse";
import type { PagedProofInfoResponse } from "../models/PagedProofInfoResponse";
import type { PasswordChangeInput } from "../models/PasswordChangeInput";
import type { ProjectInfoResponse } from "../models/ProjectInfoResponse";
import type { ProjectListInput } from "../models/ProjectListInput";
import type { ProjectSettingsInput } from "../models/ProjectSettingsInput";
import type { ProofHistogramInput } from "../models/ProofHistogramInput";
import type { ProofHistogramResponse } from "../models/ProofHistogramResponse";
import type { ProofInfoResponse } from "../models/ProofInfoResponse";
import type { ProofListInput } from "../models/ProofListInput";
import type { ProofStatusResponse } from "../models/ProofStatusResponse";
import type { SmartContractVerifierResponse } from "../models/SmartContractVerifierResponse";
import type { TeamCreateInput } from "../models/TeamCreateInput";
import type { TeamDetail } from "../models/TeamDetail";
import type { TeamInviteInput } from "../models/TeamInviteInput";
import type { TeamMembersResponse } from "../models/TeamMembersResponse";
import type { TeamMeResponse } from "../models/TeamMeResponse";
import type { TeamRemoveMemberInput } from "../models/TeamRemoveMemberInput";
import type { TeamSettingsInput } from "../models/TeamSettingsInput";
import type { UserLoginInput } from "../models/UserLoginInput";
import type { UserMeResponse } from "../models/UserMeResponse";
import type { CancelablePromise } from "../core/CancelablePromise";
import type { BaseHttpRequest } from "../core/BaseHttpRequest";
// DO NOT REMOVE
type BinaryResponseType = typeof globalThis extends { ReadableStream: unknown }
? Blob
: NodeJS.ReadableStream;
export class InternalService {
constructor(public readonly httpRequest: BaseHttpRequest) {}
/**
* Change Password
* Change user password. Requires user authentication.
* @param requestBody
* @returns ActionResponse OK
* @throws ApiError
*/
public passwordChangeWithJwtAuth(
requestBody: PasswordChangeInput,
): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/password/change",
body: requestBody,
mediaType: "application/json",
errors: {
422: `Unprocessable Entity`,
},
});
}
/**
* Sindri Manifest Schema
* Return Sindri manifest schema as JSON.
* @returns any OK
* @throws ApiError
*/
public sindriManifestSchema(): CancelablePromise<Record<string, any>> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/sindri-manifest-schema.json",
});
}
/**
* Circuit File Download
* Obtain circuit file(s).
* @param circuitId The circuit identifer of the circuit.
* This can take one of the following forms:
*
* 1. `<CIRCUIT_ID>` - The unique UUID4 ID for an exact version of a compiled circuit.
* 2. `<CIRCUIT_NAME>` - The name of a circuit owned by the authenticated team. This will default to
* the most recent version of the circuit tagged as `latest`.
* 3. `<CIRCUIT_NAME>:<TAG>` - The name of a circuit owned by the authenticated team and an explicit
* tag. This corresponds to the most recent compilation of the circuit with the specified tag.
* 4. `<TEAM_NAME>/<CIRCUIT_NAME>` - The name of a circuit owned by the specified team. This will
* default to the most recent version of the circuit tagged as `latest`.
* 5. `<TEAM_NAME>/<CIRCUIT_NAME>:<TAG>` - The name of a circuit owned by a specified team and an
* explicit tag. This corresponds to the most recent compilation of the team's circuit with the
* specified tag.
* @param path The optional file path within the circuit package to download.
* @returns any OK
* @throws ApiError
*/
public circuitDownload(
circuitId: string,
path?: string,
// DO NOT REMOVE
): CancelablePromise<BinaryResponseType> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/circuit/{circuit_id}/download",
path: {
circuit_id: circuitId,
},
query: {
path: path,
},
errors: {
404: `Not Found`,
422: `Unprocessable Entity`,
500: `Internal Server Error`,
},
});
}
/**
* Circuit Proofs
* List all proofs for a circuit.
* @param circuitId The circuit identifer of the circuit.
* This can take one of the following forms:
*
* 1. `<CIRCUIT_ID>` - The unique UUID4 ID for an exact version of a compiled circuit.
* 2. `<CIRCUIT_NAME>` - The name of a circuit owned by the authenticated team. This will default to
* the most recent version of the circuit tagged as `latest`.
* 3. `<CIRCUIT_NAME>:<TAG>` - The name of a circuit owned by the authenticated team and an explicit
* tag. This corresponds to the most recent compilation of the circuit with the specified tag.
* 4. `<TEAM_NAME>/<CIRCUIT_NAME>` - The name of a circuit owned by the specified team. This will
* default to the most recent version of the circuit tagged as `latest`.
* 5. `<TEAM_NAME>/<CIRCUIT_NAME>:<TAG>` - The name of a circuit owned by a specified team and an
* explicit tag. This corresponds to the most recent compilation of the team's circuit with the
* specified tag.
* @param limit The number of proofs to return.
* @param offset The number of proofs to skip.
* @returns PagedProofInfoResponse OK
* @throws ApiError
*/
public circuitProofsPaginated(
circuitId: string,
limit: number = 100,
offset?: number,
): CancelablePromise<PagedProofInfoResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/circuit/{circuit_id}/proofs/paginated",
path: {
circuit_id: circuitId,
},
query: {
limit: limit,
offset: offset,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
responseType: process.env.BROWSER_BUILD ? "blob" : "stream", // DO NOT REMOVE
});
}
/**
* Circuit Smart Contract Verifier
* Get smart contract verifier for existing circuit
* @param circuitId The circuit identifer of the circuit.
* This can take one of the following forms:
*
* 1. `<CIRCUIT_ID>` - The unique UUID4 ID for an exact version of a compiled circuit.
* 2. `<CIRCUIT_NAME>` - The name of a circuit owned by the authenticated team. This will default to
* the most recent version of the circuit tagged as `latest`.
* 3. `<CIRCUIT_NAME>:<TAG>` - The name of a circuit owned by the authenticated team and an explicit
* tag. This corresponds to the most recent compilation of the circuit with the specified tag.
* 4. `<TEAM_NAME>/<CIRCUIT_NAME>` - The name of a circuit owned by the specified team. This will
* default to the most recent version of the circuit tagged as `latest`.
* 5. `<TEAM_NAME>/<CIRCUIT_NAME>:<TAG>` - The name of a circuit owned by a specified team and an
* explicit tag. This corresponds to the most recent compilation of the team's circuit with the
* specified tag.
* @returns SmartContractVerifierResponse OK
* @throws ApiError
*/
public circuitSmartContractVerifier(
circuitId: string,
): CancelablePromise<SmartContractVerifierResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/circuit/{circuit_id}/smart_contract_verifier",
path: {
circuit_id: circuitId,
},
errors: {
404: `Not Found`,
409: `Conflict`,
500: `Internal Server Error`,
501: `Not Implemented`,
},
});
}
/**
* Circuit Status
* Get status for a specific circuit.
* @param circuitId The UUID4 identifier associated with this circuit.
* @returns CircuitStatusResponse OK
* @throws ApiError
*/
public circuitStatus(
circuitId: string,
): CancelablePromise<CircuitStatusResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/circuit/{circuit_id}/status",
path: {
circuit_id: circuitId,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project List
* List all projects meeting filter criteria.
* @param requestBody
* @returns ProjectInfoResponse OK
* @throws ApiError
*/
public projectList(
requestBody: ProjectListInput,
): CancelablePromise<Array<ProjectInfoResponse>> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/project/list",
body: requestBody,
mediaType: "application/json",
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project List
* List all projects meeting filter criteria.
* @param requestBody
* @param limit The number of projects to return.
* @param offset The number of projects to skip.
* @returns PagedProjectInfoResponse OK
* @throws ApiError
*/
public projectListPaginated(
requestBody: ProjectListInput,
limit: number = 100,
offset?: number,
): CancelablePromise<PagedProjectInfoResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/project/list/paginated",
query: {
limit: limit,
offset: offset,
},
body: requestBody,
mediaType: "application/json",
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project Proofs
* Get all proofs for a project.
* @param projectId The project identifer of the project.
* This can take one of the following forms:
*
* 1. `<PROJECT_ID>` - The unique UUID4 ID for a project.
* 2. `<TEAM_NAME>/<PROJECT_NAME>` - The name of a project owned by the specified team.
* @returns ProofInfoResponse OK
* @throws ApiError
*/
public projectProofs(
projectId: string,
): CancelablePromise<Array<ProofInfoResponse>> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/project/{project_id}/proofs",
path: {
project_id: projectId,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project Circuits
* List all circuits for a project.
* @param projectId The project identifer of the project.
* This can take one of the following forms:
*
* 1. `<PROJECT_ID>` - The unique UUID4 ID for a project.
* 2. `<TEAM_NAME>/<PROJECT_NAME>` - The name of a project owned by the specified team.
* @returns CircuitInfoResponse OK
* @throws ApiError
*/
public projectCircuits(
projectId: string,
): CancelablePromise<Array<CircuitInfoResponse>> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/project/{project_id}/circuits",
path: {
project_id: projectId,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project Circuits
* List all circuits for a project.
* @param projectId The project identifer of the project.
* This can take one of the following forms:
*
* 1. `<PROJECT_ID>` - The unique UUID4 ID for a project.
* 2. `<TEAM_NAME>/<PROJECT_NAME>` - The name of a project owned by the specified team.
* @param limit The number of circuits to return.
* @param offset The number of circuits to skip.
* @returns PagedCircuitInfoResponse OK
* @throws ApiError
*/
public projectCircuitsPaginated(
projectId: string,
limit: number = 100,
offset?: number,
): CancelablePromise<PagedCircuitInfoResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/project/{project_id}/circuits/paginated",
path: {
project_id: projectId,
},
query: {
limit: limit,
offset: offset,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Delete Project
* Delete a project.
* @param projectId The project identifer of the project.
* This can take one of the following forms:
*
* 1. `<PROJECT_ID>` - The unique UUID4 ID for a project.
* 2. `<TEAM_NAME>/<PROJECT_NAME>` - The name of a project owned by the specified team.
* @returns ActionResponse OK
* @throws ApiError
*/
public projectDelete(projectId: string): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "DELETE",
url: "/api/v1/project/{project_id}/delete",
path: {
project_id: projectId,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project Detail
* Get info for a project.
* @param projectId The project identifer of the project.
* This can take one of the following forms:
*
* 1. `<PROJECT_ID>` - The unique UUID4 ID for a project.
* 2. `<TEAM_NAME>/<PROJECT_NAME>` - The name of a project owned by the specified team.
* @returns ProjectInfoResponse OK
* @throws ApiError
*/
public projectDetail(
projectId: string,
): CancelablePromise<ProjectInfoResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/project/{project_id}/detail",
path: {
project_id: projectId,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Project Proofs
* Get all proofs for a project.
* @param projectId The project identifer of the project.
* This can take one of the following forms:
*
* 1. `<PROJECT_ID>` - The unique UUID4 ID for a project.
* 2. `<TEAM_NAME>/<PROJECT_NAME>` - The name of a project owned by the specified team.
* @param limit The number of proofs to return.
* @param offset The number of proofs to skip.
* @returns PagedProofInfoResponse OK
* @throws ApiError
*/
public projectProofsPaginated(
projectId: string,
limit: number = 100,
offset?: number,
): CancelablePromise<PagedProofInfoResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/project/{project_id}/proofs/paginated",
path: {
project_id: projectId,
},
query: {
limit: limit,
offset: offset,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Update Project Settings
* Update project settings.
* @param projectName The name of a project associated with the team.
* @param requestBody
* @returns ProjectInfoResponse OK
* @throws ApiError
*/
public projectSettings(
projectName: string,
requestBody: ProjectSettingsInput,
): CancelablePromise<ProjectInfoResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/project/{project_name}/settings",
path: {
project_name: projectName,
},
body: requestBody,
mediaType: "application/json",
errors: {
404: `Not Found`,
422: `Unprocessable Entity`,
500: `Internal Server Error`,
},
});
}
/**
* Proof Histogram
* Get histogram data for a team's proofs.
* @param requestBody
* @returns ProofHistogramResponse OK
* @throws ApiError
*/
public proofHistogram(
requestBody: ProofHistogramInput,
): CancelablePromise<ProofHistogramResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/proof/histogram",
body: requestBody,
mediaType: "application/json",
errors: {
500: `Internal Server Error`,
},
});
}
/**
* Proof List
* List proofs for the requesting team.
* @param requestBody
* @returns ProofInfoResponse OK
* @throws ApiError
*/
public proofList(
requestBody: ProofListInput,
): CancelablePromise<Array<ProofInfoResponse>> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/proof/list",
body: requestBody,
mediaType: "application/json",
errors: {
500: `Internal Server Error`,
},
});
}
/**
* Proof List
* List proofs for the requesting team.
* @param requestBody
* @param limit The number of proofs to return.
* @param offset The number of proofs to skip.
* @returns PagedProofInfoResponse OK
* @throws ApiError
*/
public proofListPaginated(
requestBody: ProofListInput,
limit: number = 100,
offset?: number,
): CancelablePromise<PagedProofInfoResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/proof/list/paginated",
query: {
limit: limit,
offset: offset,
},
body: requestBody,
mediaType: "application/json",
errors: {
500: `Internal Server Error`,
},
});
}
/**
* Proof Status
* Get status for a specific proof.
* @param proofId The UUID4 identifier associated with this proof.
* @returns ProofStatusResponse OK
* @throws ApiError
*/
public proofStatus(proofId: string): CancelablePromise<ProofStatusResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/proof/{proof_id}/status",
path: {
proof_id: proofId,
},
errors: {
404: `Not Found`,
500: `Internal Server Error`,
},
});
}
/**
* Avatar Upload
* Upload avatar for the team
* @param formData
* @returns TeamMeResponse Created
* @throws ApiError
*/
public teamAvatarUpload(formData: {
files: Array<Blob>;
}): CancelablePromise<TeamMeResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/team/avatar/upload",
formData: formData,
mediaType: "multipart/form-data",
errors: {
400: `Bad Request`,
500: `Internal Server Error`,
},
});
}
/**
* Create Team
* Create a new team
* @param requestBody
* @param sindriTeamId Required for Sindri JWT authentication.
* @returns TeamDetail Created
* @throws ApiError
*/
public teamCreate(
requestBody: TeamCreateInput,
sindriTeamId?: string | null,
): CancelablePromise<TeamDetail> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/team/create",
headers: {
"Sindri-Team-Id": sindriTeamId,
},
body: requestBody,
mediaType: "application/json",
errors: {
400: `Bad Request`,
409: `Conflict`,
500: `Internal Server Error`,
},
});
}
/**
* Team Detail
* Return details for the specified team
* @param teamSlug
* @returns TeamDetail OK
* @throws ApiError
*/
public teamDetail(teamSlug: string): CancelablePromise<TeamDetail> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/team/{team_slug}/detail",
path: {
team_slug: teamSlug,
},
errors: {
404: `Not Found`,
},
});
}
/**
* Team Invite
* Invite an email address to join the specified team
* @param requestBody
* @param sindriTeamId Required for Sindri JWT authentication.
* @returns ActionResponse OK
* @throws ApiError
*/
public teamInvite(
requestBody: TeamInviteInput,
sindriTeamId?: string | null,
): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/team/invite",
headers: {
"Sindri-Team-Id": sindriTeamId,
},
body: requestBody,
mediaType: "application/json",
});
}
/**
* Team Me
* Obtain team details for the currently authenticated team
* @returns TeamMeResponse OK
* @throws ApiError
*/
public teamMe(): CancelablePromise<TeamMeResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/team/me",
});
}
/**
* Team Members
* Return member list for the specified team
* @param teamSlug
* @param sindriTeamId Required for Sindri JWT authentication.
* @returns TeamMembersResponse OK
* @throws ApiError
*/
public teamMembers(
teamSlug: string,
sindriTeamId?: string | null,
): CancelablePromise<TeamMembersResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/team/{team_slug}/members",
path: {
team_slug: teamSlug,
},
headers: {
"Sindri-Team-Id": sindriTeamId,
},
errors: {
404: `Not Found`,
},
});
}
/**
* Team Remove Member
* Remove a user from the specified team. Revokes all team API keys if the removed user was the last team member.
* @param requestBody
* @param sindriTeamId Required for Sindri JWT authentication.
* @returns ActionResponse OK
* @throws ApiError
*/
public teamRemoveMember(
requestBody: TeamRemoveMemberInput,
sindriTeamId?: string | null,
): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/team/remove-member",
headers: {
"Sindri-Team-Id": sindriTeamId,
},
body: requestBody,
mediaType: "application/json",
errors: {
403: `Forbidden`,
404: `Not Found`,
},
});
}
/**
* Update Team Settings
* Update team settings.
* @param requestBody
* @returns TeamDetail OK
* @throws ApiError
*/
public teamSettings(
requestBody: TeamSettingsInput,
): CancelablePromise<TeamDetail> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/team/settings",
body: requestBody,
mediaType: "application/json",
errors: {
404: `Not Found`,
422: `Unprocessable Entity`,
500: `Internal Server Error`,
},
});
}
/**
* Login User
* Login a user.
* @param requestBody
* @returns ActionResponse OK
* @throws ApiError
*/
public userLogin(
requestBody: UserLoginInput,
): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/user/login",
body: requestBody,
mediaType: "application/json",
errors: {
401: `Unauthorized`,
403: `Forbidden`,
},
});
}
/**
* Logout User
* Logout a user.
* @returns ActionResponse OK
* @throws ApiError
*/
public userLogout(): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/user/logout",
});
}
/**
* User Me
* Obtain user details. Requires user authentication.
* @returns UserMeResponse OK
* @throws ApiError
*/
public userMe(): CancelablePromise<UserMeResponse> {
return this.httpRequest.request({
method: "GET",
url: "/api/v1/user/me",
});
}
/**
* Change Password
* Change user password. Requires user authentication.
* @param requestBody
* @returns ActionResponse OK
* @throws ApiError
*/
public userPassword(
requestBody: PasswordChangeInput,
): CancelablePromise<ActionResponse> {
return this.httpRequest.request({
method: "POST",
url: "/api/v1/user/password",
body: requestBody,
mediaType: "application/json",
errors: {
422: `Unprocessable Entity`,
},
});
}
}