Documentation
¶
Overview ¶
Package state manages terraform state.
Index ¶
- Variables
- func NewCommand(client *otfapi.Client) *cobra.Command
- type CLI
- type Client
- func (c *Client) Create(ctx context.Context, opts CreateStateVersionOptions) (*Version, error)
- func (c *Client) Delete(ctx context.Context, svID string) error
- func (c *Client) Download(ctx context.Context, svID string) ([]byte, error)
- func (c *Client) DownloadCurrent(ctx context.Context, workspaceID string) ([]byte, error)
- func (c *Client) GetCurrent(ctx context.Context, workspaceID string) (*Version, error)
- func (c *Client) List(ctx context.Context, workspaceID string, opts resource.PageOptions) (*resource.Page[*Version], error)
- func (c *Client) Rollback(ctx context.Context, svID string) (*Version, error)
- type CreateStateVersionOptions
- type File
- type FileOutput
- type Options
- type Output
- type Resource
- type Service
- func (a *Service) AddHandlers(r *mux.Router)
- func (a *Service) CanAccess(ctx context.Context, action rbac.Action, svID string) (internal.Subject, error)
- func (a *Service) Create(ctx context.Context, opts CreateStateVersionOptions) (*Version, error)
- func (a *Service) Delete(ctx context.Context, versionID string) error
- func (a *Service) Download(ctx context.Context, svID string) ([]byte, error)
- func (a *Service) DownloadCurrent(ctx context.Context, workspaceID string) ([]byte, error)
- func (a *Service) Get(ctx context.Context, versionID string) (*Version, error)
- func (a *Service) GetCurrent(ctx context.Context, workspaceID string) (*Version, error)
- func (a *Service) GetOutput(ctx context.Context, outputID string) (*Output, error)
- func (a *Service) List(ctx context.Context, workspaceID string, opts resource.PageOptions) (*resource.Page[*Version], error)
- func (a *Service) Rollback(ctx context.Context, versionID string) (*Version, error)
- func (a *Service) Upload(ctx context.Context, svID string, state []byte) error
- type StateVersionListOptions
- type Status
- type Version
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrSerialNotGreaterThanCurrent = errors.New("the serial provided in the state file is not greater than the serial currently known remotely") ErrSerialMD5Mismatch = errors.New("the MD5 hash of the state provided does not match what is currently known for the same serial number") ErrUploadNonPending = errors.New("cannot upload state to a state version with a non-pending status") )
View Source
var ErrCurrentVersionDeletionAttempt = errors.New("deleting the current state version is not allowed")
Functions ¶
Types ¶
type Client ¶
func (*Client) DownloadCurrent ¶
func (*Client) GetCurrent ¶
type CreateStateVersionOptions ¶
type CreateStateVersionOptions struct {
State []byte // Terraform state file. Optional.
WorkspaceID *string // ID of state version's workspace. Required.
Serial *int64 // State serial number. Required.
}
CreateStateVersionOptions are options for creating a state version.
type File ¶
type File struct {
Version int
TerraformVersion string `json:"terraform_version"`
Serial int64
Lineage string
Outputs map[string]FileOutput
Resources []Resource
}
File is the terraform state file contents
type FileOutput ¶
type FileOutput struct {
Value json.RawMessage
Sensitive bool
}
FileOutput is an output in the terraform state file
func (FileOutput) StringValue ¶
func (r FileOutput) StringValue() string
func (FileOutput) Type ¶
func (r FileOutput) Type() (string, error)
Type determines the HCL type of the output value
type Resource ¶
func (Resource) ModuleName ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service provides access to state and state versions
func NewService ¶
func (*Service) AddHandlers ¶
func (*Service) DownloadCurrent ¶
func (*Service) GetCurrent ¶
type StateVersionListOptions ¶
type StateVersionListOptions struct {
resource.PageOptions
Organization string `schema:"filter[organization][name],required"`
Workspace string `schema:"filter[workspace][name],required"`
}
StateVersionListOptions represents the options for listing state versions.
type Version ¶
type Version struct {
ID string `jsonapi:"primary,state-versions"`
CreatedAt time.Time `jsonapi:"attribute" json:"created-at"`
Serial int64 `jsonapi:"attribute" json:"serial"`
State []byte `jsonapi:"attribute" json:"state"`
Status Status `jsonapi:"attribute" json:"status"`
Outputs map[string]*Output `jsonapi:"attribute" json:"outputs"`
WorkspaceID string `jsonapi:"attribute" json:"workspace-id"`
}
Version is a specific version of terraform state. It includes important metadata as well as the state file itself.
https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
Click to show internal directories.
Click to hide internal directories.