provider.go 929 B

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