mirror of
https://github.com/hashicorp/terraform.git
synced 2026-03-21 18:10:30 -04:00
28 lines
1.5 KiB
Go
28 lines
1.5 KiB
Go
// Copyright IBM Corp. 2014, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
// Package statekeys contains the definitions for the various different kinds
|
|
// of tracking key we use (or have historically used) for objects in a stack
|
|
// state.
|
|
//
|
|
// Stack state is a mutable data structure whose storage strategy is delegated
|
|
// to whatever is calling into Terraform Core. To allow Terraform Core to
|
|
// emit updates to that data structure piecemeal, rather than having to return
|
|
// the whole dataset over and over, we use tracking keys for each
|
|
// separately-updatable element of the state that are opaque to the caller but
|
|
// meaningful to Terraform Core.
|
|
//
|
|
// Callers are expected to use simple character-for-character string matching
|
|
// to compare these to recognize whether an update is describing an entirely
|
|
// new object or a replacement for ane existing object, and so the main
|
|
// requirement is that the content of these keys remains consistent across
|
|
// Terraform Core releases. However, from Terraform Core's perspective we
|
|
// also use these keys to carry some metadata about what is being tracked
|
|
// so we can avoid redundantly storing the same information in both the key
|
|
// and in the associated stored object.
|
|
//
|
|
// The keys defined in this package are in principle valid for use both as
|
|
// raw state keys and as external description keys, but some of them are used
|
|
// only for one or the other since the raw and external description forms
|
|
// don't necessarily have the same level of detail.
|
|
package statekeys
|