std.cloud — DigitalOcean-Units

DigitalOcean API v2 Bindings für Lyx: 13 Units für alle DO-Dienste. Der Namensraum heißt ausgeschrieben std.cloud.digitaloceando ist in Lyx ein Schlüsselwort und als Pfadbestandteil nicht erlaubt. Die Authentifizierung erfolgt über Bearer-Token (DOCredentials). HTTP-Transport via std.net.https. Keine externe SDK-Abhängigkeit.

std.cloud · Standard Library


Units im Überblick

Unit Import Beschreibung
digitalocean/credentials import std.cloud.digitalocean.credentials; Bearer-Token: Laden aus Token, Umgebungsvariable, Datei
digitalocean/transport (intern) HTTP-Client für DO API v2 (DOClient, DOGet/Post/Put/Patch/Delete)
digitalocean/core import std.cloud.digitalocean.core; Initialisierung und Version
digitalocean/droplets import std.cloud.digitalocean.droplets; VMs anlegen, starten, stoppen, Aktionen, SSH-Keys
digitalocean/volumes import std.cloud.digitalocean.volumes; Block-Storage anlegen, anhängen, Snapshots
digitalocean/spaces import std.cloud.digitalocean.spaces; Objekt-Speicher (S3-kompatibel): Buckets und Objekte
digitalocean/databases import std.cloud.digitalocean.databases; Managed Databases (PostgreSQL, MySQL, Redis)
digitalocean/kubernetes import std.cloud.digitalocean.kubernetes; DOKS: Cluster anlegen, Node-Pools, Kubeconfig
digitalocean/apps import std.cloud.digitalocean.apps; App Platform: Deploy von Quellcode/Container
digitalocean/functions import std.cloud.digitalocean.functions; Serverless Functions: Namespaces und Functions
digitalocean/networking import std.cloud.digitalocean.networking; Domains, DNS, Load Balancer, Floating IPs, VPCs, Firewalls
digitalocean/monitoring import std.cloud.digitalocean.monitoring; Alert Policies, Metriken (CPU, Bandbreite, Disk)
digitalocean/registry import std.cloud.digitalocean.registry; Container Registry: Repositories, Tags, Garbage Collection

std.cloud.digitalocean.credentials

Authentifizierung gegenüber der DigitalOcean API v2.

Funktion Beschreibung
DOCredentialsFromToken(token: pchar): DOCredentials Direkt aus Bearer-Token-String
DOCredentialsFromEnv(): DOCredentials Aus Umgebungsvariable DIGITALOCEAN_TOKEN
DOCredentialsFromFile(path: pchar): DOCredentials Aus Datei (Token als erste Zeile)
DOCredentialsDefault(): DOCredentials Kette: Env → ~/.config/doctl/config.yaml
DOConfigLoad(path: pchar): DOCredentials Aus doctl-Konfigurationsdatei
DOConfigSave(creds: DOCredentials, path: pchar): int64 Token in Datei speichern
DOTokenIsExpired(creds: DOCredentials): int64 Prüft Ablaufzeit (1=abgelaufen)
DOCredentialsFree(creds: DOCredentials) Freigibt allokierte Felder

std.cloud.digitalocean.droplets

VMs (Droplets) erstellen und verwalten. 43 pub Items.

Typen

Typ Felder
DODroplet id, name, region, size, imageId, publicIpv4, privateIpv4, status (alle int64)
DOSSHKey id, name, fingerprint, publicKey
DOAction id, status, type, completedAt

Funktionen (Auswahl)

Funktion Beschreibung
DropletCreateSimple(creds, name, region, size, imageSlug) Einfache Erstellung (gebräuchlichste Operation) — ohne SSH-Schlüssel und Stückzahl; dafür DropletCreate
DropletCreate(creds, name, region, size, imageSlug, sshKeyIds, userData, vpc, tags) Vollständige Parametrierung
DropletDelete(creds, id) Droplet löschen
DropletGet(creds, id): DODroplet Einzelnes Droplet abfragen
DropletList(creds) Alle Droplets (JSON)
DropletListByTag(creds, tag) Gefiltert nach Tag
DropletWait(creds, id, status) Polling bis Droplet den gewünschten Status hat
DropletGetIP(creds, id) Öffentliche IPv4-Adresse als pchar
DropletPowerOn / DropletPowerOff / DropletReboot / DropletShutdown Power-Aktionen
DropletAction(creds, id, action) Beliebige Aktion (power_on, snapshot, …)
DropletActionWait(creds, dropletId, actionId) Auf Aktions-Abschluss warten
SSHKeyCreate / SSHKeyDelete / SSHKeyList / SSHKeyGet SSH-Key-Verwaltung

