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  }