github.com/candidpartners/terraform@v0.9.5-0.20171005231213-29f5f88820f6/builtin/providers/netapp/config.go (about) 1 package netapp 2 3 import ( 4 "fmt" 5 "log" 6 7 "github.com/candidpartners/occm-sdk-go/api/audit" 8 "github.com/candidpartners/occm-sdk-go/api/auth" 9 "github.com/candidpartners/occm-sdk-go/api/client" 10 "github.com/candidpartners/occm-sdk-go/api/tenant" 11 "github.com/candidpartners/occm-sdk-go/api/workenv" 12 "github.com/candidpartners/occm-sdk-go/api/workenv/awsha" 13 "github.com/candidpartners/occm-sdk-go/api/workenv/vsa" 14 ) 15 16 type APIs struct { 17 *auth.AuthAPI 18 *tenant.TenantAPI 19 *workenv.WorkingEnvironmentAPI 20 *vsa.VSAWorkingEnvironmentAPI 21 *awsha.AWSHAWorkingEnvironmentAPI 22 *audit.AuditAPI 23 } 24 25 type Config struct { 26 Host string 27 Email string 28 Password string 29 } 30 31 func (c *Config) APIs() (*APIs, error) { 32 context := &client.Context{ 33 Host: c.Host, 34 } 35 36 authApi, err := auth.New(context) 37 if err != nil { 38 return nil, fmt.Errorf("Error creating auth API: %s", err) 39 } 40 41 tenantApi, err := tenant.New(context) 42 if err != nil { 43 return nil, fmt.Errorf("Error creating tenant API: %s", err) 44 } 45 46 workenvApi, err := workenv.New(context) 47 if err != nil { 48 return nil, fmt.Errorf("Error creating working environment API: %s", err) 49 } 50 51 vsaWorkenvApi, err := vsa.New(context) 52 if err != nil { 53 return nil, fmt.Errorf("Error creating VSA working environment API: %s", err) 54 } 55 56 awsHaWorkenvApi, err := awsha.New(context) 57 if err != nil { 58 return nil, fmt.Errorf("Error creating AWS HA working environment API: %s", err) 59 } 60 61 auditApi, err := audit.New(context) 62 if err != nil { 63 return nil, fmt.Errorf("Error creating audit API: %s", err) 64 } 65 66 apis := &APIs{ 67 AuthAPI: authApi, 68 TenantAPI: tenantApi, 69 WorkingEnvironmentAPI: workenvApi, 70 VSAWorkingEnvironmentAPI: vsaWorkenvApi, 71 AWSHAWorkingEnvironmentAPI: awsHaWorkenvApi, 72 AuditAPI: auditApi, 73 } 74 75 log.Printf("[INFO] NetApp Client configured for user: %s", c.Email) 76 return apis, nil 77 }