From 8a8b814533c8d4e47480ce0dd15f3779912f0131 Mon Sep 17 00:00:00 2001 From: Manuel Ganter Date: Thu, 8 Jan 2026 15:02:48 +0100 Subject: [PATCH] feat: added ServerlessConfig to Apps --- sdk/edgeconnect/v2/types.go | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/sdk/edgeconnect/v2/types.go b/sdk/edgeconnect/v2/types.go index 7dea92e..cdaa1ac 100644 --- a/sdk/edgeconnect/v2/types.go +++ b/sdk/edgeconnect/v2/types.go @@ -169,6 +169,13 @@ type Flavor struct { Name string `json:"name"` } +// ServerlessConfig defines serverless deployment configuration +type ServerlessConfig struct { + MinReplicas int `json:"min_replicas,omitempty"` // number of replicas (at least 1) + RAM int `json:"ram,omitempty"` // RAM in MB + VCPUs int `json:"vcpus,omitempty"` // Virtual CPUs +} + // SecurityRule defines network access rules type SecurityRule struct { PortRangeMax int `json:"port_range_max"` @@ -180,21 +187,21 @@ type SecurityRule struct { // App represents an application definition type App struct { msg `json:",inline"` - Key AppKey `json:"key"` - Deployment string `json:"deployment,omitempty"` - ImageType string `json:"image_type,omitempty"` - ImagePath string `json:"image_path,omitempty"` - AccessPorts string `json:"access_ports,omitempty"` - AllowServerless bool `json:"allow_serverless,omitempty"` - DefaultFlavor Flavor `json:"defaultFlavor,omitempty"` - ServerlessConfig interface{} `json:"serverless_config,omitempty"` - DeploymentGenerator string `json:"deployment_generator,omitempty"` - DeploymentManifest string `json:"deployment_manifest,omitempty"` - RequiredOutboundConnections []SecurityRule `json:"required_outbound_connections"` - GlobalID string `json:"global_id,omitempty"` - CreatedAt string `json:"created_at,omitempty"` - UpdatedAt string `json:"updated_at,omitempty"` - Fields []string `json:"fields,omitempty"` + Key AppKey `json:"key"` + Deployment string `json:"deployment,omitempty"` + ImageType string `json:"image_type,omitempty"` + ImagePath string `json:"image_path,omitempty"` + AccessPorts string `json:"access_ports,omitempty"` + AllowServerless bool `json:"allow_serverless,omitempty"` + DefaultFlavor Flavor `json:"defaultFlavor,omitempty"` + ServerlessConfig ServerlessConfig `json:"serverless_config,omitempty"` + DeploymentGenerator string `json:"deployment_generator,omitempty"` + DeploymentManifest string `json:"deployment_manifest,omitempty"` + RequiredOutboundConnections []SecurityRule `json:"required_outbound_connections"` + GlobalID string `json:"global_id,omitempty"` + CreatedAt string `json:"created_at,omitempty"` + UpdatedAt string `json:"updated_at,omitempty"` + Fields []string `json:"fields,omitempty"` } // AppInstance represents a deployed application instance