// Code generated by tools/schemagen. DO NOT EDIT. // Source: schemas/. Regenerate with `make generate`. package contract type RevisionContractType string const ( RevisionContractTypeOpenapi RevisionContractType = "openapi" RevisionContractTypeGraphql RevisionContractType = "graphql" RevisionContractTypeProtobuf RevisionContractType = "protobuf" RevisionContractTypeAsyncapi RevisionContractType = "asyncapi" RevisionContractTypeJsonschema RevisionContractType = "jsonschema" RevisionContractTypeCustom RevisionContractType = "custom" ) // Valid reports whether v is a defined RevisionContractType. func (v RevisionContractType) Valid() bool { switch v { case RevisionContractTypeOpenapi, RevisionContractTypeGraphql, RevisionContractTypeProtobuf, RevisionContractTypeAsyncapi, RevisionContractTypeJsonschema, RevisionContractTypeCustom: return true } return false } type RevisionContract struct { Digest Digest `json:"digest" yaml:"digest"` // Where the contract artifact can be fetched. Source string `json:"source,omitempty" yaml:"source,omitempty"` Type RevisionContractType `json:"type" yaml:"type"` } // Which interface evolution intent governs this revision. Required: a revision with // no governing intent cannot be audited. type RevisionIntent struct { Digest *Digest `json:"digest,omitempty" yaml:"digest,omitempty"` Version string `json:"version" yaml:"version"` } type RevisionPolicyCompatibility string const ( RevisionPolicyCompatibilityBackwardCompatible RevisionPolicyCompatibility = "backward_compatible" RevisionPolicyCompatibilityForwardCompatible RevisionPolicyCompatibility = "forward_compatible" RevisionPolicyCompatibilityAdditive RevisionPolicyCompatibility = "additive" RevisionPolicyCompatibilityBehavioralChange RevisionPolicyCompatibility = "behavioral_change" RevisionPolicyCompatibilityBreaking RevisionPolicyCompatibility = "breaking" RevisionPolicyCompatibilityMigrationOnly RevisionPolicyCompatibility = "migration_only" RevisionPolicyCompatibilityInternalOnly RevisionPolicyCompatibility = "internal_only" ) // Valid reports whether v is a defined RevisionPolicyCompatibility. func (v RevisionPolicyCompatibility) Valid() bool { switch v { case RevisionPolicyCompatibilityBackwardCompatible, RevisionPolicyCompatibilityForwardCompatible, RevisionPolicyCompatibilityAdditive, RevisionPolicyCompatibilityBehavioralChange, RevisionPolicyCompatibilityBreaking, RevisionPolicyCompatibilityMigrationOnly, RevisionPolicyCompatibilityInternalOnly: return true } return false } type RevisionPolicyPolicyCheck string const ( RevisionPolicyPolicyCheckPending RevisionPolicyPolicyCheck = "pending" RevisionPolicyPolicyCheckPassed RevisionPolicyPolicyCheck = "passed" RevisionPolicyPolicyCheckFailed RevisionPolicyPolicyCheck = "failed" ) // Valid reports whether v is a defined RevisionPolicyPolicyCheck. func (v RevisionPolicyPolicyCheck) Valid() bool { switch v { case RevisionPolicyPolicyCheckPending, RevisionPolicyPolicyCheckPassed, RevisionPolicyPolicyCheckFailed: return true } return false } type RevisionPolicySecurityCheck string const ( RevisionPolicySecurityCheckPending RevisionPolicySecurityCheck = "pending" RevisionPolicySecurityCheckPassed RevisionPolicySecurityCheck = "passed" RevisionPolicySecurityCheckFailed RevisionPolicySecurityCheck = "failed" ) // Valid reports whether v is a defined RevisionPolicySecurityCheck. func (v RevisionPolicySecurityCheck) Valid() bool { switch v { case RevisionPolicySecurityCheckPending, RevisionPolicySecurityCheckPassed, RevisionPolicySecurityCheckFailed: return true } return false } type RevisionPolicy struct { Compatibility RevisionPolicyCompatibility `json:"compatibility" yaml:"compatibility"` PolicyCheck *RevisionPolicyPolicyCheck `json:"policy_check,omitempty" yaml:"policy_check,omitempty"` RollbackTo *RevisionID `json:"rollback_to,omitempty" yaml:"rollback_to,omitempty"` SecurityCheck RevisionPolicySecurityCheck `json:"security_check" yaml:"security_check"` } type RevisionRouting struct { // Empty or absent means all cohorts are eligible. EligibleCohorts []CohortID `json:"eligible_cohorts,omitempty" yaml:"eligible_cohorts,omitempty"` // Ceiling the router enforces regardless of what a routing policy asks for. MaxTrafficShare *UnitInterval `json:"max_traffic_share,omitempty" yaml:"max_traffic_share,omitempty"` } type RevisionRuntimeCircuitBreaker struct { FailureThreshold *int64 `json:"failure_threshold,omitempty" yaml:"failure_threshold,omitempty"` ResetAfterMS *int64 `json:"reset_after_ms,omitempty" yaml:"reset_after_ms,omitempty"` } type RevisionRuntimeRetry struct { BackoffMS *int64 `json:"backoff_ms,omitempty" yaml:"backoff_ms,omitempty"` MaxAttempts *int64 `json:"max_attempts,omitempty" yaml:"max_attempts,omitempty"` RetryOn []string `json:"retry_on,omitempty" yaml:"retry_on,omitempty"` } // Out-of-process attachment: the adapter is an upstream reached over the network, // so it may be implemented in any language. type RevisionRuntime struct { CircuitBreaker *RevisionRuntimeCircuitBreaker `json:"circuit_breaker,omitempty" yaml:"circuit_breaker,omitempty"` Digest *Digest `json:"digest,omitempty" yaml:"digest,omitempty"` Image string `json:"image,omitempty" yaml:"image,omitempty"` Retry *RevisionRuntimeRetry `json:"retry,omitempty" yaml:"retry,omitempty"` TimeoutMS *int64 `json:"timeout_ms,omitempty" yaml:"timeout_ms,omitempty"` // Base URL of the adapter process serving this revision. Upstream string `json:"upstream" yaml:"upstream"` } type RevisionSignatureAlgorithm string const ( RevisionSignatureAlgorithmEd25519 RevisionSignatureAlgorithm = "ed25519" ) // Valid reports whether v is a defined RevisionSignatureAlgorithm. func (v RevisionSignatureAlgorithm) Valid() bool { switch v { case RevisionSignatureAlgorithmEd25519: return true } return false } // The router accepts only signed published descriptors (ArchitectureBlueprint.md // section 35). The signature covers the canonical form of this document with the // signature member removed. type RevisionSignature struct { Algorithm RevisionSignatureAlgorithm `json:"algorithm" yaml:"algorithm"` KeyID string `json:"key_id" yaml:"key_id"` SignedAt *Timestamp `json:"signed_at,omitempty" yaml:"signed_at,omitempty"` Value string `json:"value" yaml:"value"` } // The router refuses to route to created, failed or retired revisions // (ArchitectureBlueprint.md section 5.3). type RevisionState string const ( RevisionStateCreated RevisionState = "created" RevisionStateVerified RevisionState = "verified" RevisionStateExperiment RevisionState = "experiment" RevisionStateCandidate RevisionState = "candidate" RevisionStateStable RevisionState = "stable" RevisionStateDeprecated RevisionState = "deprecated" RevisionStateRetired RevisionState = "retired" ) // Valid reports whether v is a defined RevisionState. func (v RevisionState) Valid() bool { switch v { case RevisionStateCreated, RevisionStateVerified, RevisionStateExperiment, RevisionStateCandidate, RevisionStateStable, RevisionStateDeprecated, RevisionStateRetired: return true } return false } type Revision struct { Contract RevisionContract `json:"contract" yaml:"contract"` ID RevisionID `json:"id" yaml:"id"` // Which interface evolution intent governs this revision. Required: a revision // with no governing intent cannot be audited. Intent RevisionIntent `json:"intent" yaml:"intent"` Interface InterfaceID `json:"interface" yaml:"interface"` Policy RevisionPolicy `json:"policy" yaml:"policy"` Routing *RevisionRouting `json:"routing,omitempty" yaml:"routing,omitempty"` // Out-of-process attachment: the adapter is an upstream reached over the network, // so it may be implemented in any language. Runtime RevisionRuntime `json:"runtime" yaml:"runtime"` SchemaVersion SchemaVersion `json:"schema_version" yaml:"schema_version"` // The router accepts only signed published descriptors (ArchitectureBlueprint.md // section 35). The signature covers the canonical form of this document with the // signature member removed. Signature *RevisionSignature `json:"signature,omitempty" yaml:"signature,omitempty"` // The router refuses to route to created, failed or retired revisions // (ArchitectureBlueprint.md section 5.3). State RevisionState `json:"state" yaml:"state"` } // The runtime-facing projection of a revision, deliberately small enough to be // consumed deterministically by infrastructure (ArchitectureBlueprint.md section // 36). This is a wire artifact: the gateway must be able to read it without any // fluid-core library. type RevisionDescriptorDocument struct { Revision Revision `json:"revision" yaml:"revision"` }