Files
vultr-api/server/routers/plans.py
HWANG BYUNGHA 6497e29ea3 Update plans router to match Vultr API v2 query parameters
- Rename plan_type parameter to type with Query alias
- Increase default per_page from 25 to 500

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 17:44:15 +09:00

45 lines
1.3 KiB
Python

"""Plans router"""
from fastapi import APIRouter, Depends, Query
from typing import Optional
from vultr_api import VultrClient
from deps import get_client
router = APIRouter()
@router.get("")
async def list_plans(
type: Optional[str] = Query(None, alias="type"),
per_page: int = Query(500, le=500),
cursor: Optional[str] = None,
client: VultrClient = Depends(get_client)
):
"""List all cloud compute plans"""
return client.plans.list(plan_type=type, per_page=per_page, cursor=cursor)
@router.get("/all")
async def list_all_plans(
type: Optional[str] = Query(None, alias="type"),
client: VultrClient = Depends(get_client)
):
"""List all cloud compute plans (auto-paginated)"""
return {"plans": client.plans.list_all(plan_type=type)}
@router.get("/bare-metal")
async def list_bare_metal_plans(
per_page: int = Query(500, le=500),
cursor: Optional[str] = None,
client: VultrClient = Depends(get_client)
):
"""List all bare metal plans"""
return client.plans.list_bare_metal(per_page=per_page, cursor=cursor)
@router.get("/bare-metal/all")
async def list_all_bare_metal_plans(client: VultrClient = Depends(get_client)):
"""List all bare metal plans (auto-paginated)"""
return {"plans_metal": client.plans.list_all_bare_metal()}