mirror of
https://github.com/alexhopeoconnor/binarylane-dotnet.git
synced 2026-10-20 23:01:29 +10:00
Initial BinaryLane v2 API client
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# BinaryLane API contract
|
||||
|
||||
`binarylane-v2.openapi.yaml` is an unmodified snapshot of BinaryLane's published
|
||||
OpenAPI document. Its provenance and digest are recorded in `contract.json`.
|
||||
|
||||
The provider currently describes the API as a developer preview, so an upstream
|
||||
version number alone must not be used as a compatibility guarantee. The contract
|
||||
monitor compares the document digest as well as its declared version.
|
||||
|
||||
## Normalization rule
|
||||
|
||||
The document has 52 routable paths and 42 additional paths such as
|
||||
`/v2/servers/{server_id}/actions#PowerOn`. The latter are documentation aliases
|
||||
for payload variants of `POST /v2/servers/{server_id}/actions`; URI fragments do
|
||||
not reach an HTTP server. They must be removed before an OpenAPI generator is
|
||||
asked to create a route surface. `normalization.json` records the exact rule and
|
||||
each affected path.
|
||||
|
||||
Public SDK DTOs deliberately model all provider enum values as strings. This is
|
||||
forward-compatible with a preview API that may add a value before a new SDK
|
||||
release is available.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"source": "https://api.binarylane.com.au/reference/openapi.yaml",
|
||||
"upstreamVersion": "0.39.1",
|
||||
"sha256": "947b62c1649f68e8b0688d113f4fa3b5037b7c514b7e9cd33613e40574f854b1",
|
||||
"retrievedUtc": "2026-08-16T09:22:01Z"
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"input": "binarylane-v2.openapi.yaml",
|
||||
"normalizationRules": [
|
||||
{
|
||||
"kind": "exclude-paths-containing",
|
||||
"value": "#",
|
||||
"reason": "The upstream document uses fragment-bearing paths to document variants of the one real server actions endpoint. A URI fragment is never sent in an HTTP request."
|
||||
},
|
||||
{
|
||||
"kind": "preserve-discriminator",
|
||||
"schema": "ServerAction",
|
||||
"property": "type",
|
||||
"reason": "The action body is a discriminated union. Do not flatten or silently discard the discriminator mapping when generating test fixtures or internal wire code."
|
||||
},
|
||||
{
|
||||
"kind": "open-enum",
|
||||
"reason": "Provider enum values are represented as strings in public DTOs so new upstream values remain readable by existing SDK versions."
|
||||
}
|
||||
],
|
||||
"excludedPaths": [
|
||||
"/v2/servers/{server_id}/actions#AddDisk",
|
||||
"/v2/servers/{server_id}/actions#AttachBackup",
|
||||
"/v2/servers/{server_id}/actions#ChangeAdvancedFeatures",
|
||||
"/v2/servers/{server_id}/actions#ChangeAdvancedFirewallRules",
|
||||
"/v2/servers/{server_id}/actions#ChangeBackupSchedule",
|
||||
"/v2/servers/{server_id}/actions#ChangeIpv6",
|
||||
"/v2/servers/{server_id}/actions#ChangeIpv6ReverseNameservers",
|
||||
"/v2/servers/{server_id}/actions#ChangeKernel",
|
||||
"/v2/servers/{server_id}/actions#ChangeManageOffsiteBackupCopies",
|
||||
"/v2/servers/{server_id}/actions#ChangeNetwork",
|
||||
"/v2/servers/{server_id}/actions#ChangeOffsiteBackupLocation",
|
||||
"/v2/servers/{server_id}/actions#ChangePartner",
|
||||
"/v2/servers/{server_id}/actions#ChangePortBlocking",
|
||||
"/v2/servers/{server_id}/actions#ChangeRegion",
|
||||
"/v2/servers/{server_id}/actions#ChangeReverseName",
|
||||
"/v2/servers/{server_id}/actions#ChangeSeparatePrivateNetworkInterface",
|
||||
"/v2/servers/{server_id}/actions#ChangeSourceAndDestinationCheck",
|
||||
"/v2/servers/{server_id}/actions#ChangeThresholdAlerts",
|
||||
"/v2/servers/{server_id}/actions#ChangeVpcIpv4",
|
||||
"/v2/servers/{server_id}/actions#CloneUsingBackup",
|
||||
"/v2/servers/{server_id}/actions#DeleteDisk",
|
||||
"/v2/servers/{server_id}/actions#DetachBackup",
|
||||
"/v2/servers/{server_id}/actions#DisableBackups",
|
||||
"/v2/servers/{server_id}/actions#DisableSelinux",
|
||||
"/v2/servers/{server_id}/actions#EnableBackups",
|
||||
"/v2/servers/{server_id}/actions#EnableIpv6",
|
||||
"/v2/servers/{server_id}/actions#IsRunning",
|
||||
"/v2/servers/{server_id}/actions#PasswordReset",
|
||||
"/v2/servers/{server_id}/actions#Ping",
|
||||
"/v2/servers/{server_id}/actions#PowerCycle",
|
||||
"/v2/servers/{server_id}/actions#PowerOff",
|
||||
"/v2/servers/{server_id}/actions#PowerOn",
|
||||
"/v2/servers/{server_id}/actions#Reboot",
|
||||
"/v2/servers/{server_id}/actions#Rebuild",
|
||||
"/v2/servers/{server_id}/actions#Rename",
|
||||
"/v2/servers/{server_id}/actions#Resize",
|
||||
"/v2/servers/{server_id}/actions#ResizeDisk",
|
||||
"/v2/servers/{server_id}/actions#Restore",
|
||||
"/v2/servers/{server_id}/actions#Shutdown",
|
||||
"/v2/servers/{server_id}/actions#TakeBackup",
|
||||
"/v2/servers/{server_id}/actions#Uncancel",
|
||||
"/v2/servers/{server_id}/actions#Uptime"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user