Skip to content

feat:Add payment and billing endpoints to OpenAPI spec#259

Merged
HavenDV merged 1 commit intomainfrom
bot/update-openapi_202603121839
Mar 12, 2026
Merged

feat:Add payment and billing endpoints to OpenAPI spec#259
HavenDV merged 1 commit intomainfrom
bot/update-openapi_202603121839

Conversation

@HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Mar 12, 2026

Summary by CodeRabbit

  • New Features
    • Added payment management endpoints for configuration, billing portal access, usage tracking, and funds/top-up flows.

@HavenDV HavenDV enabled auto-merge (squash) March 12, 2026 18:40
@coderabbitai
Copy link

coderabbitai bot commented Mar 12, 2026

Walkthrough

This pull request expands the OpenAPI specification with a comprehensive set of payment-related API endpoints and their supporting data schemas. The changes include new endpoints for payment configuration, billing portal access, usage metrics, and funds management, along with corresponding schema definitions to validate request and response payloads.

Changes

Cohort / File(s) Summary
Payment API Endpoints & Schemas
src/libs/DeepInfra/openapi.yaml
Added 9 new payment-related endpoints under /payment path (checklist, config, billing-portal, usage, usage/tokens, usage/rent, deepstart/application, funds, topup). Introduced 15+ supporting schemas including ConfigIn/ConfigOut, UsageOut, BillingPortalOut, DeepStartApplicationIn/Out, and related metadata structures. Removed or consolidated previously defined HTTPValidationError, ValidationError, and SuspendReason definitions.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • github-actions

Poem

💰 A rabbit hops through payment flows,

New endpoints sprout like spring's fresh rows,

With schemas deep and configs clear,

Billing portals appear! 🐰

