provider.go 958 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package shared
  2. import "strings"
  3. // @bingen:generate:Provider
  4. type Provider string
  5. const (
  6. ProviderEmpty Provider = ""
  7. ProviderAWS Provider = "AWS"
  8. ProviderGCP Provider = "GCP"
  9. ProviderAzure Provider = "Azure"
  10. ProviderAlibaba Provider = "Alibaba"
  11. ProviderDigitalOcean Provider = "DigitalOcean"
  12. ProviderOracle Provider = "Oracle"
  13. )
  14. // ParseProvider converts a string to a Provider type, performing case-insensitive matching.
  15. // Returns ProviderEmpty if the provider string is not recognized.
  16. func ParseProvider(provider string) Provider {
  17. switch strings.ToLower(provider) {
  18. case "aws", "amazon":
  19. return ProviderAWS
  20. case "gcp", "gce", "google":
  21. return ProviderGCP
  22. case "azure", "microsoft":
  23. return ProviderAzure
  24. case "alibaba":
  25. return ProviderAlibaba
  26. case "digitalocean", "do":
  27. return ProviderDigitalOcean
  28. case "oracle", "oci":
  29. return ProviderOracle
  30. default:
  31. return ProviderEmpty
  32. }
  33. }