1234567891011121314151617181920212223242526272829303132333435 |
- package models
- // AppImportRequest represents a request to import an app from docker-compose
- type AppImportRequest struct {
- AppName string `json:"app_name,omitempty"` // Optional app name, can be auto-generated
- SourceURL string `json:"source_url" binding:"required"` // Git repository URL
- Branch string `json:"branch" binding:"required"` // Git branch, defaults to "main"
- ComposePath string `json:"compose_path,omitempty"` // Path to docker-compose.yml, defaults to "docker-compose.yml"
- }
- // ComposeService represents a service found in a docker-compose.yml file
- type ComposeService struct {
- Name string `json:"name"` // Service name from compose file
- Source string `json:"source"` // "build" or "image"
- BuildContext string `json:"build_context,omitempty"` // For build services, the context path
- Dockerfile string `json:"dockerfile,omitempty"` // For build services, the dockerfile path
- Image string `json:"image,omitempty"` // For image services, the image name
- Ports []string `json:"ports,omitempty"` // Port mappings
- Environment map[string]string `json:"environment,omitempty"` // Environment variables
- Volumes []string `json:"volumes,omitempty"` // Volume mappings
- }
- // AppImportReview represents the review response for an app import
- type AppImportReview struct {
- AppName string `json:"app_name"` // Suggested or provided app name
- Services []ComposeService `json:"services"` // List of services found in compose file
- Valid bool `json:"valid"` // Whether the compose file is valid
- Error string `json:"error,omitempty"` // Error message if invalid
- }
- // AppImportCreateRequest represents the final request to create an app from compose
- type AppImportCreateRequest struct {
- AppImportRequest
- ConfirmedAppName string `json:"confirmed_app_name" binding:"required"` // User-confirmed app name
- }
|