Skip to content

Commit cf7ebfa

Browse files
authored
add api version (Azure#23871)
1 parent b113e5f commit cf7ebfa

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed

sdk/monitor/query/azmetrics/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Release History
22

3-
## 1.1.1 (Unreleased)
3+
## 1.2.0 (Unreleased)
44

55
### Features Added
6+
* Added API Version support. Users can now change the default API Version by setting ClientOptions.APIVersion
67

78
### Breaking Changes
89

sdk/monitor/query/azmetrics/client_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ package azmetrics_test
88

99
import (
1010
"context"
11+
"net/http"
1112
"testing"
1213

1314
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
1415
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
16+
"github.com/Azure/azure-sdk-for-go/sdk/internal/mock"
17+
azcred "github.com/Azure/azure-sdk-for-go/sdk/internal/test/credential"
1518
"github.com/Azure/azure-sdk-for-go/sdk/monitor/query/azmetrics"
1619
"github.com/stretchr/testify/require"
1720
)
@@ -68,3 +71,31 @@ func TestQueryResources_Fail(t *testing.T) {
6871

6972
testSerde(t, &res)
7073
}
74+
75+
func TestAPIVersion(t *testing.T) {
76+
apiVersion := "2023-10-01"
77+
var requireVersion = func(t *testing.T) func(req *http.Request) bool {
78+
return func(r *http.Request) bool {
79+
version := r.URL.Query().Get("api-version")
80+
require.Equal(t, version, apiVersion)
81+
return true
82+
}
83+
}
84+
srv, close := mock.NewServer(mock.WithTransformAllRequestsToTestServerUrl())
85+
defer close()
86+
srv.AppendResponse(
87+
mock.WithStatusCode(200),
88+
mock.WithPredicate(requireVersion(t)),
89+
)
90+
srv.AppendResponse(mock.WithStatusCode(http.StatusInternalServerError))
91+
opts := &azmetrics.ClientOptions{
92+
ClientOptions: azcore.ClientOptions{
93+
Transport: srv,
94+
APIVersion: apiVersion,
95+
},
96+
}
97+
client, err := azmetrics.NewClient(endpoint, &azcred.Fake{}, opts)
98+
require.NoError(t, err)
99+
_, err = client.QueryResources(context.Background(), subscriptionID, "testing", []string{"test"}, azmetrics.ResourceIDList{}, nil)
100+
require.NoError(t, err)
101+
}

sdk/monitor/query/azmetrics/custom_client.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ func NewClient(endpoint string, credential azcore.TokenCredential, options *Clie
4242
}
4343

4444
authPolicy := runtime.NewBearerTokenPolicy(credential, []string{c.Audience + "/.default"}, nil)
45-
azcoreClient, err := azcore.NewClient(moduleName, version, runtime.PipelineOptions{PerRetry: []policy.Policy{authPolicy}}, &options.ClientOptions)
45+
azcoreClient, err := azcore.NewClient(moduleName, version, runtime.PipelineOptions{
46+
APIVersion: runtime.APIVersionOptions{
47+
Location: runtime.APIVersionLocationQueryParam,
48+
Name: "api-version",
49+
},
50+
PerRetry: []policy.Policy{authPolicy},
51+
}, &options.ClientOptions)
4652
if err != nil {
4753
return nil, err
4854
}

sdk/monitor/query/azmetrics/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ package azmetrics
88

99
const (
1010
moduleName = "github.com/Azure/azure-sdk-for-go/sdk/monitor/query/azmetrics"
11-
version = "v1.1.1"
11+
version = "v1.2.0"
1212
)

0 commit comments

Comments
 (0)