Skip to content

Providers catalog (read-only) #4

@fbarrento

Description

@fbarrento

What to build

Read-only catalog endpoints. Needed before CreateServerData in the Servers slice can be properly typed (regions, sizes per provider).

Endpoints (from docs/forge.openapi.json):

  • GET /providers
  • GET /providers/{provider}
  • GET /providers/{provider}/regions
  • GET /providers/{provider}/regions/{region}
  • GET /providers/{provider}/regions/{region}/sizes
  • GET /providers/{provider}/regions/{region}/sizes/{size}
  • GET /providers/{provider}/sizes
  • GET /providers/{provider}/sizes/{size}

Source design: see project_sdk_design.md in the project's memory.

Acceptance criteria

  • Provider, ProviderRegion, ProviderSize DTOs (readonly, JsonSerializable, ::from(array))
  • Request classes for all 8 endpoints listed above
  • ProvidersResource accessed via $forge->providers() (this is not org-scoped)
  • API shape:
    • $forge->providers()->all()list<Provider> (or Page<Provider> if the endpoint paginates — confirm from spec)
    • $forge->provider($name)->get()Provider
    • $forge->provider($name)->regions()->all() → list of ProviderRegion
    • $forge->provider($name)->region($id)->sizes()->all() → list of ProviderSize
    • $forge->provider($name)->sizes()->all() → list of ProviderSize (region-independent)
  • Tests against mocked responses for every endpoint
  • composer test green

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions