github.com/defang-io/defang/src@v0.0.0-20240505002154-bdf411911834/pkg/cli/client/provider.go (about) 1 package client 2 3 import ( 4 "fmt" 5 "strings" 6 ) 7 8 type Provider string 9 10 const ( 11 ProviderAuto Provider = "auto" 12 ProviderDefang Provider = "defang" 13 ProviderAWS Provider = "aws" 14 // ProviderAzure Provider = "azure" 15 // ProviderGCP Provider = "gcp" 16 ) 17 18 var allProviders = []Provider{ 19 ProviderAuto, 20 ProviderDefang, 21 ProviderAWS, 22 // ProviderAzure, 23 // ProviderGCP, 24 } 25 26 func (p Provider) String() string { 27 return string(p) 28 } 29 30 func (p *Provider) Set(str string) error { 31 str = strings.ToLower(str) 32 for _, provider := range allProviders { 33 if provider.String() == str { 34 *p = provider 35 return nil 36 } 37 } 38 39 return fmt.Errorf("available providers are: %v", allProviders) 40 } 41 42 func (p Provider) Type() string { 43 return "provider" 44 }