mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-04 04:28:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) HashiCorp, Inc.
 | 
						|
// SPDX-License-Identifier: MPL-2.0
 | 
						|
 | 
						|
package api
 | 
						|
 | 
						|
// NOTE: this file was copied from
 | 
						|
// https://github.com/hashicorp/vault/blob/main/sdk/helper/consts/plugin_types.go
 | 
						|
// Any changes made should be made to both files at the same time.
 | 
						|
 | 
						|
import "fmt"
 | 
						|
 | 
						|
var PluginTypes = []PluginType{
 | 
						|
	PluginTypeUnknown,
 | 
						|
	PluginTypeCredential,
 | 
						|
	PluginTypeDatabase,
 | 
						|
	PluginTypeSecrets,
 | 
						|
}
 | 
						|
 | 
						|
type PluginType uint32
 | 
						|
 | 
						|
// This is a list of PluginTypes used by Vault.
 | 
						|
// If we need to add any in the future, it would
 | 
						|
// be best to add them to the _end_ of the list below
 | 
						|
// because they resolve to incrementing numbers,
 | 
						|
// which may be saved in state somewhere. Thus if
 | 
						|
// the name for one of those numbers changed because
 | 
						|
// a value were added to the middle, that could cause
 | 
						|
// the wrong plugin types to be read from storage
 | 
						|
// for a given underlying number. Example of the problem
 | 
						|
// here: https://play.golang.org/p/YAaPw5ww3er
 | 
						|
const (
 | 
						|
	PluginTypeUnknown PluginType = iota
 | 
						|
	PluginTypeCredential
 | 
						|
	PluginTypeDatabase
 | 
						|
	PluginTypeSecrets
 | 
						|
)
 | 
						|
 | 
						|
func (p PluginType) String() string {
 | 
						|
	switch p {
 | 
						|
	case PluginTypeUnknown:
 | 
						|
		return "unknown"
 | 
						|
	case PluginTypeCredential:
 | 
						|
		return "auth"
 | 
						|
	case PluginTypeDatabase:
 | 
						|
		return "database"
 | 
						|
	case PluginTypeSecrets:
 | 
						|
		return "secret"
 | 
						|
	default:
 | 
						|
		return "unsupported"
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func ParsePluginType(pluginType string) (PluginType, error) {
 | 
						|
	switch pluginType {
 | 
						|
	case "unknown":
 | 
						|
		return PluginTypeUnknown, nil
 | 
						|
	case "auth":
 | 
						|
		return PluginTypeCredential, nil
 | 
						|
	case "database":
 | 
						|
		return PluginTypeDatabase, nil
 | 
						|
	case "secret":
 | 
						|
		return PluginTypeSecrets, nil
 | 
						|
	default:
 | 
						|
		return PluginTypeUnknown, fmt.Errorf("%q is not a supported plugin type", pluginType)
 | 
						|
	}
 | 
						|
}
 |