import std.cloud.digitalocean.credentials;
import std.cloud.digitalocean.droplets;

fn main(): int64 {
    var creds: DOCredentials := DOCredentialsFromEnv();

    // DropletCreateSimple nimmt fuenf Angaben; SSH-Schluessel kennt diese Unit
    // nicht. Wer Startdaten und IPv6 braucht, nimmt DropletCreate:
    //   DropletCreate(creds, name, region, size, image, userData, ipv6)
    var d: DODroplet := DropletCreateSimple(creds, "web-01"c, "fra1"c,
                                            "s-1vcpu-1gb"c, "ubuntu-22-04-x64"c);
    // Warten bis Droplet aktiv ist
    d := DropletWait(creds, d.id, "active"c);
    var ip: int64 := DropletGetIP(creds, d.id);
    Print("Droplet IP: "c); Print(ip as pchar); PrintLn(""c);

    DODropletFree(d);
    DOCredentialsFree(creds);
    return 0;
}


std.cloud.digitalocean.volumes

DigitalOcean Block Storage: SSD-Volumes an Droplets anhängen. 21 pub Items.

Funktion Beschreibung
VolumeCreate(creds, name, region, sizeGb, desc) Volume anlegen
VolumeDelete(creds, id) Volume löschen
VolumeGet(creds, id): DOVolume Volume-Details
VolumeList(creds) Alle Volumes
VolumeAttach(creds, id, dropletId) An Droplet anhängen
VolumeDetach(creds, id, dropletId) Vom Droplet trennen
VolumeResize(creds, id, newSizeGb) Vergrößern
SnapshotCreate(creds, volumeId, name) Snapshot anlegen
SnapshotDelete(creds, id) Snapshot löschen
SnapshotList(creds, volumeId) Snapshots eines Volumes

std.cloud.digitalocean.spaces

DigitalOcean Spaces (S3-kompatibler Objekt-Speicher). 17 pub Items.

Funktion Beschreibung
SpacesBucketCreate(creds, name, region) Bucket anlegen (Regions: nyc3, ams3, sgp1, fra1, …)
SpacesBucketDelete(creds, name, region) Bucket löschen
SpacesBucketList(creds, region) Buckets einer Region
SpacesObjectPut(creds, bucket, region, key, data, dataLen, contentType, acl) Objekt aus Speicher hochladen
SpacesObjectPutFile(creds, bucket, region, key, localPath, contentType, acl) Objekt aus Datei hochladen
SpacesObjectGet(creds, bucket, region, key) Objekt-Body abrufen
SpacesObjectGetFile(creds, bucket, region, key, localPath) In Datei speichern
SpacesObjectDelete(creds, bucket, region, key) Objekt löschen
SpacesObjectList(creds, bucket, region, prefix) Objekte auflisten

std.cloud.digitalocean.databases

Managed Databases (PostgreSQL, MySQL, Redis, MongoDB). 42 pub Items.

Funktion Beschreibung
DatabaseCreate(creds, name, engine, version, region, size, numNodes) Cluster erstellen (engine: pg/mysql/redis/mongodb)
DatabaseDelete / DatabaseGet / DatabaseList CRUD
DatabaseResize(creds, id, size, numNodes) Cluster skalieren
DatabaseGetConnection: DODBConnection Verbindungsdaten abrufen (Host, Port, User, Password, Uri)
DatabaseUserCreate / DatabaseUserDelete / DatabaseUserList / DatabaseUserGet Benutzer verwalten
DatabaseDBCreate / DatabaseDBDelete / DatabaseDBList Datenbank-Namespaces
DatabasePoolCreate / DatabasePoolDelete / DatabasePoolList / DatabasePoolGet Connection Pools (PgBouncer)
DatabaseFirewallRuleSet / DatabaseFirewallRuleList Eingehende IP-Regeln

std.cloud.digitalocean.kubernetes

DigitalOcean Kubernetes (DOKS). 22 pub Items.

