Documentation ¶
Index ¶
- type Attribute
- type Change
- type Lineage
- type Module
- type OutputValue
- type Plan
- type PlanModel
- type PlanModelVariable
- type PlanOutput
- type PlanResourceChange
- type PlanState
- type PlanStateModule
- type PlanStateOutput
- type PlanStateResource
- type PlanStateResourceAttribute
- type PlanStateValue
- type Resource
- type ResourceDiff
- type SearchResult
- type State
- type StateCompare
- type StateInfo
- type StateStat
- type Version
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attribute ¶
type Attribute struct { ID uint `sql:"AUTO_INCREMENT" gorm:"primary_key" json:"-"` ResourceID sql.NullInt64 `gorm:"index" json:"-"` Key string `gorm:"index" json:"key"` Value string `json:"value"` }
Attribute is a Terraform attribute in a Resource
type Change ¶
type Change struct { gorm.Model // The action to be carried out by this change. Actions rawJSON `json:"actions,omitempty"` // Before and After are representations of the object value both // before and after the action. For create and delete actions, // either Before or After is unset (respectively). For no-op // actions, both values will be identical. After will be incomplete // if there are values within it that won't be known until after // apply. Before rawJSON `json:"before,omitempty"` After rawJSON `json:"after,omitempty"` // A deep object of booleans that denotes any values that are // unknown in a resource. These values were previously referred to // as "computed" values. // // If the value cannot be found in this map, then its value should // be available within After, so long as the operation supports it. AfterUnknown rawJSON `json:"after_unknown,omitempty"` // BeforeSensitive and AfterSensitive are object values with similar // structure to Before and After, but with all sensitive leaf values // replaced with true, and all non-sensitive leaf values omitted. These // objects should be combined with Before and After to prevent accidental // display of sensitive values in user interfaces. BeforeSensitive rawJSON `json:"before_sensitive,omitempty"` AfterSensitive rawJSON `json:"after_sensitive,omitempty"` }
Change is the representation of a proposed change for an object.
type Module ¶
type Module struct { ID uint `sql:"AUTO_INCREMENT" gorm:"primary_key" json:"-"` StateID sql.NullInt64 `gorm:"index" json:"-"` Path string `json:"path"` Resources []Resource `json:"resources"` OutputValues []OutputValue `json:"outputs"` }
Module is a Terraform module in a State
type OutputValue ¶
type OutputValue struct { ID uint `sql:"AUTO_INCREMENT" gorm:"primary_key" json:"-"` ModuleID sql.NullInt64 `gorm:"index" json:"-"` Sensitive bool `gorm:"index" json:"sensitive"` Name string `gorm:"index" json:"name"` Value string `json:"value"` }
OutputValue is a Terraform output in a Module
type Plan ¶
type Plan struct { gorm.Model `swaggerignore:"true"` LineageID uint `gorm:"index" json:"-"` Lineage Lineage `json:"lineage_data"` TFVersion string `gorm:"varchar(10)" json:"terraform_version"` GitRemote string `json:"git_remote"` GitCommit string `gorm:"varchar(50)" json:"git_commit"` CiURL string `json:"ci_url"` Source string `json:"source"` ExitCode int `json:"exit_code"` ParsedPlan PlanModel `json:"parsed_plan"` ParsedPlanID sql.NullInt64 `gorm:"index" json:"-"` PlanJSON datatypes.JSON `json:"plan_json"` }
Plan is a Terraform plan
type PlanModel ¶
type PlanModel struct { gorm.Model // The version of the plan format. This should always match the // PlanFormatVersion constant in this package, or else an unmarshal // will be unstable. FormatVersion string `json:"format_version,omitempty"` // The version of Terraform used to make the plan. TerraformVersion string `json:"terraform_version,omitempty"` // The common state representation of resources within this plan. // This is a product of the existing state merged with the diff for // this plan. PlanStateValue PlanStateValue `json:"planned_values,omitempty"` PlanStateValueID sql.NullInt64 `gorm:"index" json:"-"` // The variables set in the root module when creating the plan. Variables planVariableList `json:"variables,omitempty"` // The change operations for resources and data sources within this // plan. PlanResourceChanges []PlanResourceChange `json:"resource_changes,omitempty"` // The change operations for outputs within this plan. PlanOutputs planOutputList `json:"output_changes,omitempty"` // The Terraform state prior to the plan operation. This is the // same format as PlannedValues, without the current diff merged. PlanState PlanState `json:"prior_state,omitempty"` PlanStateID sql.NullInt64 `gorm:"index" json:"-"` }
PlanModel represents the entire contents of an output Terraform plan.
type PlanModelVariable ¶
type PlanModelVariable struct { gorm.Model PlanModelID sql.NullInt64 `gorm:"index" json:"-"` Key string `gorm:"index" json:"key"` Value string `json:"value,omitempty"` }
PlanModelVariable is a top-level variable in the Terraform plan.
type PlanOutput ¶
type PlanResourceChange ¶
type PlanResourceChange struct { gorm.Model PlanModelID sql.NullInt64 `gorm:"index" json:"-"` // The absolute resource address. Address string `json:"address,omitempty"` // The module portion of the above address. Omitted if the instance // is in the root module. ModuleAddress string `json:"module_address,omitempty"` // The resource mode. Mode string `json:"mode,omitempty"` // The resource type, example: "aws_instance" for aws_instance.foo. Type string `json:"type,omitempty"` // The resource name, example: "foo" for aws_instance.foo. Name string `json:"name,omitempty"` // The instance key for any resources that have been created using // "count" or "for_each". If neither of these apply the key will be // empty. // // This value can be either an integer (int) or a string. Index rawJSON `json:"index,omitempty"` // The name of the provider this resource belongs to. This allows // the provider to be interpreted unambiguously in the unusual // situation where a provider offers a resource type whose name // does not start with its own name, such as the "googlebeta" // provider offering "google_compute_instance". ProviderName string `json:"provider_name,omitempty"` // An identifier used during replacement operations, and can be // used to identify the exact resource being replaced in state. DeposedKey string `json:"deposed,omitempty"` // The data describing the change that will be made to this object. Change Change `json:"change,omitempty"` ChangeID sql.NullInt64 `gorm:"index" json:"-"` }
PlanResourceChange is a description of an individual change action that Terraform plans to use to move from the prior state to a new state matching the configuration.
type PlanState ¶
type PlanState struct { gorm.Model // The version of the state format. This should always match the // StateFormatVersion constant in this package, or else am // unmarshal will be unstable. FormatVersion string `json:"format_version,omitempty"` // The Terraform version used to make the state. TerraformVersion string `json:"terraform_version,omitempty"` // The values that make up the state. PlanStateValue PlanStateValue `json:"values,omitempty"` PlanStateValueID sql.NullInt64 `gorm:"index" json:"-"` }
PlanState is the top-level representation of a Terraform state.
type PlanStateModule ¶
type PlanStateModule struct { gorm.Model // All resources or data sources within this module. PlanStateResources []PlanStateResource `json:"resources,omitempty"` // The absolute module address, omitted for the root module. Address string `json:"address,omitempty"` // Any child modules within this module. PlanStateModules []PlanStateModule `json:"child_modules,omitempty"` PlanStateModuleID sql.NullInt64 `gorm:"index" json:"-"` }
PlanStateModule is the representation of a module in the common state representation. This can be the root module or a child module.
type PlanStateOutput ¶
type PlanStateOutput struct { gorm.Model PlanStateValueID sql.NullInt64 `gorm:"index" json:"-"` Name string `gorm:"index" json:"name"` Sensitive bool `json:"sensitive"` Value string `json:"value"` }
PlanStateOutput is the representation of a state output in a plan
type PlanStateResource ¶
type PlanStateResource struct { gorm.Model PlanStateModuleID sql.NullInt64 `gorm:"index" json:"-"` // The absolute resource address. Address string `json:"address,omitempty"` // The resource mode. Mode string `json:"mode,omitempty"` // The resource type, example: "aws_instance" for aws_instance.foo. Type string `json:"type,omitempty"` // The resource name, example: "foo" for aws_instance.foo. Name string `json:"name,omitempty"` // The instance key for any resources that have been created using // "count" or "for_each". If neither of these apply the key will be // empty. // // This value can be either an integer (int) or a string. Index rawJSON `json:"index,omitempty"` // The name of the provider this resource belongs to. This allows // the provider to be interpreted unambiguously in the unusual // situation where a provider offers a resource type whose name // does not start with its own name, such as the "googlebeta" // provider offering "google_compute_instance". ProviderName string `json:"provider_name,omitempty"` // The version of the resource type schema the "values" property // conforms to. SchemaVersion uint `json:"schema_version,omitempty"` // The JSON representation of the attribute values of the resource, // whose structure depends on the resource type schema. Any unknown // values are omitted or set to null, making them indistinguishable // from absent values. PlanStateResourceAttributes planStateResourceAttributeList `json:"values,omitempty"` // The addresses of the resources that this resource depends on. DependsOn rawJSON `json:"depends_on,omitempty"` // If true, the resource has been marked as tainted and will be // re-created on the next update. Tainted bool `json:"tainted,omitempty"` // DeposedKey is set if the resource instance has been marked Deposed and // will be destroyed on the next apply. DeposedKey string `json:"deposed_key,omitempty"` }
PlanStateResource is the representation of a resource in the common state representation.
type PlanStateValue ¶
type PlanStateValue struct { gorm.Model // The Outputs for this common state representation. PlanStateOutputs planStateOutputList `json:"outputs,omitempty"` // The root module in this state representation. PlanStateModule PlanStateModule `json:"root_module,omitempty"` PlanStateModuleID sql.NullInt64 `gorm:"index" json:"-"` }
PlanStateValue is the common representation of resolved values for both the prior state (which is always complete) and the planned new state.
type Resource ¶
type Resource struct { ID uint `sql:"AUTO_INCREMENT" gorm:"primary_key" json:"-"` ModuleID sql.NullInt64 `gorm:"index" json:"-"` Type string `gorm:"index" json:"type"` Name string `gorm:"index" json:"name"` Index string `gorm:"index" json:"index"` Attributes []Attribute `json:"attributes"` }
Resource is a Terraform resource in a Module
type ResourceDiff ¶
type ResourceDiff struct { OnlyInOld map[string]string `json:"only_in_old"` OnlyInNew map[string]string `json:"only_in_new"` UnifiedDiff string `json:"unified_diff"` }
ResourceDiff represents a diff between two versions of a Resource
type SearchResult ¶
type SearchResult struct { Path string `gorm:"column:path" json:"path"` VersionID string `json:"version_id"` TFVersion string `gorm:"column:tf_version" json:"tf_version"` Serial int64 `gorm:"column:serial" json:"serial"` LineageValue string `json:"lineage_value"` ModulePath string `gorm:"column:module_path" json:"module_path"` ResourceType string `gorm:"column:type" json:"resource_type"` ResourceName string `gorm:"column:name" json:"resource_name"` ResourceIndex string `gorm:"column:index" json:"resource_index"` AttributeKey string `gorm:"column:key" json:"attribute_key"` AttributeValue string `gorm:"column:value" json:"attribute_value"` }
SearchResult returns a single search result
type State ¶
type State struct { gorm.Model `json:"-"` Path string `gorm:"index" json:"path"` Version Version `json:"version"` VersionID sql.NullInt64 `gorm:"index" json:"-"` TFVersion string `gorm:"varchar(10)" json:"terraform_version"` Serial int64 `json:"serial"` LineageID sql.NullInt64 `gorm:"index" json:"-"` Modules []Module `json:"modules"` }
State is a Terraform State
type StateCompare ¶
type StateCompare struct { Stats struct { From StateInfo `json:"from"` To StateInfo `json:"to"` } `json:"stats"` Differences struct { OnlyInOld map[string]string `json:"only_in_old"` OnlyInNew map[string]string `json:"only_in_new"` InBoth []string `json:"in_both"` ResourceDiff map[string]ResourceDiff `json:"resource_diff"` } `json:"differences"` }
StateCompare represents a diff between two versions of a State
type StateInfo ¶
type StateInfo struct { Path string `json:"path"` VersionID string `json:"version_id"` ResourceCount int `json:"resource_count"` TFVersion string `json:"terraform_version"` Serial int64 `json:"serial"` }
StateInfo stores general information and stats for a State
type StateStat ¶
type StateStat struct { Path string `json:"path"` LineageValue string `json:"lineage_value"` TFVersion string `json:"terraform_version"` Serial int64 `json:"serial"` VersionID string `json:"version_id"` LastModified time.Time `json:"last_modified"` ResourceCount int `json:"resource_count"` }
StateStat stores State stats NOTE: do we want to merge this with StateInfo?