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 resource.ID) error
- func (c *Client) Download(ctx context.Context, svID resource.ID) ([]byte, error)
- func (c *Client) DownloadCurrent(ctx context.Context, workspaceID resource.ID) ([]byte, error)
- func (c *Client) GetCurrent(ctx context.Context, workspaceID resource.ID) (*Version, error)
- func (c *Client) List(ctx context.Context, workspaceID resource.ID, opts resource.PageOptions) (*resource.Page[*Version], error)
- func (c *Client) Rollback(ctx context.Context, svID resource.ID) (*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) Create(ctx context.Context, opts CreateStateVersionOptions) (*Version, error)
- func (a *Service) Delete(ctx context.Context, versionID resource.ID) error
- func (a *Service) Download(ctx context.Context, svID resource.ID) ([]byte, error)
- func (a *Service) DownloadCurrent(ctx context.Context, workspaceID resource.ID) ([]byte, error)
- func (a *Service) Get(ctx context.Context, versionID resource.ID) (*Version, error)
- func (a *Service) GetCurrent(ctx context.Context, workspaceID resource.ID) (*Version, error)
- func (a *Service) GetOutput(ctx context.Context, outputID resource.ID) (*Output, error)
- func (a *Service) List(ctx context.Context, workspaceID resource.ID, opts resource.PageOptions) (*resource.Page[*Version], error)
- func (a *Service) Rollback(ctx context.Context, versionID resource.ID) (*Version, error)
- func (a *Service) Upload(ctx context.Context, svID resource.ID, 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 ¶ added in v0.2.2
func (*Client) GetCurrent ¶ added in v0.2.2
type CreateStateVersionOptions ¶
type CreateStateVersionOptions struct { State []byte // Terraform state file. Optional. WorkspaceID resource.ID // 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 ¶ added in v0.1.3
func (r FileOutput) StringValue() string
func (FileOutput) Type ¶ added in v0.1.3
func (r FileOutput) Type() (string, error)
Type determines the HCL type of the output value
type Resource ¶ added in v0.1.3
func (Resource) ModuleName ¶ added in v0.1.3
type Service ¶
type Service struct { logr.Logger *authz.Authorizer // contains filtered or unexported fields }
Service provides access to state and state versions
func NewService ¶
func (*Service) AddHandlers ¶ added in v0.2.2
func (*Service) DownloadCurrent ¶ added in v0.2.2
func (*Service) GetCurrent ¶ added in v0.2.2
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 resource.ID `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 resource.ID `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.