Skip to content

v0.13.0

Choose a tag to compare

@andreeapid andreeapid released this 18 Aug 20:49
· 3 commits to main since this release

PidginHost PHP SDK v0.13.0

Install from Packagist:

composer require pidginhost/sdk:0.13.0

Added

  • Kubernetes port forwards can be called at all now. All six routes under
    /api/kubernetes/clusters/{cluster_id}/port-forwards/ generated with no
    request body and no response model, so this SDK could reach none of them.
    They now expose KubernetesClustersPortForwardsList, ...Retrieve,
    ...Create, ...Update, ...PartialUpdate and ...Destroy, with the new
    K8sPortForward, PatchedK8sPortForward, PaginatedK8sPortForwardList and
    ProtocolEnum models.
  • Gateway route listings are typed and paginated: PaginatedHTTPRouteList,
    PaginatedTCPRouteList and PaginatedUDPRouteList. The list and detail
    reads previously had no response schema at all.
  • NodeMetricsResponse gained disk and maxdisk, which the endpoint has
    always returned but never documented.
  • The node RRD route documents the timeframe query parameter it accepts
    (hour, day, week, month, year), so a window other than the default
    is now reachable.

Changed

This release is breaking. Every change below corrects a type the API was
already sending -- the previous declarations did not describe the wire, so the
affected responses could not be decoded.

  • KubernetesClusters{Httproutes,Tcproutes,Udproutes,PortForwards}Retrieve2
    are removed. Those names existed only because the list and detail reads
    collided on one operation id while the schema was incomplete. The list reads
    are now ...List; the detail reads are ...Retrieve.
  • KubernetesClusters{Httproutes,Tcproutes,Udproutes}Retrieve changed
    meaning
    : it was the list read and is now the detail read. The signature
    changed with it, so this surfaces at compile time rather than silently.
  • NodeMetricsResponse.mem, .maxmem, .netin and .netout widened to 64-bit.
    They are byte counts: a node with 2 GiB of memory reports 2147483648, one
    past the 32-bit range, so these responses failed to decode on essentially
    every real node.
  • ClusterDetail.dual_stack and .talos_upgrade_available are booleans,
    .storage_quota_gb is an integer, .last_pool_used_bytes is a 64-bit
    integer
    and .price_per_hour is a number -- all five were declared as
    strings while sending a bool or a number, which made the whole cluster object
    undecodable.