From af12b0b697958e401b792c4d154d729f02bb95e5 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Wed, 4 Mar 2026 23:56:32 -0500 Subject: [PATCH] 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 --- apps/arc-web/app/routes/insights.tsx | 8 +- apps/arc-web/app/routes/retros.tsx | 4 +- apps/arc-web/app/routes/run-stages.tsx | 5 +- apps/arc-web/app/routes/session-detail.tsx | 8 +- apps/arc-web/app/routes/start.tsx | 8 +- apps/arc-web/app/routes/workflow-runs.tsx | 4 +- apps/arc-web/app/routes/workflows.tsx | 4 +- crates/arc-api/src/demo/mod.rs | 82 +++++++- crates/arc-api/tests/pagination.rs | 138 +++++++++++++ docs/api-reference/arc-api.yaml | 182 ++++++++++++++---- openapi/arc-api.yaml | 182 ++++++++++++++---- .../src/.openapi-generator/FILES | 8 + .../arc-api-client/src/api/insights-api.ts | 64 ++++-- .../arc-api-client/src/api/projects-api.ts | 66 +++++-- packages/arc-api-client/src/api/retros-api.ts | 32 ++- .../src/api/run-internals-api.ts | 34 +++- .../arc-api-client/src/api/sessions-api.ts | 34 +++- .../arc-api-client/src/api/workflows-api.ts | 66 +++++-- packages/arc-api-client/src/models/index.ts | 8 + .../src/models/paginated-branch-list.ts | 27 +++ .../models/paginated-history-entry-list.ts | 27 +++ .../src/models/paginated-project-list.ts | 27 +++ .../src/models/paginated-retro-list.ts | 27 +++ .../src/models/paginated-saved-query-list.ts | 27 +++ .../models/paginated-session-group-list.ts | 27 +++ .../src/models/paginated-stage-turn-list.ts | 27 +++ .../src/models/paginated-workflow-list.ts | 27 +++ 27 files changed, 976 insertions(+), 177 deletions(-) create mode 100644 crates/arc-api/tests/pagination.rs create mode 100644 packages/arc-api-client/src/models/paginated-branch-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-history-entry-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-project-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-retro-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-saved-query-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-session-group-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-stage-turn-list.ts create mode 100644 packages/arc-api-client/src/models/paginated-workflow-list.ts diff --git a/apps/arc-web/app/routes/insights.tsx b/apps/arc-web/app/routes/insights.tsx index c0ea779a3..d9dfbf0f5 100644 --- a/apps/arc-web/app/routes/insights.tsx +++ b/apps/arc-web/app/routes/insights.tsx @@ -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("/insights/queries", { request }), - apiJson("/insights/history", { request }), + const [{ data: apiQueries }, { data: apiHistory }] = await Promise.all([ + apiJson("/insights/queries", { request }), + apiJson("/insights/history", { request }), ]); const savedQueries: SavedQuery[] = apiQueries.map((q) => ({ id: q.id, diff --git a/apps/arc-web/app/routes/retros.tsx b/apps/arc-web/app/routes/retros.tsx index 807100ef2..583e1fd56 100644 --- a/apps/arc-web/app/routes/retros.tsx +++ b/apps/arc-web/app/routes/retros.tsx @@ -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("/retros", { request }); + const { data: apiRetros } = await apiJson("/retros", { request }); const retros: RetroRow[] = apiRetros.map((r) => ({ run_id: r.run_id, workflow_name: r.workflow_name, diff --git a/apps/arc-web/app/routes/run-stages.tsx b/apps/arc-web/app/routes/run-stages.tsx index fa2547cdc..4eba814fb 100644 --- a/apps/arc-web/app/routes/run-stages.tsx +++ b/apps/arc-web/app/routes/run-stages.tsx @@ -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(`/runs/${params.id}/stages/${selectedStageId}/turns`, { request }); + const { data } = await apiJson(`/runs/${params.id}/stages/${selectedStageId}/turns`, { request }); + turns = data; } return { stages, turns }; diff --git a/apps/arc-web/app/routes/session-detail.tsx b/apps/arc-web/app/routes/session-detail.tsx index e9bd1dd54..342fb0d50 100644 --- a/apps/arc-web/app/routes/session-detail.tsx +++ b/apps/arc-web/app/routes/session-detail.tsx @@ -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(`/sessions/${params.sessionId}`, { request }), - apiJson("/sessions", { request }), + apiJson("/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: [ diff --git a/apps/arc-web/app/routes/start.tsx b/apps/arc-web/app/routes/start.tsx index acc1097da..02a0b3e65 100644 --- a/apps/arc-web/app/routes/start.tsx +++ b/apps/arc-web/app/routes/start.tsx @@ -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("/projects", { request }), - apiJson("/sessions", { request }), + const [{ data: apiProjects }, { data: apiSessions }] = await Promise.all([ + apiJson("/projects", { request }), + apiJson("/sessions", { request }), ]); const projects = apiProjects.map((p) => ({ id: p.id, name: p.name })); const sessionGroups = apiSessions.map((g) => ({ diff --git a/apps/arc-web/app/routes/workflow-runs.tsx b/apps/arc-web/app/routes/workflow-runs.tsx index 8e34b1f6c..9a524298f 100644 --- a/apps/arc-web/app/routes/workflow-runs.tsx +++ b/apps/arc-web/app/routes/workflow-runs.tsx @@ -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 = { @@ -16,7 +16,7 @@ const columnNames: Record = { }; export async function loader({ request, params }: Route.LoaderArgs) { - const apiRuns = await apiJson(`/workflows/${params.name}/runs`, { request }); + const { data: apiRuns } = await apiJson(`/workflows/${params.name}/runs`, { request }); const runs: RunWithStatus[] = apiRuns.map((r) => ({ id: r.id, repo: r.repo, diff --git a/apps/arc-web/app/routes/workflows.tsx b/apps/arc-web/app/routes/workflows.tsx index fa7ef32fd..a8a3b81a7 100644 --- a/apps/arc-web/app/routes/workflows.tsx +++ b/apps/arc-web/app/routes/workflows.tsx @@ -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("/workflows", { request }); + const { data: apiWorkflows } = await apiJson("/workflows", { request }); const workflows: WorkflowData[] = apiWorkflows.map((w) => ({ name: w.name, slug: w.slug, diff --git a/crates/arc-api/src/demo/mod.rs b/crates/arc-api/src/demo/mod.rs index dc965b2d4..29de07d43 100644 --- a/crates/arc-api/src/demo/mod.rs +++ b/crates/arc-api/src/demo/mod.rs @@ -52,8 +52,15 @@ pub async fn get_stage_turns( _auth: AuthenticatedService, State(_state): State>, Path((_id, _stage_id)): Path<(String, String)>, + Query(pagination): Query, ) -> 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>, + Query(pagination): Query, ) -> 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>, Path(name): Path, + Query(pagination): Query, ) -> 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>, + Query(pagination): Query, ) -> 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>, + Query(pagination): Query, ) -> 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>, + Query(pagination): Query, ) -> 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>, + Query(pagination): Query, ) -> 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>, + Query(pagination): Query, ) -> 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>, Path(_id): Path, + Query(pagination): Query, ) -> 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 ────────────────────────────────────────────────────────────── diff --git a/crates/arc-api/tests/pagination.rs b/crates/arc-api/tests/pagination.rs new file mode 100644 index 000000000..468110f24 --- /dev/null +++ b/crates/arc-api/tests/pagination.rs @@ -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) -> 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 + ); + } +} diff --git a/docs/api-reference/arc-api.yaml b/docs/api-reference/arc-api.yaml index 27a280a37..414c6fef7 100644 --- a/docs/api-reference/arc-api.yaml +++ b/docs/api-reference/arc-api.yaml @@ -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: diff --git a/openapi/arc-api.yaml b/openapi/arc-api.yaml index 27a280a37..414c6fef7 100644 --- a/openapi/arc-api.yaml +++ b/openapi/arc-api.yaml @@ -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: diff --git a/packages/arc-api-client/src/.openapi-generator/FILES b/packages/arc-api-client/src/.openapi-generator/FILES index 598e5a15b..96c955a79 100644 --- a/packages/arc-api-client/src/.openapi-generator/FILES +++ b/packages/arc-api-client/src/.openapi-generator/FILES @@ -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 diff --git a/packages/arc-api-client/src/api/insights-api.ts b/packages/arc-api-client/src/api/insights-api.ts index 699775871..daa881999 100644 --- a/packages/arc-api-client/src/api/insights-api.ts +++ b/packages/arc-api-client/src/api/insights-api.ts @@ -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 => { + listQueryHistory: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { 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 => { + listSavedQueries: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listQueryHistory(options); + async listQueryHistory(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listSavedQueries(options); + async listSavedQueries(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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> { - return localVarFp.listQueryHistory(options).then((request) => request(axios, basePath)); + listQueryHistory(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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> { - return localVarFp.listSavedQueries(options).then((request) => request(axios, basePath)); + listSavedQueries(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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)); } /** diff --git a/packages/arc-api-client/src/api/projects-api.ts b/packages/arc-api-client/src/api/projects-api.ts index 779acbcfc..e2bc3a042 100644 --- a/packages/arc-api-client/src/api/projects-api.ts +++ b/packages/arc-api-client/src/api/projects-api.ts @@ -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 => { + listBranches: async (id: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { // 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 => { + listProjects: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listBranches(id, options); + async listBranches(id: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listProjects(options); + async listProjects(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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> { - return localVarFp.listBranches(id, options).then((request) => request(axios, basePath)); + listBranches(id: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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> { - return localVarFp.listProjects(options).then((request) => request(axios, basePath)); + listProjects(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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)); } } diff --git a/packages/arc-api-client/src/api/retros-api.ts b/packages/arc-api-client/src/api/retros-api.ts index 9d6c00bba..5045b159c 100644 --- a/packages/arc-api-client/src/api/retros-api.ts +++ b/packages/arc-api-client/src/api/retros-api.ts @@ -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 => { + listRetros: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listRetros(options); + async listRetros(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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> { - return localVarFp.listRetros(options).then((request) => request(axios, basePath)); + listRetros(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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)); } /** diff --git a/packages/arc-api-client/src/api/run-internals-api.ts b/packages/arc-api-client/src/api/run-internals-api.ts index c7f610406..db5e2dd00 100644 --- a/packages/arc-api-client/src/api/run-internals-api.ts +++ b/packages/arc-api-client/src/api/run-internals-api.ts @@ -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 => { + listStageTurns: async (id: string, stageId: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { // 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>> { - 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> { + 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> { - return localVarFp.listStageTurns(id, stageId, options).then((request) => request(axios, basePath)); + listStageTurns(id: string, stageId: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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)); } /** diff --git a/packages/arc-api-client/src/api/sessions-api.ts b/packages/arc-api-client/src/api/sessions-api.ts index 0c2386f2f..08623201f 100644 --- a/packages/arc-api-client/src/api/sessions-api.ts +++ b/packages/arc-api-client/src/api/sessions-api.ts @@ -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 => { + listSessions: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listSessions(options); + async listSessions(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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> { - return localVarFp.listSessions(options).then((request) => request(axios, basePath)); + listSessions(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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)); } /** diff --git a/packages/arc-api-client/src/api/workflows-api.ts b/packages/arc-api-client/src/api/workflows-api.ts index 69f7b6614..b021b19c3 100644 --- a/packages/arc-api-client/src/api/workflows-api.ts +++ b/packages/arc-api-client/src/api/workflows-api.ts @@ -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 => { + listWorkflowRuns: async (name: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { // 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 => { + listWorkflows: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflowRuns(name, options); + async listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflows(options); + async listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + 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> { - return localVarFp.listWorkflowRuns(name, options).then((request) => request(axios, basePath)); + listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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> { - return localVarFp.listWorkflows(options).then((request) => request(axios, basePath)); + listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { + 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)); } /** diff --git a/packages/arc-api-client/src/models/index.ts b/packages/arc-api-client/src/models/index.ts index b34b8608a..2b1aebf02 100644 --- a/packages/arc-api-client/src/models/index.ts +++ b/packages/arc-api-client/src/models/index.ts @@ -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'; diff --git a/packages/arc-api-client/src/models/paginated-branch-list.ts b/packages/arc-api-client/src/models/paginated-branch-list.ts new file mode 100644 index 000000000..3fb65d366 --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-branch-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-history-entry-list.ts b/packages/arc-api-client/src/models/paginated-history-entry-list.ts new file mode 100644 index 000000000..25cee334c --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-history-entry-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-project-list.ts b/packages/arc-api-client/src/models/paginated-project-list.ts new file mode 100644 index 000000000..56eca6e3b --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-project-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-retro-list.ts b/packages/arc-api-client/src/models/paginated-retro-list.ts new file mode 100644 index 000000000..908cf449d --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-retro-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-saved-query-list.ts b/packages/arc-api-client/src/models/paginated-saved-query-list.ts new file mode 100644 index 000000000..16448b4c7 --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-saved-query-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-session-group-list.ts b/packages/arc-api-client/src/models/paginated-session-group-list.ts new file mode 100644 index 000000000..b12ec5b01 --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-session-group-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-stage-turn-list.ts b/packages/arc-api-client/src/models/paginated-stage-turn-list.ts new file mode 100644 index 000000000..00eee7dbc --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-stage-turn-list.ts @@ -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; + 'meta': PaginationMeta; +} + diff --git a/packages/arc-api-client/src/models/paginated-workflow-list.ts b/packages/arc-api-client/src/models/paginated-workflow-list.ts new file mode 100644 index 000000000..c97ce0270 --- /dev/null +++ b/packages/arc-api-client/src/models/paginated-workflow-list.ts @@ -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; + 'meta': PaginationMeta; +} +