fluid-core/internal/contract/revision_gen.go
tegwick 76912adef8
Some checks failed
ci / build (push) Failing after 1m6s
Generate contract types, pin fixtures to spec, add build and ADRs
Completes FLUID-WP-0002. The record types in internal/contract are
generated from schemas/ by a dependency-free generator; fixtures
transcribed from the spec's worked examples validate against those
schemas and round-trip through the generated types with
DisallowUnknownFields, so a spec change that misses the schemas fails
CI rather than drifting silently.

Adds identifier prefix helpers, Makefile, GitHub Actions, and five ADRs
recording the Go choice, out-of-process attachment, the wire contract as
boundary, the evidence store, and revision identity.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1116572@bnt-lap001
Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
2026-09-04 02:03:12 +02:00

314 lines
17 KiB
Go

// Code generated by tools/schemagen. DO NOT EDIT.
// Source: schemas/. Regenerate with `make generate`.
package contract
// Adoption is evidence, not proof of quality (FluidAPIStandards.md section 32).
type FluidRevisionAdoption struct {
ActiveConsumers *int64 `json:"active_consumers,omitempty" yaml:"active_consumers,omitempty"`
AdoptionRate *UnitInterval `json:"adoption_rate,omitempty" yaml:"adoption_rate,omitempty"`
EligibleConsumers *int64 `json:"eligible_consumers,omitempty" yaml:"eligible_consumers,omitempty"`
RetainedAdoptionRate *UnitInterval `json:"retained_adoption_rate,omitempty" yaml:"retained_adoption_rate,omitempty"`
}
type FluidRevisionAudit struct {
ImmutableEventRefs []EventID `json:"immutable_event_refs,omitempty" yaml:"immutable_event_refs,omitempty"`
}
type FluidRevisionCompatibilityClass string
const (
FluidRevisionCompatibilityClassBACKWARDCOMPATIBLE FluidRevisionCompatibilityClass = "BACKWARD_COMPATIBLE"
FluidRevisionCompatibilityClassFORWARDCOMPATIBLE FluidRevisionCompatibilityClass = "FORWARD_COMPATIBLE"
FluidRevisionCompatibilityClassADDITIVE FluidRevisionCompatibilityClass = "ADDITIVE"
FluidRevisionCompatibilityClassBEHAVIORALCHANGE FluidRevisionCompatibilityClass = "BEHAVIORAL_CHANGE"
FluidRevisionCompatibilityClassBREAKING FluidRevisionCompatibilityClass = "BREAKING"
FluidRevisionCompatibilityClassMIGRATIONONLY FluidRevisionCompatibilityClass = "MIGRATION_ONLY"
FluidRevisionCompatibilityClassINTERNALONLY FluidRevisionCompatibilityClass = "INTERNAL_ONLY"
)
// Valid reports whether v is a defined FluidRevisionCompatibilityClass.
func (v FluidRevisionCompatibilityClass) Valid() bool {
switch v {
case FluidRevisionCompatibilityClassBACKWARDCOMPATIBLE, FluidRevisionCompatibilityClassFORWARDCOMPATIBLE, FluidRevisionCompatibilityClassADDITIVE, FluidRevisionCompatibilityClassBEHAVIORALCHANGE, FluidRevisionCompatibilityClassBREAKING, FluidRevisionCompatibilityClassMIGRATIONONLY, FluidRevisionCompatibilityClassINTERNALONLY:
return true
}
return false
}
type FluidRevisionCompatibility struct {
BreakingChanges []string `json:"breaking_changes,omitempty" yaml:"breaking_changes,omitempty"`
Class FluidRevisionCompatibilityClass `json:"class" yaml:"class"`
CompatibilityEvidenceRefs []EvidenceRef `json:"compatibility_evidence_refs,omitempty" yaml:"compatibility_evidence_refs,omitempty"`
Deprecations []string `json:"deprecations,omitempty" yaml:"deprecations,omitempty"`
Supersedes []RevisionID `json:"supersedes,omitempty" yaml:"supersedes,omitempty"`
}
type FluidRevisionComplexityBudgetStatus string
const (
FluidRevisionComplexityBudgetStatusWITHINBUDGET FluidRevisionComplexityBudgetStatus = "WITHIN_BUDGET"
FluidRevisionComplexityBudgetStatusATBUDGET FluidRevisionComplexityBudgetStatus = "AT_BUDGET"
FluidRevisionComplexityBudgetStatusOVERBUDGET FluidRevisionComplexityBudgetStatus = "OVER_BUDGET"
)
// Valid reports whether v is a defined FluidRevisionComplexityBudgetStatus.
func (v FluidRevisionComplexityBudgetStatus) Valid() bool {
switch v {
case FluidRevisionComplexityBudgetStatusWITHINBUDGET, FluidRevisionComplexityBudgetStatusATBUDGET, FluidRevisionComplexityBudgetStatusOVERBUDGET:
return true
}
return false
}
type FluidRevisionComplexity struct {
After *ComplexityDelta `json:"after,omitempty" yaml:"after,omitempty"`
Before *ComplexityDelta `json:"before,omitempty" yaml:"before,omitempty"`
BudgetStatus *FluidRevisionComplexityBudgetStatus `json:"budget_status,omitempty" yaml:"budget_status,omitempty"`
DeltaScore *float64 `json:"delta_score,omitempty" yaml:"delta_score,omitempty"`
}
type FluidRevisionContractType string
const (
FluidRevisionContractTypeOpenapi FluidRevisionContractType = "openapi"
FluidRevisionContractTypeGraphql FluidRevisionContractType = "graphql"
FluidRevisionContractTypeProtobuf FluidRevisionContractType = "protobuf"
FluidRevisionContractTypeAsyncapi FluidRevisionContractType = "asyncapi"
FluidRevisionContractTypeJsonschema FluidRevisionContractType = "jsonschema"
FluidRevisionContractTypeCustom FluidRevisionContractType = "custom"
)
// Valid reports whether v is a defined FluidRevisionContractType.
func (v FluidRevisionContractType) Valid() bool {
switch v {
case FluidRevisionContractTypeOpenapi, FluidRevisionContractTypeGraphql, FluidRevisionContractTypeProtobuf, FluidRevisionContractTypeAsyncapi, FluidRevisionContractTypeJsonschema, FluidRevisionContractTypeCustom:
return true
}
return false
}
type FluidRevisionContract struct {
ArtifactRef ArtifactRef `json:"artifact_ref" yaml:"artifact_ref"`
Digest Digest `json:"digest" yaml:"digest"`
Type FluidRevisionContractType `json:"type" yaml:"type"`
Version string `json:"version,omitempty" yaml:"version,omitempty"`
}
type FluidRevisionDeploymentCurrentExposure struct {
Cohorts []CohortID `json:"cohorts,omitempty" yaml:"cohorts,omitempty"`
TrafficShare *UnitInterval `json:"traffic_share,omitempty" yaml:"traffic_share,omitempty"`
}
type FluidRevisionDeploymentEnvironmentsItem struct {
Name string `json:"name" yaml:"name"`
RoutingPolicyRef string `json:"routing_policy_ref,omitempty" yaml:"routing_policy_ref,omitempty"`
StartedAt *Timestamp `json:"started_at,omitempty" yaml:"started_at,omitempty"`
}
type FluidRevisionDeployment struct {
CurrentExposure *FluidRevisionDeploymentCurrentExposure `json:"current_exposure,omitempty" yaml:"current_exposure,omitempty"`
Environments []FluidRevisionDeploymentEnvironmentsItem `json:"environments,omitempty" yaml:"environments,omitempty"`
}
type FluidRevisionEconomics struct {
BuildCost *float64 `json:"build_cost,omitempty" yaml:"build_cost,omitempty"`
Currency string `json:"currency,omitempty" yaml:"currency,omitempty"`
ExperimentCostToDate *float64 `json:"experiment_cost_to_date,omitempty" yaml:"experiment_cost_to_date,omitempty"`
}
type FluidRevisionFitnessMetricsValue struct {
Baseline *float64 `json:"baseline,omitempty" yaml:"baseline,omitempty"`
Current *float64 `json:"current,omitempty" yaml:"current,omitempty"`
Guardrail *float64 `json:"guardrail,omitempty" yaml:"guardrail,omitempty"`
Target *float64 `json:"target,omitempty" yaml:"target,omitempty"`
}
type FluidRevisionFitness struct {
BaselineRevision *RevisionID `json:"baseline_revision,omitempty" yaml:"baseline_revision,omitempty"`
MeasurementWindow *ObservationWindow `json:"measurement_window,omitempty" yaml:"measurement_window,omitempty"`
Metrics map[string]FluidRevisionFitnessMetricsValue `json:"metrics,omitempty" yaml:"metrics,omitempty"`
}
type FluidRevisionImplementation struct {
ArtifactRef ArtifactRef `json:"artifact_ref" yaml:"artifact_ref"`
BuildRef string `json:"build_ref,omitempty" yaml:"build_ref,omitempty"`
Digest Digest `json:"digest" yaml:"digest"`
SourceRef string `json:"source_ref,omitempty" yaml:"source_ref,omitempty"`
}
// Every revision is governed by a specific intent version, so audit can ask whether
// the change was valid under the intent that existed at the time
// (ArchitectureBlueprint.md section 27).
type FluidRevisionInterfaceEvolutionIntent struct {
ArtifactRef *ArtifactRef `json:"artifact_ref,omitempty" yaml:"artifact_ref,omitempty"`
Version string `json:"version" yaml:"version"`
}
type FluidRevisionPromotionRecommendedState string
const (
FluidRevisionPromotionRecommendedStateCREATED FluidRevisionPromotionRecommendedState = "CREATED"
FluidRevisionPromotionRecommendedStateVERIFIED FluidRevisionPromotionRecommendedState = "VERIFIED"
FluidRevisionPromotionRecommendedStateEXPERIMENT FluidRevisionPromotionRecommendedState = "EXPERIMENT"
FluidRevisionPromotionRecommendedStateCANDIDATE FluidRevisionPromotionRecommendedState = "CANDIDATE"
FluidRevisionPromotionRecommendedStateSTABLE FluidRevisionPromotionRecommendedState = "STABLE"
FluidRevisionPromotionRecommendedStateDEPRECATED FluidRevisionPromotionRecommendedState = "DEPRECATED"
FluidRevisionPromotionRecommendedStateRETIRED FluidRevisionPromotionRecommendedState = "RETIRED"
)
// Valid reports whether v is a defined FluidRevisionPromotionRecommendedState.
func (v FluidRevisionPromotionRecommendedState) Valid() bool {
switch v {
case FluidRevisionPromotionRecommendedStateCREATED, FluidRevisionPromotionRecommendedStateVERIFIED, FluidRevisionPromotionRecommendedStateEXPERIMENT, FluidRevisionPromotionRecommendedStateCANDIDATE, FluidRevisionPromotionRecommendedStateSTABLE, FluidRevisionPromotionRecommendedStateDEPRECATED, FluidRevisionPromotionRecommendedStateRETIRED:
return true
}
return false
}
type FluidRevisionPromotion struct {
AuthorizedAt *Timestamp `json:"authorized_at,omitempty" yaml:"authorized_at,omitempty"`
AuthorizedBy *Actor `json:"authorized_by,omitempty" yaml:"authorized_by,omitempty"`
Eligible *bool `json:"eligible,omitempty" yaml:"eligible,omitempty"`
RecommendationReason *string `json:"recommendation_reason,omitempty" yaml:"recommendation_reason,omitempty"`
RecommendedState *FluidRevisionPromotionRecommendedState `json:"recommended_state,omitempty" yaml:"recommended_state,omitempty"`
}
type FluidRevisionProvenance struct {
DecisionRefs []DecisionID `json:"decision_refs,omitempty" yaml:"decision_refs,omitempty"`
ExperimentRefs []ExperimentID `json:"experiment_refs,omitempty" yaml:"experiment_refs,omitempty"`
TelemetryRefs []EvidenceRef `json:"telemetry_refs,omitempty" yaml:"telemetry_refs,omitempty"`
}
type FluidRevisionRollback struct {
ProcedureRef string `json:"procedure_ref,omitempty" yaml:"procedure_ref,omitempty"`
Supported bool `json:"supported" yaml:"supported"`
TargetRevision *RevisionID `json:"target_revision,omitempty" yaml:"target_revision,omitempty"`
}
type FluidRevisionState string
const (
FluidRevisionStateCREATED FluidRevisionState = "CREATED"
FluidRevisionStateVERIFIED FluidRevisionState = "VERIFIED"
FluidRevisionStateEXPERIMENT FluidRevisionState = "EXPERIMENT"
FluidRevisionStateCANDIDATE FluidRevisionState = "CANDIDATE"
FluidRevisionStateSTABLE FluidRevisionState = "STABLE"
FluidRevisionStateDEPRECATED FluidRevisionState = "DEPRECATED"
FluidRevisionStateRETIRED FluidRevisionState = "RETIRED"
)
// Valid reports whether v is a defined FluidRevisionState.
func (v FluidRevisionState) Valid() bool {
switch v {
case FluidRevisionStateCREATED, FluidRevisionStateVERIFIED, FluidRevisionStateEXPERIMENT, FluidRevisionStateCANDIDATE, FluidRevisionStateSTABLE, FluidRevisionStateDEPRECATED, FluidRevisionStateRETIRED:
return true
}
return false
}
type FluidRevisionVerificationPolicyCheck string
const (
FluidRevisionVerificationPolicyCheckPENDING FluidRevisionVerificationPolicyCheck = "PENDING"
FluidRevisionVerificationPolicyCheckPASSED FluidRevisionVerificationPolicyCheck = "PASSED"
FluidRevisionVerificationPolicyCheckFAILED FluidRevisionVerificationPolicyCheck = "FAILED"
)
// Valid reports whether v is a defined FluidRevisionVerificationPolicyCheck.
func (v FluidRevisionVerificationPolicyCheck) Valid() bool {
switch v {
case FluidRevisionVerificationPolicyCheckPENDING, FluidRevisionVerificationPolicyCheckPASSED, FluidRevisionVerificationPolicyCheckFAILED:
return true
}
return false
}
type FluidRevisionVerificationSecurityCheck string
const (
FluidRevisionVerificationSecurityCheckPENDING FluidRevisionVerificationSecurityCheck = "PENDING"
FluidRevisionVerificationSecurityCheckPASSED FluidRevisionVerificationSecurityCheck = "PASSED"
FluidRevisionVerificationSecurityCheckFAILED FluidRevisionVerificationSecurityCheck = "FAILED"
)
// Valid reports whether v is a defined FluidRevisionVerificationSecurityCheck.
func (v FluidRevisionVerificationSecurityCheck) Valid() bool {
switch v {
case FluidRevisionVerificationSecurityCheckPENDING, FluidRevisionVerificationSecurityCheckPASSED, FluidRevisionVerificationSecurityCheckFAILED:
return true
}
return false
}
type FluidRevisionVerificationStatus string
const (
FluidRevisionVerificationStatusPENDING FluidRevisionVerificationStatus = "PENDING"
FluidRevisionVerificationStatusPASSED FluidRevisionVerificationStatus = "PASSED"
FluidRevisionVerificationStatusFAILED FluidRevisionVerificationStatus = "FAILED"
)
// Valid reports whether v is a defined FluidRevisionVerificationStatus.
func (v FluidRevisionVerificationStatus) Valid() bool {
switch v {
case FluidRevisionVerificationStatusPENDING, FluidRevisionVerificationStatusPASSED, FluidRevisionVerificationStatusFAILED:
return true
}
return false
}
// The primary safety barrier between adaptive generation and deterministic runtime
// (ArchitectureBlueprint.md section 15).
type FluidRevisionVerification struct {
PolicyCheck *FluidRevisionVerificationPolicyCheck `json:"policy_check,omitempty" yaml:"policy_check,omitempty"`
SecurityCheck *FluidRevisionVerificationSecurityCheck `json:"security_check,omitempty" yaml:"security_check,omitempty"`
Status FluidRevisionVerificationStatus `json:"status" yaml:"status"`
TestRefs []string `json:"test_refs,omitempty" yaml:"test_refs,omitempty"`
}
type FluidRevision struct {
AdaptationClasses []AdaptationClass `json:"adaptation_classes,omitempty" yaml:"adaptation_classes,omitempty"`
// Adoption is evidence, not proof of quality (FluidAPIStandards.md section 32).
Adoption *FluidRevisionAdoption `json:"adoption,omitempty" yaml:"adoption,omitempty"`
Audit *FluidRevisionAudit `json:"audit,omitempty" yaml:"audit,omitempty"`
BackendRequirements []BackendRequirementID `json:"backend_requirements,omitempty" yaml:"backend_requirements,omitempty"`
Compatibility FluidRevisionCompatibility `json:"compatibility" yaml:"compatibility"`
Complexity *FluidRevisionComplexity `json:"complexity,omitempty" yaml:"complexity,omitempty"`
Contract FluidRevisionContract `json:"contract" yaml:"contract"`
CreatedAt *Timestamp `json:"created_at,omitempty" yaml:"created_at,omitempty"`
CreatedBy *Actor `json:"created_by,omitempty" yaml:"created_by,omitempty"`
Deployment *FluidRevisionDeployment `json:"deployment,omitempty" yaml:"deployment,omitempty"`
Economics *FluidRevisionEconomics `json:"economics,omitempty" yaml:"economics,omitempty"`
Fitness *FluidRevisionFitness `json:"fitness,omitempty" yaml:"fitness,omitempty"`
ID RevisionID `json:"id" yaml:"id"`
Implementation FluidRevisionImplementation `json:"implementation" yaml:"implementation"`
// Every revision is governed by a specific intent version, so audit can ask
// whether the change was valid under the intent that existed at the time
// (ArchitectureBlueprint.md section 27).
InterfaceEvolutionIntent FluidRevisionInterfaceEvolutionIntent `json:"interface_evolution_intent" yaml:"interface_evolution_intent"`
InterfaceID InterfaceID `json:"interface_id" yaml:"interface_id"`
OriginatingHypotheses []HypothesisID `json:"originating_hypotheses,omitempty" yaml:"originating_hypotheses,omitempty"`
// Null marks genesis.
ParentRevision *RevisionID `json:"parent_revision" yaml:"parent_revision"`
Promotion *FluidRevisionPromotion `json:"promotion,omitempty" yaml:"promotion,omitempty"`
Provenance FluidRevisionProvenance `json:"provenance" yaml:"provenance"`
RevisionNumber int64 `json:"revision_number" yaml:"revision_number"`
Rollback FluidRevisionRollback `json:"rollback" yaml:"rollback"`
SchemaVersion SchemaVersion `json:"schema_version" yaml:"schema_version"`
State FluidRevisionState `json:"state" yaml:"state"`
// The primary safety barrier between adaptive generation and deterministic runtime
// (ArchitectureBlueprint.md section 15).
Verification FluidRevisionVerification `json:"verification" yaml:"verification"`
}
// What deterministic interface state was built, verified, exposed and measured.
// Published revisions should be immutable; corrections create successors
// (FluidAPIStandards.md section 8).
type RevisionDocument struct {
FluidRevision FluidRevision `json:"fluid_revision" yaml:"fluid_revision"`
}