Repository navigation
v0.14.0
PidginHost PHP SDK v0.14.0
Install from Packagist:
composer require pidginhost/sdk:0.14.0
Added
- Kubernetes cluster encryption.
KubernetesClustersEncryptionRetrieve,
...EncryptionCreate,...EncryptionRecheckCreateand
...EncryptionReconcileCreateread and switch Cilium WireGuard encryption,
with theClusterEncryption,ClusterEncryptionOperation,
ClusterEncryptionRequest,ClusterEncryptionReconcileRequest,
ClusterEncryptionRefusalandClusterEncryptionErrormodels and the
ClusterEncryptionStatusEnum,EncryptionModeEnumand
EncryptionReasonCodeEnumenums. - Kubernetes node operations and pool removals. List, read, cancel, resume
and retry node operations, reboot a pool node, and list, read and resume pool
removal journals (NodeOperation,PoolRemovalJournal,PoolRemovalItem,
their paginated lists and enums). - Load balancer upgrades:
KubernetesClustersUpgradeLbCreatewith
LBUpgradeRequest,LBUpgradePlanResponseandLBUpgradeDispatchResponse. - Server traffic:
CloudServersTrafficRetrievereturns
ServerTrafficResponse. PublicIPv4andPublicIPv6gainedserver_id, the id that
/api/cloud/servers/{id}/takes, or null when the address is unattached.Server.networksandServerDetail.networksare typed (ServerNetworks,
ServerPublicNetwork,ServerPublicInterface,ServerPrivateInterface)
instead of a free-form map. The JSON is unchanged.- Email responses that had no model now have one:
EmailStats,StatsDay,
StatsTotals,EmailReputation,EmailMessageList,
EmailMessageSummary,EmailSendResponse,ApiCredentialCreated,
SmtpCredentialCreatedandInboundRouteWriteResponse. FeaturesEnumgainedlb-envoy-metrics.
Changed
This release is breaking. Request bodies now have their own models, and
several response types were corrected to match what the API already sends.
- Request bodies have their own
...Requestmodels, without the read-only
fields of the response. Creating a firewall rule set or an IPv4 address no
longer needs placeholder values such asid: 0. Pass the request model
wherever a call takes a body:
PHP:$cloudApi->cloudFirewallRulesSetCreate(new FirewallRulesSetRequest(['name' => 'web'])).- Request-only models renamed from
XtoXRequest: ActivateFreeDNS, BucketCreate, BucketResize, BucketVisibility, ChangeBillingCycle, ChangeCompany, ChangePassword, ClusterAdd, ContactsUpdate, DNSRecordCreate, DeactivateFreeDNS, DedicatedRDNS, DeleteRecord, DepositCreate, DestroyProtection, DomainAdd, FloatingIPv4Create, FloatingIPv6Create, LowBalanceSettings, NameserversUpdate, PowerAction, PrivateNetworkAddHost, PrivateNetworkRemoveHost, Reinstall, ResourcePoolAdd, ServerAdd, ServerProductUpgrade, SnapshotCreate, Subscribe, TicketCreate, TicketReply. - Patch bodies renamed from
PatchedXtoPatchedXRequest: ClusterDetail, Company, Domain, DomainRegistrant, FirewallRule, FirewallRulesSet, HTTPRoute, K8sPortForward, LBFirewallRule, Profile, ResourcePool, ServerDetail, TCPRoute, UDPRoute. - New request models next to unchanged response models: APITokenCreateRequest, AddressRequest, AttachVolumeRequest, CheckAvailabilityRequest, ClusterDetailRequest, CompanyRequest, DNSGlueRequest, DomainCreateRequest, DomainRegistrantRequest, DomainRequest, FirewallRuleRequest, FirewallRulesSetRequest, HTTPRouteRequest, K8sPortForwardRequest, LBFirewallRuleRequest, PrivateNetworkRequest, ProfileRequest, PublicInterfaceRequest, RenewDomainRequest, ResourcePoolRequest, ReverseDNSRequest, SSHKeyRequest, SandboxAddressRequest, ServerDetailRequest, TCPRouteRequest, TransferRoDomainRequest, UDPRouteRequest, VolumeRequest.
- SSH key, volume, private network and inbound route updates use
SSHKeyUpdateRequest,VolumeUpdateRequest,
PrivateNetworkUpdateRequestandInboundRouteCreateRequest(and their
Patched...forms), which leave out fields an update cannot change.
- Request-only models renamed from
PublicInterface.ipv4and.ipv6are always present, as an empty string
when the interface has no address of that family. Decoding the public
interface of a server without IPv6 used to fail.SSHKey.keycan be set when creating a key (SSHKeyRequest); it stays fixed
afterwards.PublicIPv4.serverandPublicIPv6.serverare the server hostname, or an
empty string when unattached (they were null).- Response types corrected to what the API sends:
DedicatedServer.ipsis a list ofDedicatedServerIP,
.server_statusis aDedicatedServerStatusand.os_namemay be null;
InvoiceDetail.servicesis a list ofInvoiceService;
EmailService.price_monthly_euris a number and.quota_monthlyan
integer;ResourcePool.size,StorageProduct.min_sizeand.max_sizeare
integers;TicketMessage.has_attachmentis a boolean;AttachVolumeis the
attach result (attached); tenClusterDetailfields, three
HostingServicefields,OSImage.family_nameandResourcePoolNode.ipmay
be null. ServerDetail.passwordis no longer in responses; it is write-only in
ServerDetailRequest.ResourcePool.new_sizemoved toResourcePoolRequest.APITokenCreateandAPITokenListmarkaccountandmembership_status
as read-only and optional.- Snapshot and boot ISO lists are plain arrays, as the API returns them:
PaginatedSnapshotListandPaginatedBootISOListare removed. EmailServicesDestroyis removed: the API always answered 405.InboundRoute.mode, the FreeDNSsourceandSuppressionEntry.reasonkeep
their enum namesModeEnum,SourceEnumandReasonEnum.
Repository
- The GitHub repository now keeps history: each release is one commit on
main. Tags up to v0.13.0 remain separate snapshots.