Documentation
¶
Overview ¶
Package plan computes deterministic desired-state changes and approval artifacts without performing API operations.
The plan package is part of Ramen's supported v0.1 core API.
Index ¶
- Constants
- func DesiredHash(input DesiredHashInput) string
- func VerifyApproval(doc Document) error
- type APISourceInput
- type APISourceRef
- type Approval
- type Controls
- type DesiredHashInput
- type Diagnostic
- type Document
- type MappingHashInput
- type MappingPlan
- type Options
- type ResourcePlan
- type Result
- type Summary
Constants ¶
View Source
const MappingMetadataVersion = "ramen.mapping-metadata.v1"
View Source
const Version = "ramen.plan.v1"
Variables ¶
This section is empty.
Functions ¶
func DesiredHash ¶
func DesiredHash(input DesiredHashInput) string
func VerifyApproval ¶
Types ¶
type APISourceInput ¶
type APISourceRef ¶
type Approval ¶
type Approval struct {
Version string `json:"version"`
Digest string `json:"digest"`
Rationale string `json:"rationale,omitempty"`
ProjectDigest string `json:"project_digest,omitempty"`
StateDigest string `json:"state_digest,omitempty"`
Controls Controls `json:"controls,omitempty"`
APISources []APISourceRef `json:"api_sources,omitempty"`
Approvers []governance.Approver `json:"approvers,omitempty"`
}
type DesiredHashInput ¶
type Diagnostic ¶
type Diagnostic struct {
Code string `json:"code"`
Severity string `json:"severity"`
Message string `json:"message"`
Address string `json:"address,omitempty"`
ModuleAddress string `json:"module_address,omitempty"`
APISourceKind string `json:"api_source_kind,omitempty"`
APISourceID string `json:"api_source_id,omitempty"`
}
type Document ¶
type Document struct {
Version string `json:"version"`
ConfigDir string `json:"config_dir"`
ProjectPath string `json:"project_path,omitempty"`
StatePath string `json:"state_path"`
Workspace string `json:"workspace,omitempty"`
Action string `json:"action"`
Inputs project.ResolvedInputs `json:"inputs,omitempty"`
Governance governance.Result `json:"governance,omitempty"`
Rationale string `json:"rationale,omitempty"`
Controls Controls `json:"controls,omitempty"`
APISources []APISourceRef `json:"api_sources,omitempty"`
Approval *Approval `json:"approval,omitempty"`
Errored bool `json:"errored,omitempty"`
Summary Summary `json:"summary"`
Resources []ResourcePlan `json:"resources"`
Diagnostics []Diagnostic `json:"diagnostics,omitempty"`
}
type MappingHashInput ¶
type MappingHashInput struct {
MetadataVersion string
Purpose string
SourceKind string
SourceID string
OperationID string
IdentityAttributes []tfmapping.IdentityAttribute
Schema []project.SchemaPath
RequestBindings []project.RequestBinding
ResponseBindings []project.ResponseBinding
Normalizers []project.Normalizer
MappingLifecycle *project.MappingLifecycle
RequiredOperations []string
}
type MappingPlan ¶
type MappingPlan struct {
Purpose string `json:"purpose"`
Method string `json:"method,omitempty"`
SourceKind string `json:"source_kind,omitempty"`
SourceID string `json:"source_id,omitempty"`
SourcePath string `json:"source_path,omitempty"`
OperationID string `json:"operation_id,omitempty"`
IdentityAttributes []tfmapping.IdentityAttribute `json:"identity_attributes,omitempty"`
Schema []project.SchemaPath `json:"schema,omitempty"`
RequestBindings []project.RequestBinding `json:"request_bindings,omitempty"`
ResponseBindings []project.ResponseBinding `json:"response_bindings,omitempty"`
Normalizers []project.Normalizer `json:"normalizers,omitempty"`
MappingLifecycle *project.MappingLifecycle `json:"mapping_lifecycle,omitempty"`
RequiredOperations []string `json:"required_operations,omitempty"`
AI *project.AIMetadata `json:"ai,omitempty"`
}
type Options ¶
type Options struct {
ConfigDir string
ProjectPath string
StatePath string
APISources []APISourceInput
VarFiles []string
Vars []string
PolicyFiles []string
Approvers []governance.Approver
Workspace string
Action string
OutPath string
HCLPath string
Targets []string
Excludes []string
Replaces []string
Destroy bool
}
type ResourcePlan ¶
type ResourcePlan struct {
Address string `json:"address"`
Kind string `json:"kind"`
Type string `json:"type"`
Name string `json:"name"`
Provider string `json:"provider,omitempty"`
Action string `json:"action"`
Reason string `json:"reason"`
DesiredHash string `json:"desired_hash,omitempty"`
Dependencies []string `json:"dependencies,omitempty"`
Mapping *MappingPlan `json:"mapping,omitempty"`
RuntimeHints *project.RuntimeHints `json:"runtime_hints,omitempty"`
AI *project.AIMetadata `json:"ai,omitempty"`
}
type Result ¶
type Result struct {
StatePath string
OutPath string
HCLPath string
Plan Document
Diagnostics []Diagnostic
}
type Summary ¶
type Summary struct {
Create int `json:"create"`
Update int `json:"update"`
Delete int `json:"delete"`
Post int `json:"post,omitempty"`
Put int `json:"put,omitempty"`
Patch int `json:"patch,omitempty"`
Replace int `json:"replace"`
NoOp int `json:"no_op"`
Read int `json:"read"`
Diagnostics int `json:"diagnostics"`
}
Click to show internal directories.
Click to hide internal directories.