2023-04-06 10:54:58 +00:00
|
|
|
package terraform
|
|
|
|
|
2024-07-24 13:02:19 +00:00
|
|
|
import "strings"
|
|
|
|
|
2023-04-06 10:54:58 +00:00
|
|
|
type Plan struct {
|
|
|
|
// Path to the plan
|
|
|
|
Path string
|
|
|
|
|
|
|
|
// If true, the plan is empty and applying it will not do anything
|
|
|
|
IsEmpty bool
|
|
|
|
}
|
2024-07-24 13:02:19 +00:00
|
|
|
|
|
|
|
type Action struct {
|
|
|
|
// Type and name of the resource
|
|
|
|
ResourceType string `json:"resource_type"`
|
|
|
|
ResourceName string `json:"resource_name"`
|
|
|
|
|
|
|
|
Action ActionType `json:"action"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a Action) String() string {
|
|
|
|
// terraform resources have the databricks_ prefix, which is not needed.
|
|
|
|
rtype := strings.TrimPrefix(a.ResourceType, "databricks_")
|
|
|
|
return strings.Join([]string{" ", string(a.Action), rtype, a.ResourceName}, " ")
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c Action) IsInplaceSupported() bool {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
// These enum values correspond to action types defined in the tfjson library.
|
|
|
|
// "recreate" maps to the tfjson.Actions.Replace() function.
|
|
|
|
// "update" maps to tfjson.Actions.Update() and so on. source:
|
|
|
|
// https://github.com/hashicorp/terraform-json/blob/0104004301ca8e7046d089cdc2e2db2179d225be/action.go#L14
|
|
|
|
type ActionType string
|
|
|
|
|
|
|
|
const (
|
|
|
|
ActionTypeCreate ActionType = "create"
|
|
|
|
ActionTypeDelete ActionType = "delete"
|
|
|
|
ActionTypeUpdate ActionType = "update"
|
|
|
|
ActionTypeNoOp ActionType = "no-op"
|
|
|
|
ActionTypeRead ActionType = "read"
|
|
|
|
ActionTypeRecreate ActionType = "recreate"
|
|
|
|
)
|