You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: types.go
    path of file: ./repos/rivet/sdks/full/go/auth
    
    the code of the file until where you have to start completion: // This file was auto-generated by Fern from our API Definition.

package auth

import (
	fmt "fmt"
)

// Represents the state of an external account linking process.
type CompleteStatus string

const (
	// The linking process succeeded and will now sw
    
func NewCompleteStatusFromString(s string) (CompleteStatus, error) {
	switch s {
	case "switch_identity":
		return CompleteStatusSwitchIdentity, nil
	case "linked_account_added":
		return CompleteStatusLinkedAccountAdded, nil
	case "already_complete":
		return CompleteStatusAlreadyComplete, nil
	case "expired":
		return CompleteStatusExpired, nil
	case "too_many_attempts":
		return CompleteStatusTooManyAttempts, nil
	case "incorrect":
		return CompleteStatusIncorrect, nil
	}
	var t CompleteStatus
	return "", fmt.Errorf("%s is not a valid %T", s, t)
}