69 lines
2.5 KiB
Go
69 lines
2.5 KiB
Go
package admission
|
|
|
|
import "time"
|
|
|
|
// ProbeClassification mirrors domain.ProbeClassification for internal use
|
|
type ProbeClassification string
|
|
|
|
const (
|
|
ProbeClassificationSuccess ProbeClassification = "success"
|
|
ProbeClassificationExplicitFailure ProbeClassification = "explicit_failure"
|
|
ProbeClassificationInconclusive ProbeClassification = "inconclusive"
|
|
)
|
|
|
|
// CandidateStatus mirrors domain.DiscoveryCandidateStatus
|
|
type CandidateStatus string
|
|
|
|
const (
|
|
CandidateStatusDiscovered CandidateStatus = "discovered"
|
|
CandidateStatusTesting CandidateStatus = "testing"
|
|
CandidateStatusTestPassed CandidateStatus = "test_passed"
|
|
CandidateStatusTestFailed CandidateStatus = "test_failed"
|
|
CandidateStatusRetryPending CandidateStatus = "retry_pending"
|
|
CandidateStatusIgnored CandidateStatus = "ignored"
|
|
CandidateStatusPublished CandidateStatus = "published"
|
|
CandidateStatusDeprecated CandidateStatus = "deprecated"
|
|
CandidateStatusClosed CandidateStatus = "closed"
|
|
)
|
|
|
|
// Candidate represents a discovered model tracked through the admission lifecycle
|
|
type Candidate struct {
|
|
CandidateID string `json:"candidate_id"`
|
|
AccountID int64 `json:"account_id"`
|
|
Platform string `json:"platform"`
|
|
Model string `json:"model"`
|
|
Status CandidateStatus `json:"status"`
|
|
Source string `json:"source"`
|
|
ReasonCode string `json:"reason_code,omitempty"`
|
|
DiscoveredAt time.Time `json:"discovered_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
Version int64 `json:"version"`
|
|
}
|
|
|
|
// TestResult records the outcome of an admission test run
|
|
type TestResult struct {
|
|
CandidateID string `json:"candidate_id"`
|
|
Status CandidateStatus `json:"status"`
|
|
TestedAt time.Time `json:"tested_at"`
|
|
FailureCode string `json:"failure_code,omitempty"`
|
|
FailureSummary string `json:"failure_summary,omitempty"`
|
|
Passed bool `json:"passed"`
|
|
}
|
|
|
|
// TestCase defines a single test case within an admission test run
|
|
type TestCase struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Endpoint string `json:"endpoint"`
|
|
Method string `json:"method"`
|
|
Headers map[string]string `json:"headers,omitempty"`
|
|
Body string `json:"body,omitempty"`
|
|
TimeoutSecs int `json:"timeout_secs"`
|
|
}
|
|
|
|
// TestSuite defines a collection of test cases for a model type
|
|
type TestSuite struct {
|
|
Platform string `json:"platform"`
|
|
Cases []TestCase `json:"cases"`
|
|
}
|