The ledger grows, our API glows! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title Check ✅ Passed Title check skipped as CodeRabbit has written the PR title.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bot/update-openapi_202603121839
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@HavenDV HavenDV merged commit e2d6dbd into main Mar 12, 2026
3 of 4 checks passed
@HavenDV HavenDV deleted the bot/update-openapi_202603121839 branch March 12, 2026 18:41
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Add payment and billing endpoints to OpenAPI spec Mar 12, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/libs/DeepInfra/openapi.yaml`:
- Around line 4746-4749: Update the OpenAPI schema to forbid negative monetary
values: set AddFundsIn.amount to require a positive integer by adding minimum: 1
(so amount > 0), and set TopUpIn.amount and TopUpIn.threshold to require
non-negative integers by adding minimum: 0; locate and update the schema objects
named AddFundsIn, TopUpIn and their amount/threshold properties in openapi.yaml
(also apply the same minimum constraints to the duplicate definitions mentioned
around lines 5018-5027).
- Around line 4388-4390: The OpenAPI spec currently leaves the cookie parameter
"session" untyped (schema: {}), causing generators to treat it as object/any;
update every /payment/* operation where the parameter name is session to specify
its schema as a string (replace schema: {} with schema: { type: string } or add
type: string under schema) so the cookie is emitted as a string in generated
clients; ensure you update all occurrences referenced (the session parameter
blocks around the listed line groups) rather than adding new parameters.
- Around line 5004-5007: The TimeInterval schema's fr property is declared as a
plain integer which can overflow 32-bit clients; update the fr property (schema
name TimeInterval / property fr) to include format: int64 (matching the existing
to property) so the OpenAPI spec documents it as a 64-bit integer in
milliseconds.
- Around line 4855-4862: Remove server-assigned properties from the create input
model: edit the DeepStartApplicationIn schema to eliminate the id, uid,
created_at, and status properties (and any anyOf/null variants) so callers
cannot supply them; ensure they are not listed in required for
DeepStartApplicationIn. If those fields must be present in API docs for
responses, keep them on the corresponding output schema (e.g.,
DeepStartApplicationOut) or mark them readOnly in the shared schema instead.
Also apply the same removal/fix to the second occurrence referenced around lines
4878-4884.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ad76b732-7830-4cf6-a8fe-cc48bc563578

📥 Commits

Reviewing files that changed from the base of the PR and between 0c728e7 and b1a73d5.

⛔ Files ignored due to path filters (108)
  • src/libs/DeepInfra/Generated/DeepInfra..JsonSerializerContext.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.AddFunds.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.BillingPortal.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.DeepstartApply.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.GetChecklist.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.GetConfig.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.SetConfig.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.SetupTopup.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.Usage.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.UsageApiToken.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.UsageRent.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.DeepInfraClient.UsageTokens.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.AddFunds.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.BillingPortal.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.DeepstartApply.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.GetChecklist.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.GetConfig.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.SetConfig.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.SetupTopup.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.Usage.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.UsageApiToken.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.UsageRent.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.IDeepInfraClient.UsageTokens.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.JsonSerializerContextTypes.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.AddFundsIn.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.AddFundsIn.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.AddFundsPaymentFundsPostResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.AddFundsPaymentFundsPostResponse.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.AddFundsPaymentFundsPostSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.AddFundsPaymentFundsPostSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.BillingPortalOut.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.BillingPortalOut.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.BillingPortalPaymentBillingPortalGetReturnUrl.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.BillingPortalPaymentBillingPortalGetReturnUrl.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.BillingPortalPaymentBillingPortalGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.BillingPortalPaymentBillingPortalGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ConfigIn.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ConfigIn.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ConfigInLimit.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ConfigInLimit.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ConfigOut.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ConfigOut.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationIn.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationIn.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationInDeal.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationInDeal.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationInUid.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationInUid.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOut.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOut.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOutDeal.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOutDeal.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOutEmail.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOutEmail.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOutUid.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepStartApplicationOutUid.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepstartApplyPaymentDeepstartApplicationPostSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DeepstartApplyPaymentDeepstartApplicationPostSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DiscountMeta.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DiscountMeta.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DiscountMetaDescription.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.DiscountMetaDescription.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.GetChecklistPaymentChecklistGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.GetChecklistPaymentChecklistGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.GetConfigPaymentConfigGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.GetConfigPaymentConfigGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ModelMeta.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ModelMeta.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ModelMetaPlanId.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.ModelMetaPlanId.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.SetConfigPaymentConfigPostSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.SetConfigPaymentConfigPostSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.SetupTopupPaymentTopupPostResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.SetupTopupPaymentTopupPostResponse.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.SetupTopupPaymentTopupPostSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.SetupTopupPaymentTopupPostSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.TimeInterval.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.TimeInterval.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.TopUpIn.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.TopUpIn.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageApiTokenPaymentUsageApiTokenGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageApiTokenPaymentUsageApiTokenGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageApiTokenPaymentUsageApiTokenGetTo.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageApiTokenPaymentUsageApiTokenGetTo.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageItem.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageItem.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageItemDiscount.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageItemDiscount.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageMonth.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageMonth.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageOut.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageOut.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsagePaymentUsageGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsagePaymentUsageGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsagePaymentUsageGetTo.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsagePaymentUsageGetTo.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentOut.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentOut.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentOutIdToDuration.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentOutIdToDuration.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentPaymentUsageRentGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentPaymentUsageRentGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentPaymentUsageRentGetTo.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageRentPaymentUsageRentGetTo.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageTokensPaymentUsageTokensGetSession.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageTokensPaymentUsageTokensGetSession.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageTokensPaymentUsageTokensGetTo.Json.g.cs is excluded by !**/generated/**
  • src/libs/DeepInfra/Generated/DeepInfra.Models.UsageTokensPaymentUsageTokensGetTo.g.cs is excluded by !**/generated/**
📒 Files selected for processing (1)
  • src/libs/DeepInfra/openapi.yaml

Comment on lines +4388 to +4390
- name: session
in: cookie
schema: { }
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Type the session cookie as a string.

All of these parameters use schema: {}. That leaves the contract untyped, so many generators surface session as object/any instead of a normal cookie string. Please emit type: string for this parameter on every /payment/* operation.

Also applies to: 4411-4413, 4433-4435, 4469-4471, 4509-4511, 4549-4551, 4589-4591, 4635-4637, 4658-4660, 4687-4689, 4715-4717

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/libs/DeepInfra/openapi.yaml` around lines 4388 - 4390, The OpenAPI spec
currently leaves the cookie parameter "session" untyped (schema: {}), causing
generators to treat it as object/any; update every /payment/* operation where
the parameter name is session to specify its schema as a string (replace schema:
{} with schema: { type: string } or add type: string under schema) so the cookie
is emitted as a string in generated clients; ensure you update all occurrences
referenced (the session parameter blocks around the listed line groups) rather
than adding new parameters.

Comment on lines +4746 to +4749
amount:
title: Amount
type: integer
description: Amount to add in cents
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Constrain the new monetary inputs at the schema layer.

AddFundsIn.amount and TopUpIn.amount / threshold currently allow negative values. For payment flows, that should be rejected by the contract itself instead of being left to backend validation. Use > 0 for add-funds and non-negative bounds for top-up values.

Also applies to: 5018-5027

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/libs/DeepInfra/openapi.yaml` around lines 4746 - 4749, Update the OpenAPI
schema to forbid negative monetary values: set AddFundsIn.amount to require a
positive integer by adding minimum: 1 (so amount > 0), and set TopUpIn.amount
and TopUpIn.threshold to require non-negative integers by adding minimum: 0;
locate and update the schema objects named AddFundsIn, TopUpIn and their
amount/threshold properties in openapi.yaml (also apply the same minimum
constraints to the duplicate definitions mentioned around lines 5018-5027).

Comment on lines +4855 to +4862
id:
title: Id
type: string
uid:
title: Uid
anyOf:
- type: string
- type: 'null'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Keep server-assigned fields out of DeepStartApplicationIn.

id, uid, created_at, and status look server-owned, but the create request model lets callers send them. Even if the backend ignores these today, the public contract is misleading and makes caller-controlled state possible if validation ever weakens.

Also applies to: 4878-4884

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/libs/DeepInfra/openapi.yaml` around lines 4855 - 4862, Remove
server-assigned properties from the create input model: edit the
DeepStartApplicationIn schema to eliminate the id, uid, created_at, and status
properties (and any anyOf/null variants) so callers cannot supply them; ensure
they are not listed in required for DeepStartApplicationIn. If those fields must
be present in API docs for responses, keep them on the corresponding output
schema (e.g., DeepStartApplicationOut) or mark them readOnly in the shared
schema instead. Also apply the same removal/fix to the second occurrence
referenced around lines 4878-4884.

Comment on lines +5004 to +5007
fr:
title: Fr
type: integer
default: 0
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

TimeInterval.fr needs format: int64.

This schema is documented in milliseconds, so real start values are already around 1.7e12. Leaving fr as a plain integer will overflow 32-bit client types, while to is already correctly marked int64.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/libs/DeepInfra/openapi.yaml` around lines 5004 - 5007, The TimeInterval
schema's fr property is declared as a plain integer which can overflow 32-bit
clients; update the fr property (schema name TimeInterval / property fr) to
include format: int64 (matching the existing to property) so the OpenAPI spec
documents it as a 64-bit integer in milliseconds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant