mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	Make API not depend on SDK (#18962)
This commit is contained in:
		
							
								
								
									
										63
									
								
								api/plugin_types.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								api/plugin_types.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| 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) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Nick Cabatoff
					Nick Cabatoff