Add offset-based pagination to 9 list endpoints

Apply the same page[limit]/page[offset] pagination pattern from
GET /runs to: workflows, workflow runs, retros, sessions, projects,
branches, saved queries, query history, and stage turns.

Each endpoint now returns { data, meta: { has_more } } instead of
a bare array. Includes OpenAPI spec updates, demo handler changes,
regenerated TS client, updated frontend consumers, and a new
pagination conformance test.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-03-04 23:56:32 -05:00
parent ba90d1e90e
commit af12b0b697
27 changed files with 976 additions and 177 deletions

View file

@ -1,7 +1,7 @@
import { Link, Outlet, useNavigate } from "react-router";
import { PlusIcon } from "@heroicons/react/24/outline";
import { apiJson } from "../api-client";
import type { SavedQuery as ApiSavedQuery, HistoryEntry as ApiHistoryEntry } from "@qltysh/arc-api-client";
import type { PaginatedSavedQueryList, PaginatedHistoryEntryList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/insights";
export function meta({}: Route.MetaArgs) {
@ -29,9 +29,9 @@ export interface HistoryEntry {
}
export async function loader({ request }: Route.LoaderArgs) {
const [apiQueries, apiHistory] = await Promise.all([
apiJson<ApiSavedQuery[]>("/insights/queries", { request }),
apiJson<ApiHistoryEntry[]>("/insights/history", { request }),
const [{ data: apiQueries }, { data: apiHistory }] = await Promise.all([
apiJson<PaginatedSavedQueryList>("/insights/queries", { request }),
apiJson<PaginatedHistoryEntryList>("/insights/history", { request }),
]);
const savedQueries: SavedQuery[] = apiQueries.map((q) => ({
id: q.id,

View file

@ -4,7 +4,7 @@ import { MagnifyingGlassIcon, ChevronDownIcon } from "@heroicons/react/24/outlin
import { smoothnessConfig, formatDuration } from "../data/retros";
import type { SmoothnessRating } from "../data/retros";
import { apiJson } from "../api-client";
import type { RetroListItem } from "@qltysh/arc-api-client";
import type { PaginatedRetroList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/retros";
interface RetroRow {
@ -18,7 +18,7 @@ interface RetroRow {
}
export async function loader({ request }: Route.LoaderArgs) {
const apiRetros = await apiJson<RetroListItem[]>("/retros", { request });
const { data: apiRetros } = await apiJson<PaginatedRetroList>("/retros", { request });
const retros: RetroRow[] = apiRetros.map((r) => ({
run_id: r.run_id,
workflow_name: r.workflow_name,

View file

@ -5,7 +5,7 @@ import { CheckCircleIcon, ArrowPathIcon, PauseCircleIcon, XCircleIcon } from "@h
import { DocumentTextIcon, MapIcon, CommandLineIcon, ChatBubbleLeftIcon, WrenchScrewdriverIcon } from "@heroicons/react/24/outline";
import { apiJson } from "../api-client";
import { formatDurationSecs } from "../lib/format";
import type { RunStage, StageTurn as ApiStageTurn } from "@qltysh/arc-api-client";
import type { RunStage, StageTurn as ApiStageTurn, PaginatedStageTurnList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/run-stages";
export const handle = { wide: true };
@ -32,7 +32,8 @@ export async function loader({ request, params }: Route.LoaderArgs) {
const selectedStageId = params.stageId ?? stages[0]?.id;
let turns: ApiStageTurn[] = [];
if (selectedStageId) {
turns = await apiJson<ApiStageTurn[]>(`/runs/${params.id}/stages/${selectedStageId}/turns`, { request });
const { data } = await apiJson<PaginatedStageTurnList>(`/runs/${params.id}/stages/${selectedStageId}/turns`, { request });
turns = data;
}
return { stages, turns };

View file

@ -10,7 +10,7 @@ import {
WrenchScrewdriverIcon,
} from "@heroicons/react/24/outline";
import { apiJson } from "../api-client";
import type { SessionDetail as ApiSessionDetail, SessionGroup } from "@qltysh/arc-api-client";
import type { SessionDetail as ApiSessionDetail, PaginatedSessionGroupList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/session-detail";
export const handle = { hideHeader: true, wide: true };
@ -20,9 +20,9 @@ export function meta({}: Route.MetaArgs) {
}
export async function loader({ request, params }: Route.LoaderArgs) {
const [apiSession, apiGroups] = await Promise.all([
const [apiSession, { data: apiGroups }] = await Promise.all([
apiJson<ApiSessionDetail>(`/sessions/${params.sessionId}`, { request }),
apiJson<SessionGroup[]>("/sessions", { request }),
apiJson<PaginatedSessionGroupList>("/sessions", { request }),
]);
const session: Session = {
id: apiSession.id,
@ -236,7 +236,7 @@ interface SessionGroupType {
sessions: { id: string; title: string; repo: string; time: string }[];
}
const sessionGroups: SessionGroup[] = [
const sessionGroups: SessionGroupType[] = [
{
label: "Today",
sessions: [

View file

@ -21,7 +21,7 @@ import {
} from "@heroicons/react/24/outline";
import { Link } from "react-router";
import { apiJson } from "../api-client";
import type { Project, SessionGroup } from "@qltysh/arc-api-client";
import type { PaginatedProjectList, PaginatedSessionGroupList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/start";
export const handle = { hideHeader: true, wide: true };
@ -31,9 +31,9 @@ export function meta({}: Route.MetaArgs) {
}
export async function loader({ request }: Route.LoaderArgs) {
const [apiProjects, apiSessions] = await Promise.all([
apiJson<Project[]>("/projects", { request }),
apiJson<SessionGroup[]>("/sessions", { request }),
const [{ data: apiProjects }, { data: apiSessions }] = await Promise.all([
apiJson<PaginatedProjectList>("/projects", { request }),
apiJson<PaginatedSessionGroupList>("/sessions", { request }),
]);
const projects = apiProjects.map((p) => ({ id: p.id, name: p.name }));
const sessionGroups = apiSessions.map((g) => ({

View file

@ -5,7 +5,7 @@ import { ciConfig, deriveCiStatus, statusColors } from "../data/runs";
import type { ColumnStatus, RunWithStatus } from "../data/runs";
import { apiJson } from "../api-client";
import { formatElapsedSecs, formatDurationSecs } from "../lib/format";
import type { RunListItem } from "@qltysh/arc-api-client";
import type { PaginatedRunList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/workflow-runs";
const columnNames: Record<ColumnStatus, string> = {
@ -16,7 +16,7 @@ const columnNames: Record<ColumnStatus, string> = {
};
export async function loader({ request, params }: Route.LoaderArgs) {
const apiRuns = await apiJson<RunListItem[]>(`/workflows/${params.name}/runs`, { request });
const { data: apiRuns } = await apiJson<PaginatedRunList>(`/workflows/${params.name}/runs`, { request });
const runs: RunWithStatus[] = apiRuns.map((r) => ({
id: r.id,
repo: r.repo,

View file

@ -14,7 +14,7 @@ import {
} from "@heroicons/react/24/outline";
import { Link } from "react-router";
import { apiJson } from "../api-client";
import type { WorkflowListItem } from "@qltysh/arc-api-client";
import type { PaginatedWorkflowList } from "@qltysh/arc-api-client";
import type { Route } from "./+types/workflows";
export function meta({}: Route.MetaArgs) {
@ -105,7 +105,7 @@ interface WorkflowData {
}
export async function loader({ request }: Route.LoaderArgs) {
const apiWorkflows = await apiJson<WorkflowListItem[]>("/workflows", { request });
const { data: apiWorkflows } = await apiJson<PaginatedWorkflowList>("/workflows", { request });
const workflows: WorkflowData[] = apiWorkflows.map((w) => ({
name: w.name,
slug: w.slug,

View file

@ -52,8 +52,15 @@ pub async fn get_stage_turns(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Path((_id, _stage_id)): Path<(String, String)>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(runs::turns())).into_response()
let all_items = runs::turns();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
#[derive(serde::Deserialize)]
@ -408,8 +415,15 @@ pub async fn get_run_retro(
pub async fn list_workflows(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(workflows::list_items())).into_response()
let all_items = workflows::list_items();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
pub async fn get_workflow(
@ -427,12 +441,18 @@ pub async fn list_workflow_runs(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Path(name): Path<String>,
Query(pagination): Query<PaginationParams>,
) -> Response {
let items: Vec<_> = runs::list_items()
let all_items: Vec<_> = runs::list_items()
.into_iter()
.filter(|r| r.workflow == name)
.collect();
(StatusCode::OK, Json(items)).into_response()
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
pub async fn trigger_workflow_run_stub(
@ -472,8 +492,15 @@ pub async fn get_verification_detail(
pub async fn list_retros(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(retros::list_items())).into_response()
let all_items = retros::list_items();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
// ── Sessions ───────────────────────────────────────────────────────────
@ -481,8 +508,15 @@ pub async fn list_retros(
pub async fn list_sessions(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(sessions::groups())).into_response()
let all_items = sessions::groups();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
pub async fn create_session_stub(
@ -529,8 +563,15 @@ pub async fn session_events_stub(
pub async fn list_saved_queries(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(insights::saved_queries())).into_response()
let all_items = insights::saved_queries();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
pub async fn save_query_stub(
@ -583,8 +624,15 @@ pub async fn execute_query_stub(
pub async fn list_query_history(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(insights::history())).into_response()
let all_items = insights::history();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
// ── Settings ───────────────────────────────────────────────────────────
@ -601,16 +649,30 @@ pub async fn get_settings(
pub async fn list_projects(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(projects::list_items())).into_response()
let all_items = projects::list_items();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
pub async fn list_branches(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Path(_id): Path<String>,
Query(pagination): Query<PaginationParams>,
) -> Response {
(StatusCode::OK, Json(projects::branches())).into_response()
let all_items = projects::branches();
let limit = pagination.limit.clamp(1, 100) as usize;
let offset = pagination.offset as usize;
let page: Vec<_> = all_items.into_iter().skip(offset).take(limit + 1).collect();
let has_more = page.len() > limit;
let data: Vec<_> = page.into_iter().take(limit).collect();
(StatusCode::OK, Json(json!({ "data": data, "meta": { "has_more": has_more } }))).into_response()
}
// ── Usage ──────────────────────────────────────────────────────────────

View file

@ -0,0 +1,138 @@
//! Tests that paginated list endpoints return `{ data, meta: { has_more } }`.
use std::sync::Arc;
use arc_api::jwt_auth::AuthMode;
use arc_api::server::{build_router, create_app_state_with_options};
use arc_workflows::handler::exit::ExitHandler;
use arc_workflows::handler::start::StartHandler;
use arc_workflows::handler::HandlerRegistry;
use arc_workflows::interviewer::Interviewer;
use axum::body::Body;
use axum::http::{Request, StatusCode};
use tower::ServiceExt;
fn test_registry(_interviewer: Arc<dyn Interviewer>) -> HandlerRegistry {
let mut registry = HandlerRegistry::new(Box::new(StartHandler));
registry.register("start", Box::new(StartHandler));
registry.register("exit", Box::new(ExitHandler));
registry
}
async fn test_db() -> sqlx::SqlitePool {
let pool = arc_db::connect_memory().await.unwrap();
arc_db::initialize_db(&pool).await.unwrap();
pool
}
async fn get_json(app: axum::Router, uri: &str) -> serde_json::Value {
let req = Request::builder()
.method("GET")
.uri(uri)
.body(Body::empty())
.unwrap();
let response = app.clone().oneshot(req).await.unwrap();
assert_eq!(response.status(), StatusCode::OK, "GET {uri} failed");
let body = axum::body::to_bytes(response.into_body(), usize::MAX)
.await
.unwrap();
serde_json::from_slice(&body).unwrap()
}
/// Assert that a value has the paginated shape: `{ data: [...], meta: { has_more: bool } }`
fn assert_paginated_shape(json: &serde_json::Value, context: &str) {
assert!(json.get("data").is_some(), "{context}: missing 'data' key");
assert!(
json["data"].is_array(),
"{context}: 'data' is not an array"
);
assert!(json.get("meta").is_some(), "{context}: missing 'meta' key");
assert!(
json["meta"].get("has_more").is_some(),
"{context}: missing 'meta.has_more'"
);
assert!(
json["meta"]["has_more"].is_boolean(),
"{context}: 'meta.has_more' is not boolean"
);
}
struct PaginatedEndpoint {
path: &'static str,
name: &'static str,
}
const ENDPOINTS: &[PaginatedEndpoint] = &[
PaginatedEndpoint {
path: "/workflows",
name: "listWorkflows",
},
PaginatedEndpoint {
path: "/workflows/implement/runs",
name: "listWorkflowRuns",
},
PaginatedEndpoint {
path: "/retros",
name: "listRetros",
},
PaginatedEndpoint {
path: "/sessions",
name: "listSessions",
},
PaginatedEndpoint {
path: "/projects",
name: "listProjects",
},
PaginatedEndpoint {
path: "/projects/arc-web/branches",
name: "listBranches",
},
PaginatedEndpoint {
path: "/insights/queries",
name: "listSavedQueries",
},
PaginatedEndpoint {
path: "/insights/history",
name: "listQueryHistory",
},
PaginatedEndpoint {
path: "/runs/run-1/stages/detect-drift/turns",
name: "listStageTurns",
},
];
#[tokio::test]
async fn paginated_endpoints_return_correct_shape() {
let state = create_app_state_with_options(test_db().await, test_registry, false, true, 5);
let app = build_router(state, AuthMode::Disabled);
for ep in ENDPOINTS {
// Default request: paginated shape, has_more = false (fixtures fit in default page)
let json = get_json(app.clone(), ep.path).await;
assert_paginated_shape(&json, ep.name);
assert_eq!(
json["meta"]["has_more"], false,
"{}: default request should have has_more=false",
ep.name
);
// limit=1: at most 1 item, has_more = true (all fixtures have >1 item)
let uri = if ep.path.contains('?') {
format!("{}&page[limit]=1", ep.path)
} else {
format!("{}?page[limit]=1", ep.path)
};
let json = get_json(app.clone(), &uri).await;
assert_paginated_shape(&json, &format!("{} limit=1", ep.name));
assert!(
json["data"].as_array().unwrap().len() <= 1,
"{}: limit=1 returned more than 1 item",
ep.name
);
assert_eq!(
json["meta"]["has_more"], true,
"{}: limit=1 should have has_more=true",
ep.name
);
}
}

View file

@ -401,15 +401,15 @@ paths:
required: true
schema:
type: string
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of conversation turns
description: Paginated list of conversation turns
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/StageTurn"
$ref: "#/components/schemas/PaginatedStageTurnList"
"404":
description: Run or stage not found
content:
@ -574,15 +574,16 @@ paths:
operationId: listWorkflows
tags: [Workflows]
summary: List Workflows
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of workflows
description: Paginated list of workflows
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/WorkflowListItem"
$ref: "#/components/schemas/PaginatedWorkflowList"
/workflows/{name}:
get:
@ -620,15 +621,15 @@ paths:
required: true
schema:
type: string
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of runs
description: Paginated list of runs
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RunListItem"
$ref: "#/components/schemas/PaginatedRunList"
"404":
description: Workflow not found
content:
@ -708,15 +709,16 @@ paths:
operationId: listRetros
tags: [Retros]
summary: List Retros
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of retros
description: Paginated list of retros
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RetroListItem"
$ref: "#/components/schemas/PaginatedRetroList"
# ── Sessions ──────────────────────────────────────────────────────────
@ -725,15 +727,16 @@ paths:
operationId: listSessions
tags: [Sessions]
summary: List Sessions
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of session groups
description: Paginated list of session groups
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/SessionGroup"
$ref: "#/components/schemas/PaginatedSessionGroupList"
post:
operationId: createSession
tags: [Sessions]
@ -845,15 +848,16 @@ paths:
operationId: listSavedQueries
tags: [Insights]
summary: List Saved Queries
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of saved queries
description: Paginated list of saved queries
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/SavedQuery"
$ref: "#/components/schemas/PaginatedSavedQueryList"
post:
operationId: createSavedQuery
tags: [Insights]
@ -946,15 +950,16 @@ paths:
operationId: listQueryHistory
tags: [Insights]
summary: List Query History
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of history entries
description: Paginated list of history entries
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/HistoryEntry"
$ref: "#/components/schemas/PaginatedHistoryEntryList"
# ── Usage ────────────────────────────────────────────────────────────
@ -996,15 +1001,16 @@ paths:
operationId: listProjects
tags: [Projects]
summary: List Projects
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of projects
description: Paginated list of projects
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Project"
$ref: "#/components/schemas/PaginatedProjectList"
/projects/{id}/branches:
get:
@ -1017,15 +1023,15 @@ paths:
required: true
schema:
type: string
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of branches
description: Paginated list of branches
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Branch"
$ref: "#/components/schemas/PaginatedBranchList"
"404":
description: Project not found
content:
@ -1083,6 +1089,110 @@ components:
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedWorkflowList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/WorkflowListItem"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedRetroList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/RetroListItem"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedSessionGroupList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/SessionGroup"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedProjectList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/Project"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedBranchList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/Branch"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedSavedQueryList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/SavedQuery"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedHistoryEntryList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/HistoryEntry"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedStageTurnList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/StageTurn"
meta:
$ref: "#/components/schemas/PaginationMeta"
# ── Existing Run Schemas ────────────────────────────────────────────
RunStatus:

View file

@ -401,15 +401,15 @@ paths:
required: true
schema:
type: string
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of conversation turns
description: Paginated list of conversation turns
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/StageTurn"
$ref: "#/components/schemas/PaginatedStageTurnList"
"404":
description: Run or stage not found
content:
@ -574,15 +574,16 @@ paths:
operationId: listWorkflows
tags: [Workflows]
summary: List Workflows
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of workflows
description: Paginated list of workflows
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/WorkflowListItem"
$ref: "#/components/schemas/PaginatedWorkflowList"
/workflows/{name}:
get:
@ -620,15 +621,15 @@ paths:
required: true
schema:
type: string
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of runs
description: Paginated list of runs
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RunListItem"
$ref: "#/components/schemas/PaginatedRunList"
"404":
description: Workflow not found
content:
@ -708,15 +709,16 @@ paths:
operationId: listRetros
tags: [Retros]
summary: List Retros
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of retros
description: Paginated list of retros
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/RetroListItem"
$ref: "#/components/schemas/PaginatedRetroList"
# ── Sessions ──────────────────────────────────────────────────────────
@ -725,15 +727,16 @@ paths:
operationId: listSessions
tags: [Sessions]
summary: List Sessions
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of session groups
description: Paginated list of session groups
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/SessionGroup"
$ref: "#/components/schemas/PaginatedSessionGroupList"
post:
operationId: createSession
tags: [Sessions]
@ -845,15 +848,16 @@ paths:
operationId: listSavedQueries
tags: [Insights]
summary: List Saved Queries
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of saved queries
description: Paginated list of saved queries
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/SavedQuery"
$ref: "#/components/schemas/PaginatedSavedQueryList"
post:
operationId: createSavedQuery
tags: [Insights]
@ -946,15 +950,16 @@ paths:
operationId: listQueryHistory
tags: [Insights]
summary: List Query History
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of history entries
description: Paginated list of history entries
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/HistoryEntry"
$ref: "#/components/schemas/PaginatedHistoryEntryList"
# ── Usage ────────────────────────────────────────────────────────────
@ -996,15 +1001,16 @@ paths:
operationId: listProjects
tags: [Projects]
summary: List Projects
parameters:
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of projects
description: Paginated list of projects
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Project"
$ref: "#/components/schemas/PaginatedProjectList"
/projects/{id}/branches:
get:
@ -1017,15 +1023,15 @@ paths:
required: true
schema:
type: string
- $ref: "#/components/parameters/PageLimit"
- $ref: "#/components/parameters/PageOffset"
responses:
"200":
description: Array of branches
description: Paginated list of branches
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Branch"
$ref: "#/components/schemas/PaginatedBranchList"
"404":
description: Project not found
content:
@ -1083,6 +1089,110 @@ components:
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedWorkflowList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/WorkflowListItem"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedRetroList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/RetroListItem"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedSessionGroupList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/SessionGroup"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedProjectList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/Project"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedBranchList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/Branch"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedSavedQueryList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/SavedQuery"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedHistoryEntryList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/HistoryEntry"
meta:
$ref: "#/components/schemas/PaginationMeta"
PaginatedStageTurnList:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: "#/components/schemas/StageTurn"
meta:
$ref: "#/components/schemas/PaginationMeta"
# ── Existing Run Schemas ────────────────────────────────────────────
RunStatus:

View file

@ -40,7 +40,15 @@ models/file-diff.ts
models/health-response.ts
models/history-entry.ts
models/index.ts
models/paginated-branch-list.ts
models/paginated-history-entry-list.ts
models/paginated-project-list.ts
models/paginated-retro-list.ts
models/paginated-run-list.ts
models/paginated-saved-query-list.ts
models/paginated-session-group-list.ts
models/paginated-stage-turn-list.ts
models/paginated-workflow-list.ts
models/pagination-meta.ts
models/preview-url-request.ts
models/preview-url-response.ts

View file

@ -28,7 +28,9 @@ import type { ExecuteQueryRequest } from '../models';
// @ts-ignore
import type { ExecuteQueryResponse } from '../models';
// @ts-ignore
import type { HistoryEntry } from '../models';
import type { PaginatedHistoryEntryList } from '../models';
// @ts-ignore
import type { PaginatedSavedQueryList } from '../models';
// @ts-ignore
import type { SaveQueryRequest } from '../models';
// @ts-ignore
@ -145,10 +147,12 @@ export const InsightsApiAxiosParamCreator = function (configuration?: Configurat
/**
*
* @summary List Query History
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listQueryHistory: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listQueryHistory: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/insights/history`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@ -161,6 +165,14 @@ export const InsightsApiAxiosParamCreator = function (configuration?: Configurat
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -175,10 +187,12 @@ export const InsightsApiAxiosParamCreator = function (configuration?: Configurat
/**
*
* @summary List Saved Queries
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listSavedQueries: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listSavedQueries: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/insights/queries`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@ -191,6 +205,14 @@ export const InsightsApiAxiosParamCreator = function (configuration?: Configurat
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -292,11 +314,13 @@ export const InsightsApiFp = function(configuration?: Configuration) {
/**
*
* @summary List Query History
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listQueryHistory(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<HistoryEntry>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listQueryHistory(options);
async listQueryHistory(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedHistoryEntryList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listQueryHistory(pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['InsightsApi.listQueryHistory']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -304,11 +328,13 @@ export const InsightsApiFp = function(configuration?: Configuration) {
/**
*
* @summary List Saved Queries
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listSavedQueries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<SavedQuery>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listSavedQueries(options);
async listSavedQueries(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedSavedQueryList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listSavedQueries(pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['InsightsApi.listSavedQueries']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -369,20 +395,24 @@ export const InsightsApiFactory = function (configuration?: Configuration, baseP
/**
*
* @summary List Query History
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listQueryHistory(options?: RawAxiosRequestConfig): AxiosPromise<Array<HistoryEntry>> {
return localVarFp.listQueryHistory(options).then((request) => request(axios, basePath));
listQueryHistory(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedHistoryEntryList> {
return localVarFp.listQueryHistory(pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
* @summary List Saved Queries
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listSavedQueries(options?: RawAxiosRequestConfig): AxiosPromise<Array<SavedQuery>> {
return localVarFp.listSavedQueries(options).then((request) => request(axios, basePath));
listSavedQueries(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedSavedQueryList> {
return localVarFp.listSavedQueries(pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
@ -438,21 +468,25 @@ export class InsightsApi extends BaseAPI {
/**
*
* @summary List Query History
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listQueryHistory(options?: RawAxiosRequestConfig) {
return InsightsApiFp(this.configuration).listQueryHistory(options).then((request) => request(this.axios, this.basePath));
public listQueryHistory(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return InsightsApiFp(this.configuration).listQueryHistory(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary List Saved Queries
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listSavedQueries(options?: RawAxiosRequestConfig) {
return InsightsApiFp(this.configuration).listSavedQueries(options).then((request) => request(this.axios, this.basePath));
public listSavedQueries(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return InsightsApiFp(this.configuration).listSavedQueries(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**

View file

@ -22,11 +22,11 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
// @ts-ignore
import type { Branch } from '../models';
// @ts-ignore
import type { ErrorResponse } from '../models';
// @ts-ignore
import type { Project } from '../models';
import type { PaginatedBranchList } from '../models';
// @ts-ignore
import type { PaginatedProjectList } from '../models';
/**
* ProjectsApi - axios parameter creator
*/
@ -36,10 +36,12 @@ export const ProjectsApiAxiosParamCreator = function (configuration?: Configurat
*
* @summary List Branches
* @param {string} id
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listBranches: async (id: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listBranches: async (id: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('listBranches', 'id', id)
const localVarPath = `/projects/{id}/branches`
@ -55,6 +57,14 @@ export const ProjectsApiAxiosParamCreator = function (configuration?: Configurat
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -69,10 +79,12 @@ export const ProjectsApiAxiosParamCreator = function (configuration?: Configurat
/**
*
* @summary List Projects
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listProjects: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listProjects: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/projects`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@ -85,6 +97,14 @@ export const ProjectsApiAxiosParamCreator = function (configuration?: Configurat
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -109,11 +129,13 @@ export const ProjectsApiFp = function(configuration?: Configuration) {
*
* @summary List Branches
* @param {string} id
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listBranches(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Branch>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listBranches(id, options);
async listBranches(id: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedBranchList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listBranches(id, pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['ProjectsApi.listBranches']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -121,11 +143,13 @@ export const ProjectsApiFp = function(configuration?: Configuration) {
/**
*
* @summary List Projects
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listProjects(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Project>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listProjects(options);
async listProjects(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedProjectList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listProjects(pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['ProjectsApi.listProjects']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -143,20 +167,24 @@ export const ProjectsApiFactory = function (configuration?: Configuration, baseP
*
* @summary List Branches
* @param {string} id
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listBranches(id: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<Branch>> {
return localVarFp.listBranches(id, options).then((request) => request(axios, basePath));
listBranches(id: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedBranchList> {
return localVarFp.listBranches(id, pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
* @summary List Projects
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listProjects(options?: RawAxiosRequestConfig): AxiosPromise<Array<Project>> {
return localVarFp.listProjects(options).then((request) => request(axios, basePath));
listProjects(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedProjectList> {
return localVarFp.listProjects(pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
};
};
@ -169,21 +197,25 @@ export class ProjectsApi extends BaseAPI {
*
* @summary List Branches
* @param {string} id
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listBranches(id: string, options?: RawAxiosRequestConfig) {
return ProjectsApiFp(this.configuration).listBranches(id, options).then((request) => request(this.axios, this.basePath));
public listBranches(id: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return ProjectsApiFp(this.configuration).listBranches(id, pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary List Projects
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listProjects(options?: RawAxiosRequestConfig) {
return ProjectsApiFp(this.configuration).listProjects(options).then((request) => request(this.axios, this.basePath));
public listProjects(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return ProjectsApiFp(this.configuration).listProjects(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
}

View file

@ -24,7 +24,7 @@ import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError
// @ts-ignore
import type { ErrorResponse } from '../models';
// @ts-ignore
import type { RetroListItem } from '../models';
import type { PaginatedRetroList } from '../models';
/**
* RetrosApi - axios parameter creator
*/
@ -33,10 +33,12 @@ export const RetrosApiAxiosParamCreator = function (configuration?: Configuratio
/**
*
* @summary List Retros
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listRetros: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listRetros: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/retros`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@ -49,6 +51,14 @@ export const RetrosApiAxiosParamCreator = function (configuration?: Configuratio
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -106,11 +116,13 @@ export const RetrosApiFp = function(configuration?: Configuration) {
/**
*
* @summary List Retros
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listRetros(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RetroListItem>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listRetros(options);
async listRetros(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedRetroList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listRetros(pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RetrosApi.listRetros']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -140,11 +152,13 @@ export const RetrosApiFactory = function (configuration?: Configuration, basePat
/**
*
* @summary List Retros
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listRetros(options?: RawAxiosRequestConfig): AxiosPromise<Array<RetroListItem>> {
return localVarFp.listRetros(options).then((request) => request(axios, basePath));
listRetros(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedRetroList> {
return localVarFp.listRetros(pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
@ -166,11 +180,13 @@ export class RetrosApi extends BaseAPI {
/**
*
* @summary List Retros
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listRetros(options?: RawAxiosRequestConfig) {
return RetrosApiFp(this.configuration).listRetros(options).then((request) => request(this.axios, this.basePath));
public listRetros(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return RetrosApiFp(this.configuration).listRetros(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**

View file

@ -24,9 +24,9 @@ import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError
// @ts-ignore
import type { ErrorResponse } from '../models';
// @ts-ignore
import type { RunStage } from '../models';
import type { PaginatedStageTurnList } from '../models';
// @ts-ignore
import type { StageTurn } from '../models';
import type { RunStage } from '../models';
/**
* RunInternalsApi - axios parameter creator
*/
@ -71,10 +71,12 @@ export const RunInternalsApiAxiosParamCreator = function (configuration?: Config
* @summary List Stage Turns
* @param {string} id
* @param {string} stageId
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listStageTurns: async (id: string, stageId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listStageTurns: async (id: string, stageId: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('listStageTurns', 'id', id)
// verify required parameter 'stageId' is not null or undefined
@ -93,6 +95,14 @@ export const RunInternalsApiAxiosParamCreator = function (configuration?: Config
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -233,11 +243,13 @@ export const RunInternalsApiFp = function(configuration?: Configuration) {
* @summary List Stage Turns
* @param {string} id
* @param {string} stageId
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listStageTurns(id: string, stageId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<StageTurn>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listStageTurns(id, stageId, options);
async listStageTurns(id: string, stageId: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedStageTurnList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listStageTurns(id, stageId, pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['RunInternalsApi.listStageTurns']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -305,11 +317,13 @@ export const RunInternalsApiFactory = function (configuration?: Configuration, b
* @summary List Stage Turns
* @param {string} id
* @param {string} stageId
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listStageTurns(id: string, stageId: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<StageTurn>> {
return localVarFp.listStageTurns(id, stageId, options).then((request) => request(axios, basePath));
listStageTurns(id: string, stageId: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedStageTurnList> {
return localVarFp.listStageTurns(id, stageId, pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
@ -364,11 +378,13 @@ export class RunInternalsApi extends BaseAPI {
* @summary List Stage Turns
* @param {string} id
* @param {string} stageId
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listStageTurns(id: string, stageId: string, options?: RawAxiosRequestConfig) {
return RunInternalsApiFp(this.configuration).listStageTurns(id, stageId, options).then((request) => request(this.axios, this.basePath));
public listStageTurns(id: string, stageId: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return RunInternalsApiFp(this.configuration).listStageTurns(id, stageId, pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**

View file

@ -28,12 +28,12 @@ import type { CreateSessionResponse } from '../models';
// @ts-ignore
import type { ErrorResponse } from '../models';
// @ts-ignore
import type { PaginatedSessionGroupList } from '../models';
// @ts-ignore
import type { SendMessageRequest } from '../models';
// @ts-ignore
import type { SessionDetail } from '../models';
// @ts-ignore
import type { SessionGroup } from '../models';
// @ts-ignore
import type { SteerRun200Response } from '../models';
/**
* SessionsApi - axios parameter creator
@ -78,10 +78,12 @@ export const SessionsApiAxiosParamCreator = function (configuration?: Configurat
/**
*
* @summary List Sessions
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listSessions: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listSessions: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/sessions`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@ -94,6 +96,14 @@ export const SessionsApiAxiosParamCreator = function (configuration?: Configurat
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -237,11 +247,13 @@ export const SessionsApiFp = function(configuration?: Configuration) {
/**
*
* @summary List Sessions
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listSessions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<SessionGroup>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listSessions(options);
async listSessions(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedSessionGroupList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listSessions(pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['SessionsApi.listSessions']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -308,11 +320,13 @@ export const SessionsApiFactory = function (configuration?: Configuration, baseP
/**
*
* @summary List Sessions
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listSessions(options?: RawAxiosRequestConfig): AxiosPromise<Array<SessionGroup>> {
return localVarFp.listSessions(options).then((request) => request(axios, basePath));
listSessions(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedSessionGroupList> {
return localVarFp.listSessions(pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
@ -366,11 +380,13 @@ export class SessionsApi extends BaseAPI {
/**
*
* @summary List Sessions
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listSessions(options?: RawAxiosRequestConfig) {
return SessionsApiFp(this.configuration).listSessions(options).then((request) => request(this.axios, this.basePath));
public listSessions(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return SessionsApiFp(this.configuration).listSessions(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**

View file

@ -24,13 +24,13 @@ import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError
// @ts-ignore
import type { ErrorResponse } from '../models';
// @ts-ignore
import type { RunListItem } from '../models';
import type { PaginatedRunList } from '../models';
// @ts-ignore
import type { PaginatedWorkflowList } from '../models';
// @ts-ignore
import type { StartRunResponse } from '../models';
// @ts-ignore
import type { WorkflowDetail } from '../models';
// @ts-ignore
import type { WorkflowListItem } from '../models';
/**
* WorkflowsApi - axios parameter creator
*/
@ -40,10 +40,12 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura
*
* @summary List Workflow Runs
* @param {string} name
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listWorkflowRuns: async (name: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listWorkflowRuns: async (name: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'name' is not null or undefined
assertParamExists('listWorkflowRuns', 'name', name)
const localVarPath = `/workflows/{name}/runs`
@ -59,6 +61,14 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -73,10 +83,12 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura
/**
*
* @summary List Workflows
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listWorkflows: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
listWorkflows: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/workflows`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@ -89,6 +101,14 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
if (pageLimit !== undefined) {
localVarQueryParameter['page[limit]'] = pageLimit;
}
if (pageOffset !== undefined) {
localVarQueryParameter['page[offset]'] = pageOffset;
}
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -181,11 +201,13 @@ export const WorkflowsApiFp = function(configuration?: Configuration) {
*
* @summary List Workflow Runs
* @param {string} name
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listWorkflowRuns(name: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<RunListItem>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflowRuns(name, options);
async listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedRunList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflowRuns(name, pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.listWorkflowRuns']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -193,11 +215,13 @@ export const WorkflowsApiFp = function(configuration?: Configuration) {
/**
*
* @summary List Workflows
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listWorkflows(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<WorkflowListItem>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflows(options);
async listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedWorkflowList>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflows(pageLimit, pageOffset, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.listWorkflows']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@ -241,20 +265,24 @@ export const WorkflowsApiFactory = function (configuration?: Configuration, base
*
* @summary List Workflow Runs
* @param {string} name
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listWorkflowRuns(name: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<RunListItem>> {
return localVarFp.listWorkflowRuns(name, options).then((request) => request(axios, basePath));
listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedRunList> {
return localVarFp.listWorkflowRuns(name, pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
* @summary List Workflows
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listWorkflows(options?: RawAxiosRequestConfig): AxiosPromise<Array<WorkflowListItem>> {
return localVarFp.listWorkflows(options).then((request) => request(axios, basePath));
listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedWorkflowList> {
return localVarFp.listWorkflows(pageLimit, pageOffset, options).then((request) => request(axios, basePath));
},
/**
*
@ -287,21 +315,25 @@ export class WorkflowsApi extends BaseAPI {
*
* @summary List Workflow Runs
* @param {string} name
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listWorkflowRuns(name: string, options?: RawAxiosRequestConfig) {
return WorkflowsApiFp(this.configuration).listWorkflowRuns(name, options).then((request) => request(this.axios, this.basePath));
public listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return WorkflowsApiFp(this.configuration).listWorkflowRuns(name, pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary List Workflows
* @param {number} [pageLimit]
* @param {number} [pageOffset]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public listWorkflows(options?: RawAxiosRequestConfig) {
return WorkflowsApiFp(this.configuration).listWorkflows(options).then((request) => request(this.axios, this.basePath));
public listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) {
return WorkflowsApiFp(this.configuration).listWorkflows(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath));
}
/**

View file

@ -21,7 +21,15 @@ export * from './file-checkpoint';
export * from './file-diff';
export * from './health-response';
export * from './history-entry';
export * from './paginated-branch-list';
export * from './paginated-history-entry-list';
export * from './paginated-project-list';
export * from './paginated-retro-list';
export * from './paginated-run-list';
export * from './paginated-saved-query-list';
export * from './paginated-session-group-list';
export * from './paginated-stage-turn-list';
export * from './paginated-workflow-list';
export * from './pagination-meta';
export * from './preview-url-request';
export * from './preview-url-response';

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { Branch } from './branch';
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
export interface PaginatedBranchList {
'data': Array<Branch>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { HistoryEntry } from './history-entry';
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
export interface PaginatedHistoryEntryList {
'data': Array<HistoryEntry>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
// May contain unused imports in some cases
// @ts-ignore
import type { Project } from './project';
export interface PaginatedProjectList {
'data': Array<Project>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
// May contain unused imports in some cases
// @ts-ignore
import type { RetroListItem } from './retro-list-item';
export interface PaginatedRetroList {
'data': Array<RetroListItem>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
// May contain unused imports in some cases
// @ts-ignore
import type { SavedQuery } from './saved-query';
export interface PaginatedSavedQueryList {
'data': Array<SavedQuery>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
// May contain unused imports in some cases
// @ts-ignore
import type { SessionGroup } from './session-group';
export interface PaginatedSessionGroupList {
'data': Array<SessionGroup>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
// May contain unused imports in some cases
// @ts-ignore
import type { StageTurn } from './stage-turn';
export interface PaginatedStageTurnList {
'data': Array<StageTurn>;
'meta': PaginationMeta;
}

View file

@ -0,0 +1,27 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { PaginationMeta } from './pagination-meta';
// May contain unused imports in some cases
// @ts-ignore
import type { WorkflowListItem } from './workflow-list-item';
export interface PaginatedWorkflowList {
'data': Array<WorkflowListItem>;
'meta': PaginationMeta;
}