1 package authoring
2
3
4
5
6
7
8
9 import (
10 "context"
11 "github.com/Azure/go-autorest/autorest"
12 "github.com/Azure/go-autorest/autorest/azure"
13 "github.com/Azure/go-autorest/tracing"
14 "github.com/gofrs/uuid"
15 "net/http"
16 )
17
18
19 type TrainClient struct {
20 BaseClient
21 }
22
23
24 func NewTrainClient(endpoint string) TrainClient {
25 return TrainClient{New(endpoint)}
26 }
27
28
29
30
31
32
33
34 func (client TrainClient) GetStatus(ctx context.Context, appID uuid.UUID, versionID string) (result ListModelTrainingInfo, err error) {
35 if tracing.IsEnabled() {
36 ctx = tracing.StartSpan(ctx, fqdn+"/TrainClient.GetStatus")
37 defer func() {
38 sc := -1
39 if result.Response.Response != nil {
40 sc = result.Response.Response.StatusCode
41 }
42 tracing.EndSpan(ctx, sc, err)
43 }()
44 }
45 req, err := client.GetStatusPreparer(ctx, appID, versionID)
46 if err != nil {
47 err = autorest.NewErrorWithError(err, "authoring.TrainClient", "GetStatus", nil, "Failure preparing request")
48 return
49 }
50
51 resp, err := client.GetStatusSender(req)
52 if err != nil {
53 result.Response = autorest.Response{Response: resp}
54 err = autorest.NewErrorWithError(err, "authoring.TrainClient", "GetStatus", resp, "Failure sending request")
55 return
56 }
57
58 result, err = client.GetStatusResponder(resp)
59 if err != nil {
60 err = autorest.NewErrorWithError(err, "authoring.TrainClient", "GetStatus", resp, "Failure responding to request")
61 return
62 }
63
64 return
65 }
66
67
68 func (client TrainClient) GetStatusPreparer(ctx context.Context, appID uuid.UUID, versionID string) (*http.Request, error) {
69 urlParameters := map[string]interface{}{
70 "Endpoint": client.Endpoint,
71 }
72
73 pathParameters := map[string]interface{}{
74 "appId": autorest.Encode("path", appID),
75 "versionId": autorest.Encode("path", versionID),
76 }
77
78 preparer := autorest.CreatePreparer(
79 autorest.AsGet(),
80 autorest.WithCustomBaseURL("{Endpoint}/luis/authoring/v3.0-preview", urlParameters),
81 autorest.WithPathParameters("/apps/{appId}/versions/{versionId}/train", pathParameters))
82 return preparer.Prepare((&http.Request{}).WithContext(ctx))
83 }
84
85
86
87 func (client TrainClient) GetStatusSender(req *http.Request) (*http.Response, error) {
88 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
89 }
90
91
92
93 func (client TrainClient) GetStatusResponder(resp *http.Response) (result ListModelTrainingInfo, err error) {
94 err = autorest.Respond(
95 resp,
96 azure.WithErrorUnlessStatusCode(http.StatusOK),
97 autorest.ByUnmarshallingJSON(&result.Value),
98 autorest.ByClosing())
99 result.Response = autorest.Response{Response: resp}
100 return
101 }
102
103
104
105
106
107
108
109
110
111 func (client TrainClient) TrainVersion(ctx context.Context, appID uuid.UUID, versionID string) (result EnqueueTrainingResponse, err error) {
112 if tracing.IsEnabled() {
113 ctx = tracing.StartSpan(ctx, fqdn+"/TrainClient.TrainVersion")
114 defer func() {
115 sc := -1
116 if result.Response.Response != nil {
117 sc = result.Response.Response.StatusCode
118 }
119 tracing.EndSpan(ctx, sc, err)
120 }()
121 }
122 req, err := client.TrainVersionPreparer(ctx, appID, versionID)
123 if err != nil {
124 err = autorest.NewErrorWithError(err, "authoring.TrainClient", "TrainVersion", nil, "Failure preparing request")
125 return
126 }
127
128 resp, err := client.TrainVersionSender(req)
129 if err != nil {
130 result.Response = autorest.Response{Response: resp}
131 err = autorest.NewErrorWithError(err, "authoring.TrainClient", "TrainVersion", resp, "Failure sending request")
132 return
133 }
134
135 result, err = client.TrainVersionResponder(resp)
136 if err != nil {
137 err = autorest.NewErrorWithError(err, "authoring.TrainClient", "TrainVersion", resp, "Failure responding to request")
138 return
139 }
140
141 return
142 }
143
144
145 func (client TrainClient) TrainVersionPreparer(ctx context.Context, appID uuid.UUID, versionID string) (*http.Request, error) {
146 urlParameters := map[string]interface{}{
147 "Endpoint": client.Endpoint,
148 }
149
150 pathParameters := map[string]interface{}{
151 "appId": autorest.Encode("path", appID),
152 "versionId": autorest.Encode("path", versionID),
153 }
154
155 preparer := autorest.CreatePreparer(
156 autorest.AsPost(),
157 autorest.WithCustomBaseURL("{Endpoint}/luis/authoring/v3.0-preview", urlParameters),
158 autorest.WithPathParameters("/apps/{appId}/versions/{versionId}/train", pathParameters))
159 return preparer.Prepare((&http.Request{}).WithContext(ctx))
160 }
161
162
163
164 func (client TrainClient) TrainVersionSender(req *http.Request) (*http.Response, error) {
165 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
166 }
167
168
169
170 func (client TrainClient) TrainVersionResponder(resp *http.Response) (result EnqueueTrainingResponse, err error) {
171 err = autorest.Respond(
172 resp,
173 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
174 autorest.ByUnmarshallingJSON(&result),
175 autorest.ByClosing())
176 result.Response = autorest.Response{Response: resp}
177 return
178 }
179
View as plain text