autodeploy.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package models
  2. import (
  3. "encoding/json"
  4. "time"
  5. )
  6. // AutoDeploySettings contains auto-deployment configuration
  7. type AutoDeploySettings struct {
  8. Enabled bool `json:"enabled"`
  9. DefaultProviderID string `json:"default_provider_id"`
  10. DefaultTemplateID string `json:"default_template_id"`
  11. DefaultRegion string `json:"default_region"`
  12. AutoDeployNewClients bool `json:"auto_deploy_new_clients"`
  13. WebhookSecret string `json:"webhook_secret,omitempty"`
  14. WebhookURL string `json:"webhook_url"`
  15. DefaultTags map[string]string `json:"default_tags"`
  16. ResourceLimits ResourceLimits `json:"resource_limits"`
  17. NotificationEndpoints []string `json:"notification_endpoints"`
  18. }
  19. // ResourceLimits defines resource constraints for auto-deployments
  20. type ResourceLimits struct {
  21. MaxCPUCores int `json:"max_cpu_cores"`
  22. MaxMemoryGB int `json:"max_memory_gb"`
  23. MaxDiskGB int `json:"max_disk_gb"`
  24. MaxCount int `json:"max_count"` // Maximum number of instances
  25. }
  26. // AutoDeployRequest represents a request to automatically deploy for a client
  27. type AutoDeployRequest struct {
  28. ClientID string `json:"client_id"`
  29. TemplateID string `json:"template_id,omitempty"`
  30. ProviderID string `json:"provider_id,omitempty"`
  31. Region string `json:"region,omitempty"`
  32. Tags map[string]string `json:"tags,omitempty"`
  33. Priority string `json:"priority,omitempty"` // Low, Medium, High
  34. }
  35. // WebhookPayload represents data sent to or received from a webhook
  36. type WebhookPayload struct {
  37. Event string `json:"event"`
  38. Timestamp time.Time `json:"timestamp"`
  39. ClientID string `json:"client_id"`
  40. Data json.RawMessage `json:"data"`
  41. Signature string `json:"signature,omitempty"`
  42. RequestID string `json:"request_id"`
  43. ProviderID string `json:"provider_id,omitempty"`
  44. }