-
Notifications
You must be signed in to change notification settings - Fork 37
/
client.go
91 lines (78 loc) · 3.35 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package v2021_10_01
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See NOTICE.txt in the project root for license information.
import (
"fmt"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/alerts"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/dimensions"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/exports"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/forecast"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/query"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/reservedinstances"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/usagedetails"
"github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/views"
"github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager"
sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments"
)
type Client struct {
Alerts *alerts.AlertsClient
Dimensions *dimensions.DimensionsClient
Exports *exports.ExportsClient
Forecast *forecast.ForecastClient
Query *query.QueryClient
ReservedInstances *reservedinstances.ReservedInstancesClient
UsageDetails *usagedetails.UsageDetailsClient
Views *views.ViewsClient
}
func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanager.Client)) (*Client, error) {
alertsClient, err := alerts.NewAlertsClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building Alerts client: %+v", err)
}
configureFunc(alertsClient.Client)
dimensionsClient, err := dimensions.NewDimensionsClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building Dimensions client: %+v", err)
}
configureFunc(dimensionsClient.Client)
exportsClient, err := exports.NewExportsClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building Exports client: %+v", err)
}
configureFunc(exportsClient.Client)
forecastClient, err := forecast.NewForecastClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building Forecast client: %+v", err)
}
configureFunc(forecastClient.Client)
queryClient, err := query.NewQueryClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building Query client: %+v", err)
}
configureFunc(queryClient.Client)
reservedInstancesClient, err := reservedinstances.NewReservedInstancesClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building ReservedInstances client: %+v", err)
}
configureFunc(reservedInstancesClient.Client)
usageDetailsClient, err := usagedetails.NewUsageDetailsClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building UsageDetails client: %+v", err)
}
configureFunc(usageDetailsClient.Client)
viewsClient, err := views.NewViewsClientWithBaseURI(sdkApi)
if err != nil {
return nil, fmt.Errorf("building Views client: %+v", err)
}
configureFunc(viewsClient.Client)
return &Client{
Alerts: alertsClient,
Dimensions: dimensionsClient,
Exports: exportsClient,
Forecast: forecastClient,
Query: queryClient,
ReservedInstances: reservedInstancesClient,
UsageDetails: usageDetailsClient,
Views: viewsClient,
}, nil
}