Versions in this module Expand all Collapse all v1 v1.0.1 Apr 27, 2026 v1.0.0 Apr 27, 2026 Changes in this version + const DEFAULT_PATH_TO_LOCAL_STATE_FILE + const DEFAULT_PATH_TO_REMOTE_STATE_FILE + const DefaultS3BucketAccessLoggingTargetPrefix + const MAX_RETRIES_WAITING_FOR_GCS_BUCKET + const MAX_RETRIES_WAITING_FOR_S3_BUCKET + const SLEEP_BETWEEN_RETRIES_WAITING_FOR_GCS_BUCKET + const SLEEP_BETWEEN_RETRIES_WAITING_FOR_S3_BUCKET + const SidEnforcedTLSPolicy + const SidRootPolicy + var ErrGenerateCalledWithNoGenerateAttr = fmt.Errorf("generate code routine called when no generate attribute is configured") + var ErrRemoteBackendMissing = fmt.Errorf("the remote_state.backend field cannot be empty") + func AddLabelsToGCSBucket(gcsClient *storage.Client, config *ExtendedRemoteStateConfigGCS, ...) error + func CreateGCSBucket(gcsClient *storage.Client, config *ExtendedRemoteStateConfigGCS, ...) error + func CreateGCSBucketWithVersioning(gcsClient *storage.Client, config *ExtendedRemoteStateConfigGCS, ...) error + func CreateGCSClient(gcsConfigRemote RemoteStateConfigGCS) (*storage.Client, error) + func CreateLogsS3BucketIfNecessary(s3Client *s3.S3, logsBucketName *string, ...) error + func CreateS3Bucket(s3Client *s3.S3, bucket *string, terragruntOptions *options.TerragruntOptions) error + func CreateS3BucketWithVersioningSSEncryptionAndAccessLogging(s3Client *s3.S3, config *ExtendedRemoteStateConfigS3, ...) error + func CreateS3Client(config *awsauth.AwsSessionConfig, terragruntOptions *options.TerragruntOptions) (*s3.S3, error) + func DoesGCSBucketExist(gcsClient *storage.Client, config *RemoteStateConfigGCS) bool + func DoesS3BucketExist(s3Client *s3.S3, bucket *string) bool + func EnableAccessLoggingForS3BucketWide(s3Client *s3.S3, config *RemoteStateConfigS3, ...) error + func EnableEnforcedTLSAccesstoS3Bucket(s3Client *s3.S3, bucket string, config *ExtendedRemoteStateConfigS3, ...) error + func EnablePublicAccessBlockingForS3Bucket(s3Client *s3.S3, bucketName string, ...) error + func EnableRootAccesstoS3Bucket(s3Client *s3.S3, config *ExtendedRemoteStateConfigS3, ...) error + func EnableSSEForS3BucketWide(s3Client *s3.S3, bucketName string, algorithm string, ...) error + func EnableVersioningForS3Bucket(s3Client *s3.S3, config *RemoteStateConfigS3, ...) error + func TagS3Bucket(s3Client *s3.S3, config *ExtendedRemoteStateConfigS3, ...) error + func TagS3BucketAccessLogging(s3Client *s3.S3, config *ExtendedRemoteStateConfigS3, ...) error + func UpdateLockTableSetSSEncryptionOnIfNecessary(s3Config *RemoteStateConfigS3, config *ExtendedRemoteStateConfigS3, ...) error + func WaitUntilGCSBucketExists(gcsClient *storage.Client, config *RemoteStateConfigGCS, ...) error + func WaitUntilS3BucketExists(s3Client *s3.S3, config *RemoteStateConfigS3, ...) error + type BucketCreationNotAllowed string + func (bucketName BucketCreationNotAllowed) Error() string + type CantParseTerraformStateFile struct + Path string + UnderlyingErr error + func (err CantParseTerraformStateFile) Error() string + type ExtendedRemoteStateConfigGCS struct + EnableBucketPolicyOnly bool + GCSBucketLabels map[string]string + Location string + Project string + SkipBucketCreation bool + SkipBucketVersioning bool + type ExtendedRemoteStateConfigS3 struct + AccessLoggingBucketName string + AccessLoggingBucketTags map[string]string + AccessLoggingTargetPrefix string + BucketSSEAlgorithm string + BucketSSEKMSKeyID string + DisableAWSClientChecksums bool + DisableBucketUpdate bool + DynamotableTags map[string]string + EnableLockTableSSEncryption bool + S3BucketTags map[string]string + SkipBucketAccessLogging bool + SkipBucketEnforcedTLS bool + SkipBucketPublicAccessBlocking bool + SkipBucketRootAccess bool + SkipBucketSSEncryption bool + SkipBucketVersioning bool + func ParseExtendedS3Config(config map[string]interface{}) (*ExtendedRemoteStateConfigS3, error) + func (c *ExtendedRemoteStateConfigS3) GetAwsSessionConfig() *awsauth.AwsSessionConfig + type GCSInitializer struct + func (gcsInitializer GCSInitializer) GetTerraformInitArgs(config map[string]interface{}) map[string]interface{} + func (gcsInitializer GCSInitializer) Initialize(remoteState *RemoteState, terragruntOptions *options.TerragruntOptions) error + func (gcsInitializer GCSInitializer) NeedsInitialization(remoteState *RemoteState, existingBackend *TerraformBackend, ...) (bool, error) + type InvalidAccessLoggingBucketEncryption struct + BucketSSEAlgorithm string + func (err InvalidAccessLoggingBucketEncryption) Error() string + type MaxRetriesWaitingForS3ACLExceeded string + func (err MaxRetriesWaitingForS3ACLExceeded) Error() string + type MaxRetriesWaitingForS3BucketExceeded string + func (err MaxRetriesWaitingForS3BucketExceeded) Error() string + type MissingRequiredGCSRemoteStateConfig string + func (configName MissingRequiredGCSRemoteStateConfig) Error() string + type MissingRequiredS3RemoteStateConfig string + func (configName MissingRequiredS3RemoteStateConfig) Error() string + type MultipleTagsDeclarations string + func (target MultipleTagsDeclarations) Error() string + type RemoteState struct + Backend string + Config map[string]interface{} + DisableDependencyOptimization bool + DisableInit bool + Generate *RemoteStateGenerate + func (remoteState *RemoteState) FillDefaults() + func (remoteState *RemoteState) GenerateTerraformCode(terragruntOptions *options.TerragruntOptions) error + func (remoteState *RemoteState) Initialize(terragruntOptions *options.TerragruntOptions) error + func (remoteState *RemoteState) NeedsInit(terragruntOptions *options.TerragruntOptions) (bool, error) + func (remoteState *RemoteState) String() string + func (remoteState *RemoteState) Validate() error + func (remoteState RemoteState) ToTerraformInitArgs() []string + type RemoteStateConfigGCS struct + AccessToken string + Bucket string + Credentials string + EncryptionKey string + ImpersonateServiceAccount string + ImpersonateServiceAccountDelegates []string + Path string + Prefix string + type RemoteStateConfigS3 struct + Bucket string + CredsFilename string + DynamoDBEndpoint string + DynamoDBTable string + Encrypt bool + Endpoint string + ExternalID string + Key string + LockTable string + Profile string + Region string + RoleArn string + S3ForcePathStyle bool + SessionName string + func (s3Config *RemoteStateConfigS3) GetLockTableName() string + type RemoteStateGenerate struct + IfExists string + Path string + type RemoteStateInitializer interface + GetTerraformInitArgs func(config map[string]interface{}) map[string]interface{} + Initialize func(remoteState *RemoteState, terragruntOptions *options.TerragruntOptions) error + NeedsInitialization func(remoteState *RemoteState, existingBackend *TerraformBackend, ...) (bool, error) + type S3BucketUpdatesRequired struct + AccessLogging bool + EnforcedTLS bool + PublicAccess bool + RootAccess bool + SSEEncryption bool + Versioning bool + type S3Initializer struct + func (s3Initializer S3Initializer) GetTerraformInitArgs(config map[string]interface{}) map[string]interface{} + func (s3Initializer S3Initializer) Initialize(remoteState *RemoteState, terragruntOptions *options.TerragruntOptions) error + func (s3Initializer S3Initializer) NeedsInitialization(remoteState *RemoteState, existingBackend *TerraformBackend, ...) (bool, error) + type TerraformBackend struct + Config map[string]interface{} + Type string + type TerraformState struct + Backend *TerraformBackend + Modules []TerraformStateModule + Serial int + Version int + func ParseTerraformStateFile(path string) (*TerraformState, error) + func ParseTerraformStateFileFromLocation(backend string, config map[string]interface{}, workingDir, dataDir string) (*TerraformState, error) + func (state *TerraformState) IsRemote() bool + type TerraformStateModule struct + Outputs map[string]interface{} + Path []string + Resources map[string]interface{}