Funktion Beschreibung
K8sClusterCreate(creds, name, region, version, nodePoolName, nodeSize, nodeCount) Cluster anlegen
K8sClusterDelete / K8sClusterGet / K8sClusterList CRUD
K8sClusterWait(creds, id): DOK8sCluster Warten bis Cluster running ist
K8sClusterUpgrade(creds, id, version) Kubernetes-Version aktualisieren
K8sKubeconfig(creds, id) Kubeconfig-YAML abrufen (für kubectl)
K8sNodePoolCreate / K8sNodePoolDelete / K8sNodePoolUpdate Node-Pool verwalten
K8sVersionsList(creds) Verfügbare Kubernetes-Versionen

std.cloud.digitalocean.apps

DigitalOcean App Platform: Quellcode und Container deployen. 20 pub Items.

Funktion Beschreibung
AppCreate(creds, name, region, spec) App aus Spec-String erstellen
AppCreateFromSpec(creds, specJson, specLen): DOApp App aus JSON-App-Spec
AppDelete / AppGet / AppList / AppUpdate CRUD
DeploymentCreate(creds, appId, forceBuild) Neues Deployment auslösen
DeploymentGet / DeploymentList Deployment-Status abfragen
DeploymentWait(creds, appId, deploymentId): DODeployment Auf Abschluss warten
AppGetLogs(creds, appId, deploymentId, component) Deployment-Logs
AppListRegions(creds) Verfügbare App-Platform-Regionen

std.cloud.digitalocean.functions

Serverless Functions. 17 pub Items.

Funktion Beschreibung
NamespaceCreate(creds, region, label): DONamespace Namespace anlegen
NamespaceDelete / NamespaceGet / NamespaceList CRUD
FunctionCreate(creds, namespaceId, name, runtime, source) Function anlegen
FunctionDelete / FunctionGet / FunctionList CRUD
FunctionInvoke(creds, namespaceId, functionName, params) Function aufrufen
FunctionGetLogs(creds, namespaceId, functionName) Logs abrufen

std.cloud.digitalocean.networking

DNS, Load Balancer, Floating IPs, VPCs, Firewalls. 45 pub Items.

Bereich Wichtige Funktionen
Domains & DNS DomainCreate/Delete/Get/List, DomainRecordCreate/Update/Delete/List/Get
Load Balancer LBCreate(creds, name, region, algorithm, forwardingRules, healthCheck), LBDelete/Get/List, LBAddDroplets/RemoveDroplets
Floating IPs FloatingIPCreate(creds, region), FloatingIPAssign/Unassign(creds, ip, dropletId), FloatingIPDelete/List
VPCs VPCCreate(creds, name, region, ipRange), VPCDelete/Get/List, VPCMemberList
Firewalls FirewallCreate(creds, name, inboundRules, outboundRules), FirewallDelete/Get/List, FirewallAddDroplets/RemoveDroplets

std.cloud.digitalocean.monitoring

Alert Policies und Metriken (CPU, Bandbreite, Disk, Speicher). 19 pub Items.

Funktion Beschreibung
AlertCreate(creds, type, compare, value, window, entities, tags, emails, slackWebhooks): DOAlert Alert Policy anlegen
AlertDelete / AlertGet / AlertList / AlertUpdate Policy-Verwaltung
MetricDropletCPU(creds, dropletId, startTime, endTime) CPU-Auslastungs-Zeitreihe
MetricDropletBandwidth(creds, dropletId, dir, iface, startTime, endTime) Netzwerk-Bandbreite
MetricDropletDisk(creds, dropletId, startTime, endTime) Disk-Nutzung
MetricDropletMemory(creds, dropletId, startTime, endTime) Speicher-Nutzung

std.cloud.digitalocean.registry

DigitalOcean Container Registry. 17 pub Items.

Funktion Beschreibung
RegistryCreate(creds, name, region, subscriptionTier) Registry anlegen (tier: starter/basic/professional)
RegistryDelete / RegistryGet Verwaltung
RegistrySubscriptionGet(creds) Aktuellen Plan abrufen
RepositoryList / RepositoryDelete Repositories in Registry
RepositoryTagList / RepositoryTagDelete Tags in Repository
RegistryDockerCredentials(creds, readWrite, expirySeconds) Docker-Login-Credentials
RegistryGarbageCollectionRun(creds) Unreferenzierte Blobs bereinigen

Letzte Aktualisierung: 2026-06-12

Codebeispiele geprüft: gegen lyxc 1.2.5C übersetzt (Prüflauf 2026-09-08 über die gesamte Doku: 574 Vollprogramme, 0 echte Fehler; zusätzlich 5159 Aufrufe gegen die pub fn-Signaturen in aurum/std gehalten, 0 Abweichungen).