1package documentdb
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"context"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/azure"
24	"github.com/Azure/go-autorest/autorest/validation"
25	"github.com/Azure/go-autorest/tracing"
26	"net/http"
27)
28
29// SQLResourcesClient is the azure Cosmos DB Database Service Resource Provider REST API
30type SQLResourcesClient struct {
31	BaseClient
32}
33
34// NewSQLResourcesClient creates an instance of the SQLResourcesClient client.
35func NewSQLResourcesClient(subscriptionID string, subscriptionID1 string) SQLResourcesClient {
36	return NewSQLResourcesClientWithBaseURI(DefaultBaseURI, subscriptionID, subscriptionID1)
37}
38
39// NewSQLResourcesClientWithBaseURI creates an instance of the SQLResourcesClient client using a custom endpoint.  Use
40// this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
41func NewSQLResourcesClientWithBaseURI(baseURI string, subscriptionID string, subscriptionID1 string) SQLResourcesClient {
42	return SQLResourcesClient{NewWithBaseURI(baseURI, subscriptionID, subscriptionID1)}
43}
44
45// CreateUpdateSQLContainer create or update an Azure Cosmos DB SQL container
46// Parameters:
47// resourceGroupName - name of an Azure resource group.
48// accountName - cosmos DB database account name.
49// databaseName - cosmos DB database name.
50// containerName - cosmos DB container name.
51// createUpdateSQLContainerParameters - the parameters to provide for the current SQL container.
52func (client SQLResourcesClient) CreateUpdateSQLContainer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, createUpdateSQLContainerParameters SQLContainerCreateUpdateParameters) (result SQLResourcesCreateUpdateSQLContainerFuture, err error) {
53	if tracing.IsEnabled() {
54		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.CreateUpdateSQLContainer")
55		defer func() {
56			sc := -1
57			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
58				sc = result.FutureAPI.Response().StatusCode
59			}
60			tracing.EndSpan(ctx, sc, err)
61		}()
62	}
63	if err := validation.Validate([]validation.Validation{
64		{TargetValue: resourceGroupName,
65			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
66				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
67				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
68		{TargetValue: accountName,
69			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
70				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
71				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
72		{TargetValue: createUpdateSQLContainerParameters,
73			Constraints: []validation.Constraint{{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties", Name: validation.Null, Rule: true,
74				Chain: []validation.Constraint{{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Resource", Name: validation.Null, Rule: true,
75					Chain: []validation.Constraint{{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Resource.ID", Name: validation.Null, Rule: true, Chain: nil},
76						{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Resource.PartitionKey", Name: validation.Null, Rule: false,
77							Chain: []validation.Constraint{{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Resource.PartitionKey.Version", Name: validation.Null, Rule: false,
78								Chain: []validation.Constraint{{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Resource.PartitionKey.Version", Name: validation.InclusiveMaximum, Rule: int64(2), Chain: nil},
79									{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Resource.PartitionKey.Version", Name: validation.InclusiveMinimum, Rule: int64(1), Chain: nil},
80								}},
81							}},
82					}},
83					{Target: "createUpdateSQLContainerParameters.SQLContainerCreateUpdateProperties.Options", Name: validation.Null, Rule: true, Chain: nil},
84				}}}}}); err != nil {
85		return result, validation.NewError("documentdb.SQLResourcesClient", "CreateUpdateSQLContainer", err.Error())
86	}
87
88	req, err := client.CreateUpdateSQLContainerPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, createUpdateSQLContainerParameters)
89	if err != nil {
90		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLContainer", nil, "Failure preparing request")
91		return
92	}
93
94	result, err = client.CreateUpdateSQLContainerSender(req)
95	if err != nil {
96		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLContainer", nil, "Failure sending request")
97		return
98	}
99
100	return
101}
102
103// CreateUpdateSQLContainerPreparer prepares the CreateUpdateSQLContainer request.
104func (client SQLResourcesClient) CreateUpdateSQLContainerPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, createUpdateSQLContainerParameters SQLContainerCreateUpdateParameters) (*http.Request, error) {
105	pathParameters := map[string]interface{}{
106		"accountName":       autorest.Encode("path", accountName),
107		"containerName":     autorest.Encode("path", containerName),
108		"databaseName":      autorest.Encode("path", databaseName),
109		"resourceGroupName": autorest.Encode("path", resourceGroupName),
110		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
111	}
112
113	const APIVersion = "2019-12-12"
114	queryParameters := map[string]interface{}{
115		"api-version": APIVersion,
116	}
117
118	preparer := autorest.CreatePreparer(
119		autorest.AsContentType("application/json; charset=utf-8"),
120		autorest.AsPut(),
121		autorest.WithBaseURL(client.BaseURI),
122		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}", pathParameters),
123		autorest.WithJSON(createUpdateSQLContainerParameters),
124		autorest.WithQueryParameters(queryParameters))
125	return preparer.Prepare((&http.Request{}).WithContext(ctx))
126}
127
128// CreateUpdateSQLContainerSender sends the CreateUpdateSQLContainer request. The method will close the
129// http.Response Body if it receives an error.
130func (client SQLResourcesClient) CreateUpdateSQLContainerSender(req *http.Request) (future SQLResourcesCreateUpdateSQLContainerFuture, err error) {
131	var resp *http.Response
132	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
133	if err != nil {
134		return
135	}
136	var azf azure.Future
137	azf, err = azure.NewFutureFromResponse(resp)
138	future.FutureAPI = &azf
139	future.Result = func(client SQLResourcesClient) (scgr SQLContainerGetResults, err error) {
140		var done bool
141		done, err = future.DoneWithContext(context.Background(), client)
142		if err != nil {
143			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLContainerFuture", "Result", future.Response(), "Polling failure")
144			return
145		}
146		if !done {
147			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesCreateUpdateSQLContainerFuture")
148			return
149		}
150		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
151		scgr.Response.Response, err = future.GetResult(sender)
152		if scgr.Response.Response == nil && err == nil {
153			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLContainerFuture", "Result", nil, "received nil response and error")
154		}
155		if err == nil && scgr.Response.Response.StatusCode != http.StatusNoContent {
156			scgr, err = client.CreateUpdateSQLContainerResponder(scgr.Response.Response)
157			if err != nil {
158				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLContainerFuture", "Result", scgr.Response.Response, "Failure responding to request")
159			}
160		}
161		return
162	}
163	return
164}
165
166// CreateUpdateSQLContainerResponder handles the response to the CreateUpdateSQLContainer request. The method always
167// closes the http.Response Body.
168func (client SQLResourcesClient) CreateUpdateSQLContainerResponder(resp *http.Response) (result SQLContainerGetResults, err error) {
169	err = autorest.Respond(
170		resp,
171		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
172		autorest.ByUnmarshallingJSON(&result),
173		autorest.ByClosing())
174	result.Response = autorest.Response{Response: resp}
175	return
176}
177
178// CreateUpdateSQLDatabase create or update an Azure Cosmos DB SQL database
179// Parameters:
180// resourceGroupName - name of an Azure resource group.
181// accountName - cosmos DB database account name.
182// databaseName - cosmos DB database name.
183// createUpdateSQLDatabaseParameters - the parameters to provide for the current SQL database.
184func (client SQLResourcesClient) CreateUpdateSQLDatabase(ctx context.Context, resourceGroupName string, accountName string, databaseName string, createUpdateSQLDatabaseParameters SQLDatabaseCreateUpdateParameters) (result SQLResourcesCreateUpdateSQLDatabaseFuture, err error) {
185	if tracing.IsEnabled() {
186		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.CreateUpdateSQLDatabase")
187		defer func() {
188			sc := -1
189			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
190				sc = result.FutureAPI.Response().StatusCode
191			}
192			tracing.EndSpan(ctx, sc, err)
193		}()
194	}
195	if err := validation.Validate([]validation.Validation{
196		{TargetValue: resourceGroupName,
197			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
198				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
199				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
200		{TargetValue: accountName,
201			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
202				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
203				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
204		{TargetValue: createUpdateSQLDatabaseParameters,
205			Constraints: []validation.Constraint{{Target: "createUpdateSQLDatabaseParameters.SQLDatabaseCreateUpdateProperties", Name: validation.Null, Rule: true,
206				Chain: []validation.Constraint{{Target: "createUpdateSQLDatabaseParameters.SQLDatabaseCreateUpdateProperties.Resource", Name: validation.Null, Rule: true,
207					Chain: []validation.Constraint{{Target: "createUpdateSQLDatabaseParameters.SQLDatabaseCreateUpdateProperties.Resource.ID", Name: validation.Null, Rule: true, Chain: nil}}},
208					{Target: "createUpdateSQLDatabaseParameters.SQLDatabaseCreateUpdateProperties.Options", Name: validation.Null, Rule: true, Chain: nil},
209				}}}}}); err != nil {
210		return result, validation.NewError("documentdb.SQLResourcesClient", "CreateUpdateSQLDatabase", err.Error())
211	}
212
213	req, err := client.CreateUpdateSQLDatabasePreparer(ctx, resourceGroupName, accountName, databaseName, createUpdateSQLDatabaseParameters)
214	if err != nil {
215		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLDatabase", nil, "Failure preparing request")
216		return
217	}
218
219	result, err = client.CreateUpdateSQLDatabaseSender(req)
220	if err != nil {
221		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLDatabase", nil, "Failure sending request")
222		return
223	}
224
225	return
226}
227
228// CreateUpdateSQLDatabasePreparer prepares the CreateUpdateSQLDatabase request.
229func (client SQLResourcesClient) CreateUpdateSQLDatabasePreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, createUpdateSQLDatabaseParameters SQLDatabaseCreateUpdateParameters) (*http.Request, error) {
230	pathParameters := map[string]interface{}{
231		"accountName":       autorest.Encode("path", accountName),
232		"databaseName":      autorest.Encode("path", databaseName),
233		"resourceGroupName": autorest.Encode("path", resourceGroupName),
234		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
235	}
236
237	const APIVersion = "2019-12-12"
238	queryParameters := map[string]interface{}{
239		"api-version": APIVersion,
240	}
241
242	preparer := autorest.CreatePreparer(
243		autorest.AsContentType("application/json; charset=utf-8"),
244		autorest.AsPut(),
245		autorest.WithBaseURL(client.BaseURI),
246		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}", pathParameters),
247		autorest.WithJSON(createUpdateSQLDatabaseParameters),
248		autorest.WithQueryParameters(queryParameters))
249	return preparer.Prepare((&http.Request{}).WithContext(ctx))
250}
251
252// CreateUpdateSQLDatabaseSender sends the CreateUpdateSQLDatabase request. The method will close the
253// http.Response Body if it receives an error.
254func (client SQLResourcesClient) CreateUpdateSQLDatabaseSender(req *http.Request) (future SQLResourcesCreateUpdateSQLDatabaseFuture, err error) {
255	var resp *http.Response
256	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
257	if err != nil {
258		return
259	}
260	var azf azure.Future
261	azf, err = azure.NewFutureFromResponse(resp)
262	future.FutureAPI = &azf
263	future.Result = func(client SQLResourcesClient) (sdgr SQLDatabaseGetResults, err error) {
264		var done bool
265		done, err = future.DoneWithContext(context.Background(), client)
266		if err != nil {
267			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLDatabaseFuture", "Result", future.Response(), "Polling failure")
268			return
269		}
270		if !done {
271			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesCreateUpdateSQLDatabaseFuture")
272			return
273		}
274		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
275		sdgr.Response.Response, err = future.GetResult(sender)
276		if sdgr.Response.Response == nil && err == nil {
277			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLDatabaseFuture", "Result", nil, "received nil response and error")
278		}
279		if err == nil && sdgr.Response.Response.StatusCode != http.StatusNoContent {
280			sdgr, err = client.CreateUpdateSQLDatabaseResponder(sdgr.Response.Response)
281			if err != nil {
282				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLDatabaseFuture", "Result", sdgr.Response.Response, "Failure responding to request")
283			}
284		}
285		return
286	}
287	return
288}
289
290// CreateUpdateSQLDatabaseResponder handles the response to the CreateUpdateSQLDatabase request. The method always
291// closes the http.Response Body.
292func (client SQLResourcesClient) CreateUpdateSQLDatabaseResponder(resp *http.Response) (result SQLDatabaseGetResults, err error) {
293	err = autorest.Respond(
294		resp,
295		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
296		autorest.ByUnmarshallingJSON(&result),
297		autorest.ByClosing())
298	result.Response = autorest.Response{Response: resp}
299	return
300}
301
302// CreateUpdateSQLStoredProcedure create or update an Azure Cosmos DB SQL storedProcedure
303// Parameters:
304// resourceGroupName - name of an Azure resource group.
305// accountName - cosmos DB database account name.
306// databaseName - cosmos DB database name.
307// containerName - cosmos DB container name.
308// storedProcedureName - cosmos DB storedProcedure name.
309// createUpdateSQLStoredProcedureParameters - the parameters to provide for the current SQL storedProcedure.
310func (client SQLResourcesClient) CreateUpdateSQLStoredProcedure(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, storedProcedureName string, createUpdateSQLStoredProcedureParameters SQLStoredProcedureCreateUpdateParameters) (result SQLResourcesCreateUpdateSQLStoredProcedureFuture, err error) {
311	if tracing.IsEnabled() {
312		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.CreateUpdateSQLStoredProcedure")
313		defer func() {
314			sc := -1
315			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
316				sc = result.FutureAPI.Response().StatusCode
317			}
318			tracing.EndSpan(ctx, sc, err)
319		}()
320	}
321	if err := validation.Validate([]validation.Validation{
322		{TargetValue: resourceGroupName,
323			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
324				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
325				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
326		{TargetValue: accountName,
327			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
328				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
329				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
330		{TargetValue: createUpdateSQLStoredProcedureParameters,
331			Constraints: []validation.Constraint{{Target: "createUpdateSQLStoredProcedureParameters.SQLStoredProcedureCreateUpdateProperties", Name: validation.Null, Rule: true,
332				Chain: []validation.Constraint{{Target: "createUpdateSQLStoredProcedureParameters.SQLStoredProcedureCreateUpdateProperties.Resource", Name: validation.Null, Rule: true,
333					Chain: []validation.Constraint{{Target: "createUpdateSQLStoredProcedureParameters.SQLStoredProcedureCreateUpdateProperties.Resource.ID", Name: validation.Null, Rule: true, Chain: nil}}},
334					{Target: "createUpdateSQLStoredProcedureParameters.SQLStoredProcedureCreateUpdateProperties.Options", Name: validation.Null, Rule: true, Chain: nil},
335				}}}}}); err != nil {
336		return result, validation.NewError("documentdb.SQLResourcesClient", "CreateUpdateSQLStoredProcedure", err.Error())
337	}
338
339	req, err := client.CreateUpdateSQLStoredProcedurePreparer(ctx, resourceGroupName, accountName, databaseName, containerName, storedProcedureName, createUpdateSQLStoredProcedureParameters)
340	if err != nil {
341		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLStoredProcedure", nil, "Failure preparing request")
342		return
343	}
344
345	result, err = client.CreateUpdateSQLStoredProcedureSender(req)
346	if err != nil {
347		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLStoredProcedure", nil, "Failure sending request")
348		return
349	}
350
351	return
352}
353
354// CreateUpdateSQLStoredProcedurePreparer prepares the CreateUpdateSQLStoredProcedure request.
355func (client SQLResourcesClient) CreateUpdateSQLStoredProcedurePreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, storedProcedureName string, createUpdateSQLStoredProcedureParameters SQLStoredProcedureCreateUpdateParameters) (*http.Request, error) {
356	pathParameters := map[string]interface{}{
357		"accountName":         autorest.Encode("path", accountName),
358		"containerName":       autorest.Encode("path", containerName),
359		"databaseName":        autorest.Encode("path", databaseName),
360		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
361		"storedProcedureName": autorest.Encode("path", storedProcedureName),
362		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
363	}
364
365	const APIVersion = "2019-12-12"
366	queryParameters := map[string]interface{}{
367		"api-version": APIVersion,
368	}
369
370	preparer := autorest.CreatePreparer(
371		autorest.AsContentType("application/json; charset=utf-8"),
372		autorest.AsPut(),
373		autorest.WithBaseURL(client.BaseURI),
374		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures/{storedProcedureName}", pathParameters),
375		autorest.WithJSON(createUpdateSQLStoredProcedureParameters),
376		autorest.WithQueryParameters(queryParameters))
377	return preparer.Prepare((&http.Request{}).WithContext(ctx))
378}
379
380// CreateUpdateSQLStoredProcedureSender sends the CreateUpdateSQLStoredProcedure request. The method will close the
381// http.Response Body if it receives an error.
382func (client SQLResourcesClient) CreateUpdateSQLStoredProcedureSender(req *http.Request) (future SQLResourcesCreateUpdateSQLStoredProcedureFuture, err error) {
383	var resp *http.Response
384	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
385	if err != nil {
386		return
387	}
388	var azf azure.Future
389	azf, err = azure.NewFutureFromResponse(resp)
390	future.FutureAPI = &azf
391	future.Result = func(client SQLResourcesClient) (sspgr SQLStoredProcedureGetResults, err error) {
392		var done bool
393		done, err = future.DoneWithContext(context.Background(), client)
394		if err != nil {
395			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLStoredProcedureFuture", "Result", future.Response(), "Polling failure")
396			return
397		}
398		if !done {
399			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesCreateUpdateSQLStoredProcedureFuture")
400			return
401		}
402		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
403		sspgr.Response.Response, err = future.GetResult(sender)
404		if sspgr.Response.Response == nil && err == nil {
405			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLStoredProcedureFuture", "Result", nil, "received nil response and error")
406		}
407		if err == nil && sspgr.Response.Response.StatusCode != http.StatusNoContent {
408			sspgr, err = client.CreateUpdateSQLStoredProcedureResponder(sspgr.Response.Response)
409			if err != nil {
410				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLStoredProcedureFuture", "Result", sspgr.Response.Response, "Failure responding to request")
411			}
412		}
413		return
414	}
415	return
416}
417
418// CreateUpdateSQLStoredProcedureResponder handles the response to the CreateUpdateSQLStoredProcedure request. The method always
419// closes the http.Response Body.
420func (client SQLResourcesClient) CreateUpdateSQLStoredProcedureResponder(resp *http.Response) (result SQLStoredProcedureGetResults, err error) {
421	err = autorest.Respond(
422		resp,
423		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
424		autorest.ByUnmarshallingJSON(&result),
425		autorest.ByClosing())
426	result.Response = autorest.Response{Response: resp}
427	return
428}
429
430// CreateUpdateSQLTrigger create or update an Azure Cosmos DB SQL trigger
431// Parameters:
432// resourceGroupName - name of an Azure resource group.
433// accountName - cosmos DB database account name.
434// databaseName - cosmos DB database name.
435// containerName - cosmos DB container name.
436// triggerName - cosmos DB trigger name.
437// createUpdateSQLTriggerParameters - the parameters to provide for the current SQL trigger.
438func (client SQLResourcesClient) CreateUpdateSQLTrigger(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, triggerName string, createUpdateSQLTriggerParameters SQLTriggerCreateUpdateParameters) (result SQLResourcesCreateUpdateSQLTriggerFuture, err error) {
439	if tracing.IsEnabled() {
440		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.CreateUpdateSQLTrigger")
441		defer func() {
442			sc := -1
443			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
444				sc = result.FutureAPI.Response().StatusCode
445			}
446			tracing.EndSpan(ctx, sc, err)
447		}()
448	}
449	if err := validation.Validate([]validation.Validation{
450		{TargetValue: resourceGroupName,
451			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
452				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
453				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
454		{TargetValue: accountName,
455			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
456				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
457				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
458		{TargetValue: createUpdateSQLTriggerParameters,
459			Constraints: []validation.Constraint{{Target: "createUpdateSQLTriggerParameters.SQLTriggerCreateUpdateProperties", Name: validation.Null, Rule: true,
460				Chain: []validation.Constraint{{Target: "createUpdateSQLTriggerParameters.SQLTriggerCreateUpdateProperties.Resource", Name: validation.Null, Rule: true,
461					Chain: []validation.Constraint{{Target: "createUpdateSQLTriggerParameters.SQLTriggerCreateUpdateProperties.Resource.ID", Name: validation.Null, Rule: true, Chain: nil}}},
462					{Target: "createUpdateSQLTriggerParameters.SQLTriggerCreateUpdateProperties.Options", Name: validation.Null, Rule: true, Chain: nil},
463				}}}}}); err != nil {
464		return result, validation.NewError("documentdb.SQLResourcesClient", "CreateUpdateSQLTrigger", err.Error())
465	}
466
467	req, err := client.CreateUpdateSQLTriggerPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, triggerName, createUpdateSQLTriggerParameters)
468	if err != nil {
469		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLTrigger", nil, "Failure preparing request")
470		return
471	}
472
473	result, err = client.CreateUpdateSQLTriggerSender(req)
474	if err != nil {
475		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLTrigger", nil, "Failure sending request")
476		return
477	}
478
479	return
480}
481
482// CreateUpdateSQLTriggerPreparer prepares the CreateUpdateSQLTrigger request.
483func (client SQLResourcesClient) CreateUpdateSQLTriggerPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, triggerName string, createUpdateSQLTriggerParameters SQLTriggerCreateUpdateParameters) (*http.Request, error) {
484	pathParameters := map[string]interface{}{
485		"accountName":       autorest.Encode("path", accountName),
486		"containerName":     autorest.Encode("path", containerName),
487		"databaseName":      autorest.Encode("path", databaseName),
488		"resourceGroupName": autorest.Encode("path", resourceGroupName),
489		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
490		"triggerName":       autorest.Encode("path", triggerName),
491	}
492
493	const APIVersion = "2019-12-12"
494	queryParameters := map[string]interface{}{
495		"api-version": APIVersion,
496	}
497
498	preparer := autorest.CreatePreparer(
499		autorest.AsContentType("application/json; charset=utf-8"),
500		autorest.AsPut(),
501		autorest.WithBaseURL(client.BaseURI),
502		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/triggers/{triggerName}", pathParameters),
503		autorest.WithJSON(createUpdateSQLTriggerParameters),
504		autorest.WithQueryParameters(queryParameters))
505	return preparer.Prepare((&http.Request{}).WithContext(ctx))
506}
507
508// CreateUpdateSQLTriggerSender sends the CreateUpdateSQLTrigger request. The method will close the
509// http.Response Body if it receives an error.
510func (client SQLResourcesClient) CreateUpdateSQLTriggerSender(req *http.Request) (future SQLResourcesCreateUpdateSQLTriggerFuture, err error) {
511	var resp *http.Response
512	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
513	if err != nil {
514		return
515	}
516	var azf azure.Future
517	azf, err = azure.NewFutureFromResponse(resp)
518	future.FutureAPI = &azf
519	future.Result = func(client SQLResourcesClient) (stgr SQLTriggerGetResults, err error) {
520		var done bool
521		done, err = future.DoneWithContext(context.Background(), client)
522		if err != nil {
523			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLTriggerFuture", "Result", future.Response(), "Polling failure")
524			return
525		}
526		if !done {
527			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesCreateUpdateSQLTriggerFuture")
528			return
529		}
530		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
531		stgr.Response.Response, err = future.GetResult(sender)
532		if stgr.Response.Response == nil && err == nil {
533			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLTriggerFuture", "Result", nil, "received nil response and error")
534		}
535		if err == nil && stgr.Response.Response.StatusCode != http.StatusNoContent {
536			stgr, err = client.CreateUpdateSQLTriggerResponder(stgr.Response.Response)
537			if err != nil {
538				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLTriggerFuture", "Result", stgr.Response.Response, "Failure responding to request")
539			}
540		}
541		return
542	}
543	return
544}
545
546// CreateUpdateSQLTriggerResponder handles the response to the CreateUpdateSQLTrigger request. The method always
547// closes the http.Response Body.
548func (client SQLResourcesClient) CreateUpdateSQLTriggerResponder(resp *http.Response) (result SQLTriggerGetResults, err error) {
549	err = autorest.Respond(
550		resp,
551		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
552		autorest.ByUnmarshallingJSON(&result),
553		autorest.ByClosing())
554	result.Response = autorest.Response{Response: resp}
555	return
556}
557
558// CreateUpdateSQLUserDefinedFunction create or update an Azure Cosmos DB SQL userDefinedFunction
559// Parameters:
560// resourceGroupName - name of an Azure resource group.
561// accountName - cosmos DB database account name.
562// databaseName - cosmos DB database name.
563// containerName - cosmos DB container name.
564// userDefinedFunctionName - cosmos DB userDefinedFunction name.
565// createUpdateSQLUserDefinedFunctionParameters - the parameters to provide for the current SQL
566// userDefinedFunction.
567func (client SQLResourcesClient) CreateUpdateSQLUserDefinedFunction(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, userDefinedFunctionName string, createUpdateSQLUserDefinedFunctionParameters SQLUserDefinedFunctionCreateUpdateParameters) (result SQLResourcesCreateUpdateSQLUserDefinedFunctionFuture, err error) {
568	if tracing.IsEnabled() {
569		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.CreateUpdateSQLUserDefinedFunction")
570		defer func() {
571			sc := -1
572			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
573				sc = result.FutureAPI.Response().StatusCode
574			}
575			tracing.EndSpan(ctx, sc, err)
576		}()
577	}
578	if err := validation.Validate([]validation.Validation{
579		{TargetValue: resourceGroupName,
580			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
581				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
582				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
583		{TargetValue: accountName,
584			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
585				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
586				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
587		{TargetValue: createUpdateSQLUserDefinedFunctionParameters,
588			Constraints: []validation.Constraint{{Target: "createUpdateSQLUserDefinedFunctionParameters.SQLUserDefinedFunctionCreateUpdateProperties", Name: validation.Null, Rule: true,
589				Chain: []validation.Constraint{{Target: "createUpdateSQLUserDefinedFunctionParameters.SQLUserDefinedFunctionCreateUpdateProperties.Resource", Name: validation.Null, Rule: true,
590					Chain: []validation.Constraint{{Target: "createUpdateSQLUserDefinedFunctionParameters.SQLUserDefinedFunctionCreateUpdateProperties.Resource.ID", Name: validation.Null, Rule: true, Chain: nil}}},
591					{Target: "createUpdateSQLUserDefinedFunctionParameters.SQLUserDefinedFunctionCreateUpdateProperties.Options", Name: validation.Null, Rule: true, Chain: nil},
592				}}}}}); err != nil {
593		return result, validation.NewError("documentdb.SQLResourcesClient", "CreateUpdateSQLUserDefinedFunction", err.Error())
594	}
595
596	req, err := client.CreateUpdateSQLUserDefinedFunctionPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, userDefinedFunctionName, createUpdateSQLUserDefinedFunctionParameters)
597	if err != nil {
598		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLUserDefinedFunction", nil, "Failure preparing request")
599		return
600	}
601
602	result, err = client.CreateUpdateSQLUserDefinedFunctionSender(req)
603	if err != nil {
604		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "CreateUpdateSQLUserDefinedFunction", nil, "Failure sending request")
605		return
606	}
607
608	return
609}
610
611// CreateUpdateSQLUserDefinedFunctionPreparer prepares the CreateUpdateSQLUserDefinedFunction request.
612func (client SQLResourcesClient) CreateUpdateSQLUserDefinedFunctionPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, userDefinedFunctionName string, createUpdateSQLUserDefinedFunctionParameters SQLUserDefinedFunctionCreateUpdateParameters) (*http.Request, error) {
613	pathParameters := map[string]interface{}{
614		"accountName":             autorest.Encode("path", accountName),
615		"containerName":           autorest.Encode("path", containerName),
616		"databaseName":            autorest.Encode("path", databaseName),
617		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
618		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
619		"userDefinedFunctionName": autorest.Encode("path", userDefinedFunctionName),
620	}
621
622	const APIVersion = "2019-12-12"
623	queryParameters := map[string]interface{}{
624		"api-version": APIVersion,
625	}
626
627	preparer := autorest.CreatePreparer(
628		autorest.AsContentType("application/json; charset=utf-8"),
629		autorest.AsPut(),
630		autorest.WithBaseURL(client.BaseURI),
631		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/userDefinedFunctions/{userDefinedFunctionName}", pathParameters),
632		autorest.WithJSON(createUpdateSQLUserDefinedFunctionParameters),
633		autorest.WithQueryParameters(queryParameters))
634	return preparer.Prepare((&http.Request{}).WithContext(ctx))
635}
636
637// CreateUpdateSQLUserDefinedFunctionSender sends the CreateUpdateSQLUserDefinedFunction request. The method will close the
638// http.Response Body if it receives an error.
639func (client SQLResourcesClient) CreateUpdateSQLUserDefinedFunctionSender(req *http.Request) (future SQLResourcesCreateUpdateSQLUserDefinedFunctionFuture, err error) {
640	var resp *http.Response
641	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
642	if err != nil {
643		return
644	}
645	var azf azure.Future
646	azf, err = azure.NewFutureFromResponse(resp)
647	future.FutureAPI = &azf
648	future.Result = func(client SQLResourcesClient) (sudfgr SQLUserDefinedFunctionGetResults, err error) {
649		var done bool
650		done, err = future.DoneWithContext(context.Background(), client)
651		if err != nil {
652			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLUserDefinedFunctionFuture", "Result", future.Response(), "Polling failure")
653			return
654		}
655		if !done {
656			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesCreateUpdateSQLUserDefinedFunctionFuture")
657			return
658		}
659		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
660		sudfgr.Response.Response, err = future.GetResult(sender)
661		if sudfgr.Response.Response == nil && err == nil {
662			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLUserDefinedFunctionFuture", "Result", nil, "received nil response and error")
663		}
664		if err == nil && sudfgr.Response.Response.StatusCode != http.StatusNoContent {
665			sudfgr, err = client.CreateUpdateSQLUserDefinedFunctionResponder(sudfgr.Response.Response)
666			if err != nil {
667				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesCreateUpdateSQLUserDefinedFunctionFuture", "Result", sudfgr.Response.Response, "Failure responding to request")
668			}
669		}
670		return
671	}
672	return
673}
674
675// CreateUpdateSQLUserDefinedFunctionResponder handles the response to the CreateUpdateSQLUserDefinedFunction request. The method always
676// closes the http.Response Body.
677func (client SQLResourcesClient) CreateUpdateSQLUserDefinedFunctionResponder(resp *http.Response) (result SQLUserDefinedFunctionGetResults, err error) {
678	err = autorest.Respond(
679		resp,
680		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
681		autorest.ByUnmarshallingJSON(&result),
682		autorest.ByClosing())
683	result.Response = autorest.Response{Response: resp}
684	return
685}
686
687// DeleteSQLContainer deletes an existing Azure Cosmos DB SQL container.
688// Parameters:
689// resourceGroupName - name of an Azure resource group.
690// accountName - cosmos DB database account name.
691// databaseName - cosmos DB database name.
692// containerName - cosmos DB container name.
693func (client SQLResourcesClient) DeleteSQLContainer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (result SQLResourcesDeleteSQLContainerFuture, err error) {
694	if tracing.IsEnabled() {
695		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.DeleteSQLContainer")
696		defer func() {
697			sc := -1
698			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
699				sc = result.FutureAPI.Response().StatusCode
700			}
701			tracing.EndSpan(ctx, sc, err)
702		}()
703	}
704	if err := validation.Validate([]validation.Validation{
705		{TargetValue: resourceGroupName,
706			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
707				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
708				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
709		{TargetValue: accountName,
710			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
711				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
712				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
713		return result, validation.NewError("documentdb.SQLResourcesClient", "DeleteSQLContainer", err.Error())
714	}
715
716	req, err := client.DeleteSQLContainerPreparer(ctx, resourceGroupName, accountName, databaseName, containerName)
717	if err != nil {
718		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLContainer", nil, "Failure preparing request")
719		return
720	}
721
722	result, err = client.DeleteSQLContainerSender(req)
723	if err != nil {
724		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLContainer", nil, "Failure sending request")
725		return
726	}
727
728	return
729}
730
731// DeleteSQLContainerPreparer prepares the DeleteSQLContainer request.
732func (client SQLResourcesClient) DeleteSQLContainerPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (*http.Request, error) {
733	pathParameters := map[string]interface{}{
734		"accountName":       autorest.Encode("path", accountName),
735		"containerName":     autorest.Encode("path", containerName),
736		"databaseName":      autorest.Encode("path", databaseName),
737		"resourceGroupName": autorest.Encode("path", resourceGroupName),
738		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
739	}
740
741	const APIVersion = "2019-12-12"
742	queryParameters := map[string]interface{}{
743		"api-version": APIVersion,
744	}
745
746	preparer := autorest.CreatePreparer(
747		autorest.AsDelete(),
748		autorest.WithBaseURL(client.BaseURI),
749		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}", pathParameters),
750		autorest.WithQueryParameters(queryParameters))
751	return preparer.Prepare((&http.Request{}).WithContext(ctx))
752}
753
754// DeleteSQLContainerSender sends the DeleteSQLContainer request. The method will close the
755// http.Response Body if it receives an error.
756func (client SQLResourcesClient) DeleteSQLContainerSender(req *http.Request) (future SQLResourcesDeleteSQLContainerFuture, err error) {
757	var resp *http.Response
758	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
759	if err != nil {
760		return
761	}
762	var azf azure.Future
763	azf, err = azure.NewFutureFromResponse(resp)
764	future.FutureAPI = &azf
765	future.Result = func(client SQLResourcesClient) (ar autorest.Response, err error) {
766		var done bool
767		done, err = future.DoneWithContext(context.Background(), client)
768		if err != nil {
769			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesDeleteSQLContainerFuture", "Result", future.Response(), "Polling failure")
770			return
771		}
772		if !done {
773			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesDeleteSQLContainerFuture")
774			return
775		}
776		ar.Response = future.Response()
777		return
778	}
779	return
780}
781
782// DeleteSQLContainerResponder handles the response to the DeleteSQLContainer request. The method always
783// closes the http.Response Body.
784func (client SQLResourcesClient) DeleteSQLContainerResponder(resp *http.Response) (result autorest.Response, err error) {
785	err = autorest.Respond(
786		resp,
787		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
788		autorest.ByClosing())
789	result.Response = resp
790	return
791}
792
793// DeleteSQLDatabase deletes an existing Azure Cosmos DB SQL database.
794// Parameters:
795// resourceGroupName - name of an Azure resource group.
796// accountName - cosmos DB database account name.
797// databaseName - cosmos DB database name.
798func (client SQLResourcesClient) DeleteSQLDatabase(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (result SQLResourcesDeleteSQLDatabaseFuture, err error) {
799	if tracing.IsEnabled() {
800		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.DeleteSQLDatabase")
801		defer func() {
802			sc := -1
803			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
804				sc = result.FutureAPI.Response().StatusCode
805			}
806			tracing.EndSpan(ctx, sc, err)
807		}()
808	}
809	if err := validation.Validate([]validation.Validation{
810		{TargetValue: resourceGroupName,
811			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
812				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
813				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
814		{TargetValue: accountName,
815			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
816				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
817				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
818		return result, validation.NewError("documentdb.SQLResourcesClient", "DeleteSQLDatabase", err.Error())
819	}
820
821	req, err := client.DeleteSQLDatabasePreparer(ctx, resourceGroupName, accountName, databaseName)
822	if err != nil {
823		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLDatabase", nil, "Failure preparing request")
824		return
825	}
826
827	result, err = client.DeleteSQLDatabaseSender(req)
828	if err != nil {
829		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLDatabase", nil, "Failure sending request")
830		return
831	}
832
833	return
834}
835
836// DeleteSQLDatabasePreparer prepares the DeleteSQLDatabase request.
837func (client SQLResourcesClient) DeleteSQLDatabasePreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (*http.Request, error) {
838	pathParameters := map[string]interface{}{
839		"accountName":       autorest.Encode("path", accountName),
840		"databaseName":      autorest.Encode("path", databaseName),
841		"resourceGroupName": autorest.Encode("path", resourceGroupName),
842		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
843	}
844
845	const APIVersion = "2019-12-12"
846	queryParameters := map[string]interface{}{
847		"api-version": APIVersion,
848	}
849
850	preparer := autorest.CreatePreparer(
851		autorest.AsDelete(),
852		autorest.WithBaseURL(client.BaseURI),
853		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}", pathParameters),
854		autorest.WithQueryParameters(queryParameters))
855	return preparer.Prepare((&http.Request{}).WithContext(ctx))
856}
857
858// DeleteSQLDatabaseSender sends the DeleteSQLDatabase request. The method will close the
859// http.Response Body if it receives an error.
860func (client SQLResourcesClient) DeleteSQLDatabaseSender(req *http.Request) (future SQLResourcesDeleteSQLDatabaseFuture, err error) {
861	var resp *http.Response
862	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
863	if err != nil {
864		return
865	}
866	var azf azure.Future
867	azf, err = azure.NewFutureFromResponse(resp)
868	future.FutureAPI = &azf
869	future.Result = func(client SQLResourcesClient) (ar autorest.Response, err error) {
870		var done bool
871		done, err = future.DoneWithContext(context.Background(), client)
872		if err != nil {
873			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesDeleteSQLDatabaseFuture", "Result", future.Response(), "Polling failure")
874			return
875		}
876		if !done {
877			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesDeleteSQLDatabaseFuture")
878			return
879		}
880		ar.Response = future.Response()
881		return
882	}
883	return
884}
885
886// DeleteSQLDatabaseResponder handles the response to the DeleteSQLDatabase request. The method always
887// closes the http.Response Body.
888func (client SQLResourcesClient) DeleteSQLDatabaseResponder(resp *http.Response) (result autorest.Response, err error) {
889	err = autorest.Respond(
890		resp,
891		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
892		autorest.ByClosing())
893	result.Response = resp
894	return
895}
896
897// DeleteSQLStoredProcedure deletes an existing Azure Cosmos DB SQL storedProcedure.
898// Parameters:
899// resourceGroupName - name of an Azure resource group.
900// accountName - cosmos DB database account name.
901// databaseName - cosmos DB database name.
902// containerName - cosmos DB container name.
903// storedProcedureName - cosmos DB storedProcedure name.
904func (client SQLResourcesClient) DeleteSQLStoredProcedure(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, storedProcedureName string) (result SQLResourcesDeleteSQLStoredProcedureFuture, err error) {
905	if tracing.IsEnabled() {
906		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.DeleteSQLStoredProcedure")
907		defer func() {
908			sc := -1
909			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
910				sc = result.FutureAPI.Response().StatusCode
911			}
912			tracing.EndSpan(ctx, sc, err)
913		}()
914	}
915	if err := validation.Validate([]validation.Validation{
916		{TargetValue: resourceGroupName,
917			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
918				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
919				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
920		{TargetValue: accountName,
921			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
922				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
923				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
924		return result, validation.NewError("documentdb.SQLResourcesClient", "DeleteSQLStoredProcedure", err.Error())
925	}
926
927	req, err := client.DeleteSQLStoredProcedurePreparer(ctx, resourceGroupName, accountName, databaseName, containerName, storedProcedureName)
928	if err != nil {
929		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLStoredProcedure", nil, "Failure preparing request")
930		return
931	}
932
933	result, err = client.DeleteSQLStoredProcedureSender(req)
934	if err != nil {
935		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLStoredProcedure", nil, "Failure sending request")
936		return
937	}
938
939	return
940}
941
942// DeleteSQLStoredProcedurePreparer prepares the DeleteSQLStoredProcedure request.
943func (client SQLResourcesClient) DeleteSQLStoredProcedurePreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, storedProcedureName string) (*http.Request, error) {
944	pathParameters := map[string]interface{}{
945		"accountName":         autorest.Encode("path", accountName),
946		"containerName":       autorest.Encode("path", containerName),
947		"databaseName":        autorest.Encode("path", databaseName),
948		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
949		"storedProcedureName": autorest.Encode("path", storedProcedureName),
950		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
951	}
952
953	const APIVersion = "2019-12-12"
954	queryParameters := map[string]interface{}{
955		"api-version": APIVersion,
956	}
957
958	preparer := autorest.CreatePreparer(
959		autorest.AsDelete(),
960		autorest.WithBaseURL(client.BaseURI),
961		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures/{storedProcedureName}", pathParameters),
962		autorest.WithQueryParameters(queryParameters))
963	return preparer.Prepare((&http.Request{}).WithContext(ctx))
964}
965
966// DeleteSQLStoredProcedureSender sends the DeleteSQLStoredProcedure request. The method will close the
967// http.Response Body if it receives an error.
968func (client SQLResourcesClient) DeleteSQLStoredProcedureSender(req *http.Request) (future SQLResourcesDeleteSQLStoredProcedureFuture, err error) {
969	var resp *http.Response
970	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
971	if err != nil {
972		return
973	}
974	var azf azure.Future
975	azf, err = azure.NewFutureFromResponse(resp)
976	future.FutureAPI = &azf
977	future.Result = func(client SQLResourcesClient) (ar autorest.Response, err error) {
978		var done bool
979		done, err = future.DoneWithContext(context.Background(), client)
980		if err != nil {
981			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesDeleteSQLStoredProcedureFuture", "Result", future.Response(), "Polling failure")
982			return
983		}
984		if !done {
985			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesDeleteSQLStoredProcedureFuture")
986			return
987		}
988		ar.Response = future.Response()
989		return
990	}
991	return
992}
993
994// DeleteSQLStoredProcedureResponder handles the response to the DeleteSQLStoredProcedure request. The method always
995// closes the http.Response Body.
996func (client SQLResourcesClient) DeleteSQLStoredProcedureResponder(resp *http.Response) (result autorest.Response, err error) {
997	err = autorest.Respond(
998		resp,
999		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
1000		autorest.ByClosing())
1001	result.Response = resp
1002	return
1003}
1004
1005// DeleteSQLTrigger deletes an existing Azure Cosmos DB SQL trigger.
1006// Parameters:
1007// resourceGroupName - name of an Azure resource group.
1008// accountName - cosmos DB database account name.
1009// databaseName - cosmos DB database name.
1010// containerName - cosmos DB container name.
1011// triggerName - cosmos DB trigger name.
1012func (client SQLResourcesClient) DeleteSQLTrigger(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, triggerName string) (result SQLResourcesDeleteSQLTriggerFuture, err error) {
1013	if tracing.IsEnabled() {
1014		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.DeleteSQLTrigger")
1015		defer func() {
1016			sc := -1
1017			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
1018				sc = result.FutureAPI.Response().StatusCode
1019			}
1020			tracing.EndSpan(ctx, sc, err)
1021		}()
1022	}
1023	if err := validation.Validate([]validation.Validation{
1024		{TargetValue: resourceGroupName,
1025			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1026				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1027				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1028		{TargetValue: accountName,
1029			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1030				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1031				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1032		return result, validation.NewError("documentdb.SQLResourcesClient", "DeleteSQLTrigger", err.Error())
1033	}
1034
1035	req, err := client.DeleteSQLTriggerPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, triggerName)
1036	if err != nil {
1037		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLTrigger", nil, "Failure preparing request")
1038		return
1039	}
1040
1041	result, err = client.DeleteSQLTriggerSender(req)
1042	if err != nil {
1043		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLTrigger", nil, "Failure sending request")
1044		return
1045	}
1046
1047	return
1048}
1049
1050// DeleteSQLTriggerPreparer prepares the DeleteSQLTrigger request.
1051func (client SQLResourcesClient) DeleteSQLTriggerPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, triggerName string) (*http.Request, error) {
1052	pathParameters := map[string]interface{}{
1053		"accountName":       autorest.Encode("path", accountName),
1054		"containerName":     autorest.Encode("path", containerName),
1055		"databaseName":      autorest.Encode("path", databaseName),
1056		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1057		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1058		"triggerName":       autorest.Encode("path", triggerName),
1059	}
1060
1061	const APIVersion = "2019-12-12"
1062	queryParameters := map[string]interface{}{
1063		"api-version": APIVersion,
1064	}
1065
1066	preparer := autorest.CreatePreparer(
1067		autorest.AsDelete(),
1068		autorest.WithBaseURL(client.BaseURI),
1069		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/triggers/{triggerName}", pathParameters),
1070		autorest.WithQueryParameters(queryParameters))
1071	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1072}
1073
1074// DeleteSQLTriggerSender sends the DeleteSQLTrigger request. The method will close the
1075// http.Response Body if it receives an error.
1076func (client SQLResourcesClient) DeleteSQLTriggerSender(req *http.Request) (future SQLResourcesDeleteSQLTriggerFuture, err error) {
1077	var resp *http.Response
1078	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
1079	if err != nil {
1080		return
1081	}
1082	var azf azure.Future
1083	azf, err = azure.NewFutureFromResponse(resp)
1084	future.FutureAPI = &azf
1085	future.Result = func(client SQLResourcesClient) (ar autorest.Response, err error) {
1086		var done bool
1087		done, err = future.DoneWithContext(context.Background(), client)
1088		if err != nil {
1089			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesDeleteSQLTriggerFuture", "Result", future.Response(), "Polling failure")
1090			return
1091		}
1092		if !done {
1093			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesDeleteSQLTriggerFuture")
1094			return
1095		}
1096		ar.Response = future.Response()
1097		return
1098	}
1099	return
1100}
1101
1102// DeleteSQLTriggerResponder handles the response to the DeleteSQLTrigger request. The method always
1103// closes the http.Response Body.
1104func (client SQLResourcesClient) DeleteSQLTriggerResponder(resp *http.Response) (result autorest.Response, err error) {
1105	err = autorest.Respond(
1106		resp,
1107		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
1108		autorest.ByClosing())
1109	result.Response = resp
1110	return
1111}
1112
1113// DeleteSQLUserDefinedFunction deletes an existing Azure Cosmos DB SQL userDefinedFunction.
1114// Parameters:
1115// resourceGroupName - name of an Azure resource group.
1116// accountName - cosmos DB database account name.
1117// databaseName - cosmos DB database name.
1118// containerName - cosmos DB container name.
1119// userDefinedFunctionName - cosmos DB userDefinedFunction name.
1120func (client SQLResourcesClient) DeleteSQLUserDefinedFunction(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, userDefinedFunctionName string) (result SQLResourcesDeleteSQLUserDefinedFunctionFuture, err error) {
1121	if tracing.IsEnabled() {
1122		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.DeleteSQLUserDefinedFunction")
1123		defer func() {
1124			sc := -1
1125			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
1126				sc = result.FutureAPI.Response().StatusCode
1127			}
1128			tracing.EndSpan(ctx, sc, err)
1129		}()
1130	}
1131	if err := validation.Validate([]validation.Validation{
1132		{TargetValue: resourceGroupName,
1133			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1134				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1135				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1136		{TargetValue: accountName,
1137			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1138				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1139				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1140		return result, validation.NewError("documentdb.SQLResourcesClient", "DeleteSQLUserDefinedFunction", err.Error())
1141	}
1142
1143	req, err := client.DeleteSQLUserDefinedFunctionPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, userDefinedFunctionName)
1144	if err != nil {
1145		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLUserDefinedFunction", nil, "Failure preparing request")
1146		return
1147	}
1148
1149	result, err = client.DeleteSQLUserDefinedFunctionSender(req)
1150	if err != nil {
1151		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "DeleteSQLUserDefinedFunction", nil, "Failure sending request")
1152		return
1153	}
1154
1155	return
1156}
1157
1158// DeleteSQLUserDefinedFunctionPreparer prepares the DeleteSQLUserDefinedFunction request.
1159func (client SQLResourcesClient) DeleteSQLUserDefinedFunctionPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, userDefinedFunctionName string) (*http.Request, error) {
1160	pathParameters := map[string]interface{}{
1161		"accountName":             autorest.Encode("path", accountName),
1162		"containerName":           autorest.Encode("path", containerName),
1163		"databaseName":            autorest.Encode("path", databaseName),
1164		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
1165		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
1166		"userDefinedFunctionName": autorest.Encode("path", userDefinedFunctionName),
1167	}
1168
1169	const APIVersion = "2019-12-12"
1170	queryParameters := map[string]interface{}{
1171		"api-version": APIVersion,
1172	}
1173
1174	preparer := autorest.CreatePreparer(
1175		autorest.AsDelete(),
1176		autorest.WithBaseURL(client.BaseURI),
1177		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/userDefinedFunctions/{userDefinedFunctionName}", pathParameters),
1178		autorest.WithQueryParameters(queryParameters))
1179	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1180}
1181
1182// DeleteSQLUserDefinedFunctionSender sends the DeleteSQLUserDefinedFunction request. The method will close the
1183// http.Response Body if it receives an error.
1184func (client SQLResourcesClient) DeleteSQLUserDefinedFunctionSender(req *http.Request) (future SQLResourcesDeleteSQLUserDefinedFunctionFuture, err error) {
1185	var resp *http.Response
1186	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
1187	if err != nil {
1188		return
1189	}
1190	var azf azure.Future
1191	azf, err = azure.NewFutureFromResponse(resp)
1192	future.FutureAPI = &azf
1193	future.Result = func(client SQLResourcesClient) (ar autorest.Response, err error) {
1194		var done bool
1195		done, err = future.DoneWithContext(context.Background(), client)
1196		if err != nil {
1197			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesDeleteSQLUserDefinedFunctionFuture", "Result", future.Response(), "Polling failure")
1198			return
1199		}
1200		if !done {
1201			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesDeleteSQLUserDefinedFunctionFuture")
1202			return
1203		}
1204		ar.Response = future.Response()
1205		return
1206	}
1207	return
1208}
1209
1210// DeleteSQLUserDefinedFunctionResponder handles the response to the DeleteSQLUserDefinedFunction request. The method always
1211// closes the http.Response Body.
1212func (client SQLResourcesClient) DeleteSQLUserDefinedFunctionResponder(resp *http.Response) (result autorest.Response, err error) {
1213	err = autorest.Respond(
1214		resp,
1215		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
1216		autorest.ByClosing())
1217	result.Response = resp
1218	return
1219}
1220
1221// GetSQLContainer gets the SQL container under an existing Azure Cosmos DB database account.
1222// Parameters:
1223// resourceGroupName - name of an Azure resource group.
1224// accountName - cosmos DB database account name.
1225// databaseName - cosmos DB database name.
1226// containerName - cosmos DB container name.
1227func (client SQLResourcesClient) GetSQLContainer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (result SQLContainerGetResults, err error) {
1228	if tracing.IsEnabled() {
1229		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLContainer")
1230		defer func() {
1231			sc := -1
1232			if result.Response.Response != nil {
1233				sc = result.Response.Response.StatusCode
1234			}
1235			tracing.EndSpan(ctx, sc, err)
1236		}()
1237	}
1238	if err := validation.Validate([]validation.Validation{
1239		{TargetValue: resourceGroupName,
1240			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1241				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1242				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1243		{TargetValue: accountName,
1244			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1245				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1246				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1247		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLContainer", err.Error())
1248	}
1249
1250	req, err := client.GetSQLContainerPreparer(ctx, resourceGroupName, accountName, databaseName, containerName)
1251	if err != nil {
1252		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLContainer", nil, "Failure preparing request")
1253		return
1254	}
1255
1256	resp, err := client.GetSQLContainerSender(req)
1257	if err != nil {
1258		result.Response = autorest.Response{Response: resp}
1259		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLContainer", resp, "Failure sending request")
1260		return
1261	}
1262
1263	result, err = client.GetSQLContainerResponder(resp)
1264	if err != nil {
1265		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLContainer", resp, "Failure responding to request")
1266		return
1267	}
1268
1269	return
1270}
1271
1272// GetSQLContainerPreparer prepares the GetSQLContainer request.
1273func (client SQLResourcesClient) GetSQLContainerPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (*http.Request, error) {
1274	pathParameters := map[string]interface{}{
1275		"accountName":       autorest.Encode("path", accountName),
1276		"containerName":     autorest.Encode("path", containerName),
1277		"databaseName":      autorest.Encode("path", databaseName),
1278		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1279		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1280	}
1281
1282	const APIVersion = "2019-12-12"
1283	queryParameters := map[string]interface{}{
1284		"api-version": APIVersion,
1285	}
1286
1287	preparer := autorest.CreatePreparer(
1288		autorest.AsGet(),
1289		autorest.WithBaseURL(client.BaseURI),
1290		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}", pathParameters),
1291		autorest.WithQueryParameters(queryParameters))
1292	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1293}
1294
1295// GetSQLContainerSender sends the GetSQLContainer request. The method will close the
1296// http.Response Body if it receives an error.
1297func (client SQLResourcesClient) GetSQLContainerSender(req *http.Request) (*http.Response, error) {
1298	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1299}
1300
1301// GetSQLContainerResponder handles the response to the GetSQLContainer request. The method always
1302// closes the http.Response Body.
1303func (client SQLResourcesClient) GetSQLContainerResponder(resp *http.Response) (result SQLContainerGetResults, err error) {
1304	err = autorest.Respond(
1305		resp,
1306		azure.WithErrorUnlessStatusCode(http.StatusOK),
1307		autorest.ByUnmarshallingJSON(&result),
1308		autorest.ByClosing())
1309	result.Response = autorest.Response{Response: resp}
1310	return
1311}
1312
1313// GetSQLContainerThroughput gets the RUs per second of the SQL container under an existing Azure Cosmos DB database
1314// account.
1315// Parameters:
1316// resourceGroupName - name of an Azure resource group.
1317// accountName - cosmos DB database account name.
1318// databaseName - cosmos DB database name.
1319// containerName - cosmos DB container name.
1320func (client SQLResourcesClient) GetSQLContainerThroughput(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (result ThroughputSettingsGetResults, err error) {
1321	if tracing.IsEnabled() {
1322		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLContainerThroughput")
1323		defer func() {
1324			sc := -1
1325			if result.Response.Response != nil {
1326				sc = result.Response.Response.StatusCode
1327			}
1328			tracing.EndSpan(ctx, sc, err)
1329		}()
1330	}
1331	if err := validation.Validate([]validation.Validation{
1332		{TargetValue: resourceGroupName,
1333			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1334				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1335				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1336		{TargetValue: accountName,
1337			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1338				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1339				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1340		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLContainerThroughput", err.Error())
1341	}
1342
1343	req, err := client.GetSQLContainerThroughputPreparer(ctx, resourceGroupName, accountName, databaseName, containerName)
1344	if err != nil {
1345		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLContainerThroughput", nil, "Failure preparing request")
1346		return
1347	}
1348
1349	resp, err := client.GetSQLContainerThroughputSender(req)
1350	if err != nil {
1351		result.Response = autorest.Response{Response: resp}
1352		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLContainerThroughput", resp, "Failure sending request")
1353		return
1354	}
1355
1356	result, err = client.GetSQLContainerThroughputResponder(resp)
1357	if err != nil {
1358		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLContainerThroughput", resp, "Failure responding to request")
1359		return
1360	}
1361
1362	return
1363}
1364
1365// GetSQLContainerThroughputPreparer prepares the GetSQLContainerThroughput request.
1366func (client SQLResourcesClient) GetSQLContainerThroughputPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (*http.Request, error) {
1367	pathParameters := map[string]interface{}{
1368		"accountName":       autorest.Encode("path", accountName),
1369		"containerName":     autorest.Encode("path", containerName),
1370		"databaseName":      autorest.Encode("path", databaseName),
1371		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1372		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1373	}
1374
1375	const APIVersion = "2019-12-12"
1376	queryParameters := map[string]interface{}{
1377		"api-version": APIVersion,
1378	}
1379
1380	preparer := autorest.CreatePreparer(
1381		autorest.AsGet(),
1382		autorest.WithBaseURL(client.BaseURI),
1383		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default", pathParameters),
1384		autorest.WithQueryParameters(queryParameters))
1385	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1386}
1387
1388// GetSQLContainerThroughputSender sends the GetSQLContainerThroughput request. The method will close the
1389// http.Response Body if it receives an error.
1390func (client SQLResourcesClient) GetSQLContainerThroughputSender(req *http.Request) (*http.Response, error) {
1391	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1392}
1393
1394// GetSQLContainerThroughputResponder handles the response to the GetSQLContainerThroughput request. The method always
1395// closes the http.Response Body.
1396func (client SQLResourcesClient) GetSQLContainerThroughputResponder(resp *http.Response) (result ThroughputSettingsGetResults, err error) {
1397	err = autorest.Respond(
1398		resp,
1399		azure.WithErrorUnlessStatusCode(http.StatusOK),
1400		autorest.ByUnmarshallingJSON(&result),
1401		autorest.ByClosing())
1402	result.Response = autorest.Response{Response: resp}
1403	return
1404}
1405
1406// GetSQLDatabase gets the SQL database under an existing Azure Cosmos DB database account with the provided name.
1407// Parameters:
1408// resourceGroupName - name of an Azure resource group.
1409// accountName - cosmos DB database account name.
1410// databaseName - cosmos DB database name.
1411func (client SQLResourcesClient) GetSQLDatabase(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (result SQLDatabaseGetResults, err error) {
1412	if tracing.IsEnabled() {
1413		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLDatabase")
1414		defer func() {
1415			sc := -1
1416			if result.Response.Response != nil {
1417				sc = result.Response.Response.StatusCode
1418			}
1419			tracing.EndSpan(ctx, sc, err)
1420		}()
1421	}
1422	if err := validation.Validate([]validation.Validation{
1423		{TargetValue: resourceGroupName,
1424			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1425				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1426				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1427		{TargetValue: accountName,
1428			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1429				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1430				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1431		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLDatabase", err.Error())
1432	}
1433
1434	req, err := client.GetSQLDatabasePreparer(ctx, resourceGroupName, accountName, databaseName)
1435	if err != nil {
1436		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLDatabase", nil, "Failure preparing request")
1437		return
1438	}
1439
1440	resp, err := client.GetSQLDatabaseSender(req)
1441	if err != nil {
1442		result.Response = autorest.Response{Response: resp}
1443		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLDatabase", resp, "Failure sending request")
1444		return
1445	}
1446
1447	result, err = client.GetSQLDatabaseResponder(resp)
1448	if err != nil {
1449		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLDatabase", resp, "Failure responding to request")
1450		return
1451	}
1452
1453	return
1454}
1455
1456// GetSQLDatabasePreparer prepares the GetSQLDatabase request.
1457func (client SQLResourcesClient) GetSQLDatabasePreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (*http.Request, error) {
1458	pathParameters := map[string]interface{}{
1459		"accountName":       autorest.Encode("path", accountName),
1460		"databaseName":      autorest.Encode("path", databaseName),
1461		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1462		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1463	}
1464
1465	const APIVersion = "2019-12-12"
1466	queryParameters := map[string]interface{}{
1467		"api-version": APIVersion,
1468	}
1469
1470	preparer := autorest.CreatePreparer(
1471		autorest.AsGet(),
1472		autorest.WithBaseURL(client.BaseURI),
1473		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}", pathParameters),
1474		autorest.WithQueryParameters(queryParameters))
1475	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1476}
1477
1478// GetSQLDatabaseSender sends the GetSQLDatabase request. The method will close the
1479// http.Response Body if it receives an error.
1480func (client SQLResourcesClient) GetSQLDatabaseSender(req *http.Request) (*http.Response, error) {
1481	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1482}
1483
1484// GetSQLDatabaseResponder handles the response to the GetSQLDatabase request. The method always
1485// closes the http.Response Body.
1486func (client SQLResourcesClient) GetSQLDatabaseResponder(resp *http.Response) (result SQLDatabaseGetResults, err error) {
1487	err = autorest.Respond(
1488		resp,
1489		azure.WithErrorUnlessStatusCode(http.StatusOK),
1490		autorest.ByUnmarshallingJSON(&result),
1491		autorest.ByClosing())
1492	result.Response = autorest.Response{Response: resp}
1493	return
1494}
1495
1496// GetSQLDatabaseThroughput gets the RUs per second of the SQL database under an existing Azure Cosmos DB database
1497// account with the provided name.
1498// Parameters:
1499// resourceGroupName - name of an Azure resource group.
1500// accountName - cosmos DB database account name.
1501// databaseName - cosmos DB database name.
1502func (client SQLResourcesClient) GetSQLDatabaseThroughput(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (result ThroughputSettingsGetResults, err error) {
1503	if tracing.IsEnabled() {
1504		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLDatabaseThroughput")
1505		defer func() {
1506			sc := -1
1507			if result.Response.Response != nil {
1508				sc = result.Response.Response.StatusCode
1509			}
1510			tracing.EndSpan(ctx, sc, err)
1511		}()
1512	}
1513	if err := validation.Validate([]validation.Validation{
1514		{TargetValue: resourceGroupName,
1515			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1516				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1517				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1518		{TargetValue: accountName,
1519			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1520				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1521				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1522		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLDatabaseThroughput", err.Error())
1523	}
1524
1525	req, err := client.GetSQLDatabaseThroughputPreparer(ctx, resourceGroupName, accountName, databaseName)
1526	if err != nil {
1527		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLDatabaseThroughput", nil, "Failure preparing request")
1528		return
1529	}
1530
1531	resp, err := client.GetSQLDatabaseThroughputSender(req)
1532	if err != nil {
1533		result.Response = autorest.Response{Response: resp}
1534		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLDatabaseThroughput", resp, "Failure sending request")
1535		return
1536	}
1537
1538	result, err = client.GetSQLDatabaseThroughputResponder(resp)
1539	if err != nil {
1540		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLDatabaseThroughput", resp, "Failure responding to request")
1541		return
1542	}
1543
1544	return
1545}
1546
1547// GetSQLDatabaseThroughputPreparer prepares the GetSQLDatabaseThroughput request.
1548func (client SQLResourcesClient) GetSQLDatabaseThroughputPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (*http.Request, error) {
1549	pathParameters := map[string]interface{}{
1550		"accountName":       autorest.Encode("path", accountName),
1551		"databaseName":      autorest.Encode("path", databaseName),
1552		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1553		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1554	}
1555
1556	const APIVersion = "2019-12-12"
1557	queryParameters := map[string]interface{}{
1558		"api-version": APIVersion,
1559	}
1560
1561	preparer := autorest.CreatePreparer(
1562		autorest.AsGet(),
1563		autorest.WithBaseURL(client.BaseURI),
1564		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/throughputSettings/default", pathParameters),
1565		autorest.WithQueryParameters(queryParameters))
1566	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1567}
1568
1569// GetSQLDatabaseThroughputSender sends the GetSQLDatabaseThroughput request. The method will close the
1570// http.Response Body if it receives an error.
1571func (client SQLResourcesClient) GetSQLDatabaseThroughputSender(req *http.Request) (*http.Response, error) {
1572	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1573}
1574
1575// GetSQLDatabaseThroughputResponder handles the response to the GetSQLDatabaseThroughput request. The method always
1576// closes the http.Response Body.
1577func (client SQLResourcesClient) GetSQLDatabaseThroughputResponder(resp *http.Response) (result ThroughputSettingsGetResults, err error) {
1578	err = autorest.Respond(
1579		resp,
1580		azure.WithErrorUnlessStatusCode(http.StatusOK),
1581		autorest.ByUnmarshallingJSON(&result),
1582		autorest.ByClosing())
1583	result.Response = autorest.Response{Response: resp}
1584	return
1585}
1586
1587// GetSQLStoredProcedure gets the SQL storedProcedure under an existing Azure Cosmos DB database account.
1588// Parameters:
1589// resourceGroupName - name of an Azure resource group.
1590// accountName - cosmos DB database account name.
1591// databaseName - cosmos DB database name.
1592// containerName - cosmos DB container name.
1593// storedProcedureName - cosmos DB storedProcedure name.
1594func (client SQLResourcesClient) GetSQLStoredProcedure(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, storedProcedureName string) (result SQLStoredProcedureGetResults, err error) {
1595	if tracing.IsEnabled() {
1596		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLStoredProcedure")
1597		defer func() {
1598			sc := -1
1599			if result.Response.Response != nil {
1600				sc = result.Response.Response.StatusCode
1601			}
1602			tracing.EndSpan(ctx, sc, err)
1603		}()
1604	}
1605	if err := validation.Validate([]validation.Validation{
1606		{TargetValue: resourceGroupName,
1607			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1608				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1609				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1610		{TargetValue: accountName,
1611			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1612				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1613				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1614		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLStoredProcedure", err.Error())
1615	}
1616
1617	req, err := client.GetSQLStoredProcedurePreparer(ctx, resourceGroupName, accountName, databaseName, containerName, storedProcedureName)
1618	if err != nil {
1619		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLStoredProcedure", nil, "Failure preparing request")
1620		return
1621	}
1622
1623	resp, err := client.GetSQLStoredProcedureSender(req)
1624	if err != nil {
1625		result.Response = autorest.Response{Response: resp}
1626		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLStoredProcedure", resp, "Failure sending request")
1627		return
1628	}
1629
1630	result, err = client.GetSQLStoredProcedureResponder(resp)
1631	if err != nil {
1632		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLStoredProcedure", resp, "Failure responding to request")
1633		return
1634	}
1635
1636	return
1637}
1638
1639// GetSQLStoredProcedurePreparer prepares the GetSQLStoredProcedure request.
1640func (client SQLResourcesClient) GetSQLStoredProcedurePreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, storedProcedureName string) (*http.Request, error) {
1641	pathParameters := map[string]interface{}{
1642		"accountName":         autorest.Encode("path", accountName),
1643		"containerName":       autorest.Encode("path", containerName),
1644		"databaseName":        autorest.Encode("path", databaseName),
1645		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
1646		"storedProcedureName": autorest.Encode("path", storedProcedureName),
1647		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
1648	}
1649
1650	const APIVersion = "2019-12-12"
1651	queryParameters := map[string]interface{}{
1652		"api-version": APIVersion,
1653	}
1654
1655	preparer := autorest.CreatePreparer(
1656		autorest.AsGet(),
1657		autorest.WithBaseURL(client.BaseURI),
1658		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures/{storedProcedureName}", pathParameters),
1659		autorest.WithQueryParameters(queryParameters))
1660	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1661}
1662
1663// GetSQLStoredProcedureSender sends the GetSQLStoredProcedure request. The method will close the
1664// http.Response Body if it receives an error.
1665func (client SQLResourcesClient) GetSQLStoredProcedureSender(req *http.Request) (*http.Response, error) {
1666	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1667}
1668
1669// GetSQLStoredProcedureResponder handles the response to the GetSQLStoredProcedure request. The method always
1670// closes the http.Response Body.
1671func (client SQLResourcesClient) GetSQLStoredProcedureResponder(resp *http.Response) (result SQLStoredProcedureGetResults, err error) {
1672	err = autorest.Respond(
1673		resp,
1674		azure.WithErrorUnlessStatusCode(http.StatusOK),
1675		autorest.ByUnmarshallingJSON(&result),
1676		autorest.ByClosing())
1677	result.Response = autorest.Response{Response: resp}
1678	return
1679}
1680
1681// GetSQLTrigger gets the SQL trigger under an existing Azure Cosmos DB database account.
1682// Parameters:
1683// resourceGroupName - name of an Azure resource group.
1684// accountName - cosmos DB database account name.
1685// databaseName - cosmos DB database name.
1686// containerName - cosmos DB container name.
1687// triggerName - cosmos DB trigger name.
1688func (client SQLResourcesClient) GetSQLTrigger(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, triggerName string) (result SQLTriggerGetResults, err error) {
1689	if tracing.IsEnabled() {
1690		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLTrigger")
1691		defer func() {
1692			sc := -1
1693			if result.Response.Response != nil {
1694				sc = result.Response.Response.StatusCode
1695			}
1696			tracing.EndSpan(ctx, sc, err)
1697		}()
1698	}
1699	if err := validation.Validate([]validation.Validation{
1700		{TargetValue: resourceGroupName,
1701			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1702				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1703				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1704		{TargetValue: accountName,
1705			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1706				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1707				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1708		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLTrigger", err.Error())
1709	}
1710
1711	req, err := client.GetSQLTriggerPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, triggerName)
1712	if err != nil {
1713		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLTrigger", nil, "Failure preparing request")
1714		return
1715	}
1716
1717	resp, err := client.GetSQLTriggerSender(req)
1718	if err != nil {
1719		result.Response = autorest.Response{Response: resp}
1720		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLTrigger", resp, "Failure sending request")
1721		return
1722	}
1723
1724	result, err = client.GetSQLTriggerResponder(resp)
1725	if err != nil {
1726		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLTrigger", resp, "Failure responding to request")
1727		return
1728	}
1729
1730	return
1731}
1732
1733// GetSQLTriggerPreparer prepares the GetSQLTrigger request.
1734func (client SQLResourcesClient) GetSQLTriggerPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, triggerName string) (*http.Request, error) {
1735	pathParameters := map[string]interface{}{
1736		"accountName":       autorest.Encode("path", accountName),
1737		"containerName":     autorest.Encode("path", containerName),
1738		"databaseName":      autorest.Encode("path", databaseName),
1739		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1740		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1741		"triggerName":       autorest.Encode("path", triggerName),
1742	}
1743
1744	const APIVersion = "2019-12-12"
1745	queryParameters := map[string]interface{}{
1746		"api-version": APIVersion,
1747	}
1748
1749	preparer := autorest.CreatePreparer(
1750		autorest.AsGet(),
1751		autorest.WithBaseURL(client.BaseURI),
1752		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/triggers/{triggerName}", pathParameters),
1753		autorest.WithQueryParameters(queryParameters))
1754	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1755}
1756
1757// GetSQLTriggerSender sends the GetSQLTrigger request. The method will close the
1758// http.Response Body if it receives an error.
1759func (client SQLResourcesClient) GetSQLTriggerSender(req *http.Request) (*http.Response, error) {
1760	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1761}
1762
1763// GetSQLTriggerResponder handles the response to the GetSQLTrigger request. The method always
1764// closes the http.Response Body.
1765func (client SQLResourcesClient) GetSQLTriggerResponder(resp *http.Response) (result SQLTriggerGetResults, err error) {
1766	err = autorest.Respond(
1767		resp,
1768		azure.WithErrorUnlessStatusCode(http.StatusOK),
1769		autorest.ByUnmarshallingJSON(&result),
1770		autorest.ByClosing())
1771	result.Response = autorest.Response{Response: resp}
1772	return
1773}
1774
1775// GetSQLUserDefinedFunction gets the SQL userDefinedFunction under an existing Azure Cosmos DB database account.
1776// Parameters:
1777// resourceGroupName - name of an Azure resource group.
1778// accountName - cosmos DB database account name.
1779// databaseName - cosmos DB database name.
1780// containerName - cosmos DB container name.
1781// userDefinedFunctionName - cosmos DB userDefinedFunction name.
1782func (client SQLResourcesClient) GetSQLUserDefinedFunction(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, userDefinedFunctionName string) (result SQLUserDefinedFunctionGetResults, err error) {
1783	if tracing.IsEnabled() {
1784		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.GetSQLUserDefinedFunction")
1785		defer func() {
1786			sc := -1
1787			if result.Response.Response != nil {
1788				sc = result.Response.Response.StatusCode
1789			}
1790			tracing.EndSpan(ctx, sc, err)
1791		}()
1792	}
1793	if err := validation.Validate([]validation.Validation{
1794		{TargetValue: resourceGroupName,
1795			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1796				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1797				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1798		{TargetValue: accountName,
1799			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1800				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1801				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1802		return result, validation.NewError("documentdb.SQLResourcesClient", "GetSQLUserDefinedFunction", err.Error())
1803	}
1804
1805	req, err := client.GetSQLUserDefinedFunctionPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, userDefinedFunctionName)
1806	if err != nil {
1807		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLUserDefinedFunction", nil, "Failure preparing request")
1808		return
1809	}
1810
1811	resp, err := client.GetSQLUserDefinedFunctionSender(req)
1812	if err != nil {
1813		result.Response = autorest.Response{Response: resp}
1814		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLUserDefinedFunction", resp, "Failure sending request")
1815		return
1816	}
1817
1818	result, err = client.GetSQLUserDefinedFunctionResponder(resp)
1819	if err != nil {
1820		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "GetSQLUserDefinedFunction", resp, "Failure responding to request")
1821		return
1822	}
1823
1824	return
1825}
1826
1827// GetSQLUserDefinedFunctionPreparer prepares the GetSQLUserDefinedFunction request.
1828func (client SQLResourcesClient) GetSQLUserDefinedFunctionPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, userDefinedFunctionName string) (*http.Request, error) {
1829	pathParameters := map[string]interface{}{
1830		"accountName":             autorest.Encode("path", accountName),
1831		"containerName":           autorest.Encode("path", containerName),
1832		"databaseName":            autorest.Encode("path", databaseName),
1833		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
1834		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
1835		"userDefinedFunctionName": autorest.Encode("path", userDefinedFunctionName),
1836	}
1837
1838	const APIVersion = "2019-12-12"
1839	queryParameters := map[string]interface{}{
1840		"api-version": APIVersion,
1841	}
1842
1843	preparer := autorest.CreatePreparer(
1844		autorest.AsGet(),
1845		autorest.WithBaseURL(client.BaseURI),
1846		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/userDefinedFunctions/{userDefinedFunctionName}", pathParameters),
1847		autorest.WithQueryParameters(queryParameters))
1848	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1849}
1850
1851// GetSQLUserDefinedFunctionSender sends the GetSQLUserDefinedFunction request. The method will close the
1852// http.Response Body if it receives an error.
1853func (client SQLResourcesClient) GetSQLUserDefinedFunctionSender(req *http.Request) (*http.Response, error) {
1854	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1855}
1856
1857// GetSQLUserDefinedFunctionResponder handles the response to the GetSQLUserDefinedFunction request. The method always
1858// closes the http.Response Body.
1859func (client SQLResourcesClient) GetSQLUserDefinedFunctionResponder(resp *http.Response) (result SQLUserDefinedFunctionGetResults, err error) {
1860	err = autorest.Respond(
1861		resp,
1862		azure.WithErrorUnlessStatusCode(http.StatusOK),
1863		autorest.ByUnmarshallingJSON(&result),
1864		autorest.ByClosing())
1865	result.Response = autorest.Response{Response: resp}
1866	return
1867}
1868
1869// ListSQLContainers lists the SQL container under an existing Azure Cosmos DB database account.
1870// Parameters:
1871// resourceGroupName - name of an Azure resource group.
1872// accountName - cosmos DB database account name.
1873// databaseName - cosmos DB database name.
1874func (client SQLResourcesClient) ListSQLContainers(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (result SQLContainerListResult, err error) {
1875	if tracing.IsEnabled() {
1876		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.ListSQLContainers")
1877		defer func() {
1878			sc := -1
1879			if result.Response.Response != nil {
1880				sc = result.Response.Response.StatusCode
1881			}
1882			tracing.EndSpan(ctx, sc, err)
1883		}()
1884	}
1885	if err := validation.Validate([]validation.Validation{
1886		{TargetValue: resourceGroupName,
1887			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1888				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1889				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1890		{TargetValue: accountName,
1891			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1892				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1893				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1894		return result, validation.NewError("documentdb.SQLResourcesClient", "ListSQLContainers", err.Error())
1895	}
1896
1897	req, err := client.ListSQLContainersPreparer(ctx, resourceGroupName, accountName, databaseName)
1898	if err != nil {
1899		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLContainers", nil, "Failure preparing request")
1900		return
1901	}
1902
1903	resp, err := client.ListSQLContainersSender(req)
1904	if err != nil {
1905		result.Response = autorest.Response{Response: resp}
1906		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLContainers", resp, "Failure sending request")
1907		return
1908	}
1909
1910	result, err = client.ListSQLContainersResponder(resp)
1911	if err != nil {
1912		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLContainers", resp, "Failure responding to request")
1913		return
1914	}
1915
1916	return
1917}
1918
1919// ListSQLContainersPreparer prepares the ListSQLContainers request.
1920func (client SQLResourcesClient) ListSQLContainersPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string) (*http.Request, error) {
1921	pathParameters := map[string]interface{}{
1922		"accountName":       autorest.Encode("path", accountName),
1923		"databaseName":      autorest.Encode("path", databaseName),
1924		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1925		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1926	}
1927
1928	const APIVersion = "2019-12-12"
1929	queryParameters := map[string]interface{}{
1930		"api-version": APIVersion,
1931	}
1932
1933	preparer := autorest.CreatePreparer(
1934		autorest.AsGet(),
1935		autorest.WithBaseURL(client.BaseURI),
1936		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers", pathParameters),
1937		autorest.WithQueryParameters(queryParameters))
1938	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1939}
1940
1941// ListSQLContainersSender sends the ListSQLContainers request. The method will close the
1942// http.Response Body if it receives an error.
1943func (client SQLResourcesClient) ListSQLContainersSender(req *http.Request) (*http.Response, error) {
1944	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1945}
1946
1947// ListSQLContainersResponder handles the response to the ListSQLContainers request. The method always
1948// closes the http.Response Body.
1949func (client SQLResourcesClient) ListSQLContainersResponder(resp *http.Response) (result SQLContainerListResult, err error) {
1950	err = autorest.Respond(
1951		resp,
1952		azure.WithErrorUnlessStatusCode(http.StatusOK),
1953		autorest.ByUnmarshallingJSON(&result),
1954		autorest.ByClosing())
1955	result.Response = autorest.Response{Response: resp}
1956	return
1957}
1958
1959// ListSQLDatabases lists the SQL databases under an existing Azure Cosmos DB database account.
1960// Parameters:
1961// resourceGroupName - name of an Azure resource group.
1962// accountName - cosmos DB database account name.
1963func (client SQLResourcesClient) ListSQLDatabases(ctx context.Context, resourceGroupName string, accountName string) (result SQLDatabaseListResult, err error) {
1964	if tracing.IsEnabled() {
1965		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.ListSQLDatabases")
1966		defer func() {
1967			sc := -1
1968			if result.Response.Response != nil {
1969				sc = result.Response.Response.StatusCode
1970			}
1971			tracing.EndSpan(ctx, sc, err)
1972		}()
1973	}
1974	if err := validation.Validate([]validation.Validation{
1975		{TargetValue: resourceGroupName,
1976			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
1977				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
1978				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
1979		{TargetValue: accountName,
1980			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
1981				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
1982				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
1983		return result, validation.NewError("documentdb.SQLResourcesClient", "ListSQLDatabases", err.Error())
1984	}
1985
1986	req, err := client.ListSQLDatabasesPreparer(ctx, resourceGroupName, accountName)
1987	if err != nil {
1988		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLDatabases", nil, "Failure preparing request")
1989		return
1990	}
1991
1992	resp, err := client.ListSQLDatabasesSender(req)
1993	if err != nil {
1994		result.Response = autorest.Response{Response: resp}
1995		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLDatabases", resp, "Failure sending request")
1996		return
1997	}
1998
1999	result, err = client.ListSQLDatabasesResponder(resp)
2000	if err != nil {
2001		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLDatabases", resp, "Failure responding to request")
2002		return
2003	}
2004
2005	return
2006}
2007
2008// ListSQLDatabasesPreparer prepares the ListSQLDatabases request.
2009func (client SQLResourcesClient) ListSQLDatabasesPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) {
2010	pathParameters := map[string]interface{}{
2011		"accountName":       autorest.Encode("path", accountName),
2012		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2013		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2014	}
2015
2016	const APIVersion = "2019-12-12"
2017	queryParameters := map[string]interface{}{
2018		"api-version": APIVersion,
2019	}
2020
2021	preparer := autorest.CreatePreparer(
2022		autorest.AsGet(),
2023		autorest.WithBaseURL(client.BaseURI),
2024		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases", pathParameters),
2025		autorest.WithQueryParameters(queryParameters))
2026	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2027}
2028
2029// ListSQLDatabasesSender sends the ListSQLDatabases request. The method will close the
2030// http.Response Body if it receives an error.
2031func (client SQLResourcesClient) ListSQLDatabasesSender(req *http.Request) (*http.Response, error) {
2032	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2033}
2034
2035// ListSQLDatabasesResponder handles the response to the ListSQLDatabases request. The method always
2036// closes the http.Response Body.
2037func (client SQLResourcesClient) ListSQLDatabasesResponder(resp *http.Response) (result SQLDatabaseListResult, err error) {
2038	err = autorest.Respond(
2039		resp,
2040		azure.WithErrorUnlessStatusCode(http.StatusOK),
2041		autorest.ByUnmarshallingJSON(&result),
2042		autorest.ByClosing())
2043	result.Response = autorest.Response{Response: resp}
2044	return
2045}
2046
2047// ListSQLStoredProcedures lists the SQL storedProcedure under an existing Azure Cosmos DB database account.
2048// Parameters:
2049// resourceGroupName - name of an Azure resource group.
2050// accountName - cosmos DB database account name.
2051// databaseName - cosmos DB database name.
2052// containerName - cosmos DB container name.
2053func (client SQLResourcesClient) ListSQLStoredProcedures(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (result SQLStoredProcedureListResult, err error) {
2054	if tracing.IsEnabled() {
2055		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.ListSQLStoredProcedures")
2056		defer func() {
2057			sc := -1
2058			if result.Response.Response != nil {
2059				sc = result.Response.Response.StatusCode
2060			}
2061			tracing.EndSpan(ctx, sc, err)
2062		}()
2063	}
2064	if err := validation.Validate([]validation.Validation{
2065		{TargetValue: resourceGroupName,
2066			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
2067				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
2068				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
2069		{TargetValue: accountName,
2070			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
2071				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
2072				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
2073		return result, validation.NewError("documentdb.SQLResourcesClient", "ListSQLStoredProcedures", err.Error())
2074	}
2075
2076	req, err := client.ListSQLStoredProceduresPreparer(ctx, resourceGroupName, accountName, databaseName, containerName)
2077	if err != nil {
2078		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLStoredProcedures", nil, "Failure preparing request")
2079		return
2080	}
2081
2082	resp, err := client.ListSQLStoredProceduresSender(req)
2083	if err != nil {
2084		result.Response = autorest.Response{Response: resp}
2085		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLStoredProcedures", resp, "Failure sending request")
2086		return
2087	}
2088
2089	result, err = client.ListSQLStoredProceduresResponder(resp)
2090	if err != nil {
2091		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLStoredProcedures", resp, "Failure responding to request")
2092		return
2093	}
2094
2095	return
2096}
2097
2098// ListSQLStoredProceduresPreparer prepares the ListSQLStoredProcedures request.
2099func (client SQLResourcesClient) ListSQLStoredProceduresPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (*http.Request, error) {
2100	pathParameters := map[string]interface{}{
2101		"accountName":       autorest.Encode("path", accountName),
2102		"containerName":     autorest.Encode("path", containerName),
2103		"databaseName":      autorest.Encode("path", databaseName),
2104		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2105		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2106	}
2107
2108	const APIVersion = "2019-12-12"
2109	queryParameters := map[string]interface{}{
2110		"api-version": APIVersion,
2111	}
2112
2113	preparer := autorest.CreatePreparer(
2114		autorest.AsGet(),
2115		autorest.WithBaseURL(client.BaseURI),
2116		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/storedProcedures", pathParameters),
2117		autorest.WithQueryParameters(queryParameters))
2118	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2119}
2120
2121// ListSQLStoredProceduresSender sends the ListSQLStoredProcedures request. The method will close the
2122// http.Response Body if it receives an error.
2123func (client SQLResourcesClient) ListSQLStoredProceduresSender(req *http.Request) (*http.Response, error) {
2124	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2125}
2126
2127// ListSQLStoredProceduresResponder handles the response to the ListSQLStoredProcedures request. The method always
2128// closes the http.Response Body.
2129func (client SQLResourcesClient) ListSQLStoredProceduresResponder(resp *http.Response) (result SQLStoredProcedureListResult, err error) {
2130	err = autorest.Respond(
2131		resp,
2132		azure.WithErrorUnlessStatusCode(http.StatusOK),
2133		autorest.ByUnmarshallingJSON(&result),
2134		autorest.ByClosing())
2135	result.Response = autorest.Response{Response: resp}
2136	return
2137}
2138
2139// ListSQLTriggers lists the SQL trigger under an existing Azure Cosmos DB database account.
2140// Parameters:
2141// resourceGroupName - name of an Azure resource group.
2142// accountName - cosmos DB database account name.
2143// databaseName - cosmos DB database name.
2144// containerName - cosmos DB container name.
2145func (client SQLResourcesClient) ListSQLTriggers(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (result SQLTriggerListResult, err error) {
2146	if tracing.IsEnabled() {
2147		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.ListSQLTriggers")
2148		defer func() {
2149			sc := -1
2150			if result.Response.Response != nil {
2151				sc = result.Response.Response.StatusCode
2152			}
2153			tracing.EndSpan(ctx, sc, err)
2154		}()
2155	}
2156	if err := validation.Validate([]validation.Validation{
2157		{TargetValue: resourceGroupName,
2158			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
2159				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
2160				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
2161		{TargetValue: accountName,
2162			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
2163				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
2164				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
2165		return result, validation.NewError("documentdb.SQLResourcesClient", "ListSQLTriggers", err.Error())
2166	}
2167
2168	req, err := client.ListSQLTriggersPreparer(ctx, resourceGroupName, accountName, databaseName, containerName)
2169	if err != nil {
2170		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLTriggers", nil, "Failure preparing request")
2171		return
2172	}
2173
2174	resp, err := client.ListSQLTriggersSender(req)
2175	if err != nil {
2176		result.Response = autorest.Response{Response: resp}
2177		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLTriggers", resp, "Failure sending request")
2178		return
2179	}
2180
2181	result, err = client.ListSQLTriggersResponder(resp)
2182	if err != nil {
2183		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLTriggers", resp, "Failure responding to request")
2184		return
2185	}
2186
2187	return
2188}
2189
2190// ListSQLTriggersPreparer prepares the ListSQLTriggers request.
2191func (client SQLResourcesClient) ListSQLTriggersPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (*http.Request, error) {
2192	pathParameters := map[string]interface{}{
2193		"accountName":       autorest.Encode("path", accountName),
2194		"containerName":     autorest.Encode("path", containerName),
2195		"databaseName":      autorest.Encode("path", databaseName),
2196		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2197		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2198	}
2199
2200	const APIVersion = "2019-12-12"
2201	queryParameters := map[string]interface{}{
2202		"api-version": APIVersion,
2203	}
2204
2205	preparer := autorest.CreatePreparer(
2206		autorest.AsGet(),
2207		autorest.WithBaseURL(client.BaseURI),
2208		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/triggers", pathParameters),
2209		autorest.WithQueryParameters(queryParameters))
2210	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2211}
2212
2213// ListSQLTriggersSender sends the ListSQLTriggers request. The method will close the
2214// http.Response Body if it receives an error.
2215func (client SQLResourcesClient) ListSQLTriggersSender(req *http.Request) (*http.Response, error) {
2216	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2217}
2218
2219// ListSQLTriggersResponder handles the response to the ListSQLTriggers request. The method always
2220// closes the http.Response Body.
2221func (client SQLResourcesClient) ListSQLTriggersResponder(resp *http.Response) (result SQLTriggerListResult, err error) {
2222	err = autorest.Respond(
2223		resp,
2224		azure.WithErrorUnlessStatusCode(http.StatusOK),
2225		autorest.ByUnmarshallingJSON(&result),
2226		autorest.ByClosing())
2227	result.Response = autorest.Response{Response: resp}
2228	return
2229}
2230
2231// ListSQLUserDefinedFunctions lists the SQL userDefinedFunction under an existing Azure Cosmos DB database account.
2232// Parameters:
2233// resourceGroupName - name of an Azure resource group.
2234// accountName - cosmos DB database account name.
2235// databaseName - cosmos DB database name.
2236// containerName - cosmos DB container name.
2237func (client SQLResourcesClient) ListSQLUserDefinedFunctions(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (result SQLUserDefinedFunctionListResult, err error) {
2238	if tracing.IsEnabled() {
2239		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.ListSQLUserDefinedFunctions")
2240		defer func() {
2241			sc := -1
2242			if result.Response.Response != nil {
2243				sc = result.Response.Response.StatusCode
2244			}
2245			tracing.EndSpan(ctx, sc, err)
2246		}()
2247	}
2248	if err := validation.Validate([]validation.Validation{
2249		{TargetValue: resourceGroupName,
2250			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
2251				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
2252				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
2253		{TargetValue: accountName,
2254			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
2255				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
2256				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
2257		return result, validation.NewError("documentdb.SQLResourcesClient", "ListSQLUserDefinedFunctions", err.Error())
2258	}
2259
2260	req, err := client.ListSQLUserDefinedFunctionsPreparer(ctx, resourceGroupName, accountName, databaseName, containerName)
2261	if err != nil {
2262		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLUserDefinedFunctions", nil, "Failure preparing request")
2263		return
2264	}
2265
2266	resp, err := client.ListSQLUserDefinedFunctionsSender(req)
2267	if err != nil {
2268		result.Response = autorest.Response{Response: resp}
2269		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLUserDefinedFunctions", resp, "Failure sending request")
2270		return
2271	}
2272
2273	result, err = client.ListSQLUserDefinedFunctionsResponder(resp)
2274	if err != nil {
2275		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "ListSQLUserDefinedFunctions", resp, "Failure responding to request")
2276		return
2277	}
2278
2279	return
2280}
2281
2282// ListSQLUserDefinedFunctionsPreparer prepares the ListSQLUserDefinedFunctions request.
2283func (client SQLResourcesClient) ListSQLUserDefinedFunctionsPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string) (*http.Request, error) {
2284	pathParameters := map[string]interface{}{
2285		"accountName":       autorest.Encode("path", accountName),
2286		"containerName":     autorest.Encode("path", containerName),
2287		"databaseName":      autorest.Encode("path", databaseName),
2288		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2289		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2290	}
2291
2292	const APIVersion = "2019-12-12"
2293	queryParameters := map[string]interface{}{
2294		"api-version": APIVersion,
2295	}
2296
2297	preparer := autorest.CreatePreparer(
2298		autorest.AsGet(),
2299		autorest.WithBaseURL(client.BaseURI),
2300		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/userDefinedFunctions", pathParameters),
2301		autorest.WithQueryParameters(queryParameters))
2302	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2303}
2304
2305// ListSQLUserDefinedFunctionsSender sends the ListSQLUserDefinedFunctions request. The method will close the
2306// http.Response Body if it receives an error.
2307func (client SQLResourcesClient) ListSQLUserDefinedFunctionsSender(req *http.Request) (*http.Response, error) {
2308	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
2309}
2310
2311// ListSQLUserDefinedFunctionsResponder handles the response to the ListSQLUserDefinedFunctions request. The method always
2312// closes the http.Response Body.
2313func (client SQLResourcesClient) ListSQLUserDefinedFunctionsResponder(resp *http.Response) (result SQLUserDefinedFunctionListResult, err error) {
2314	err = autorest.Respond(
2315		resp,
2316		azure.WithErrorUnlessStatusCode(http.StatusOK),
2317		autorest.ByUnmarshallingJSON(&result),
2318		autorest.ByClosing())
2319	result.Response = autorest.Response{Response: resp}
2320	return
2321}
2322
2323// UpdateSQLContainerThroughput update RUs per second of an Azure Cosmos DB SQL container
2324// Parameters:
2325// resourceGroupName - name of an Azure resource group.
2326// accountName - cosmos DB database account name.
2327// databaseName - cosmos DB database name.
2328// containerName - cosmos DB container name.
2329// updateThroughputParameters - the parameters to provide for the RUs per second of the current SQL container.
2330func (client SQLResourcesClient) UpdateSQLContainerThroughput(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, updateThroughputParameters ThroughputSettingsUpdateParameters) (result SQLResourcesUpdateSQLContainerThroughputFuture, err error) {
2331	if tracing.IsEnabled() {
2332		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.UpdateSQLContainerThroughput")
2333		defer func() {
2334			sc := -1
2335			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
2336				sc = result.FutureAPI.Response().StatusCode
2337			}
2338			tracing.EndSpan(ctx, sc, err)
2339		}()
2340	}
2341	if err := validation.Validate([]validation.Validation{
2342		{TargetValue: resourceGroupName,
2343			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
2344				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
2345				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
2346		{TargetValue: accountName,
2347			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
2348				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
2349				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
2350		{TargetValue: updateThroughputParameters,
2351			Constraints: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties", Name: validation.Null, Rule: true,
2352				Chain: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties.Resource", Name: validation.Null, Rule: true,
2353					Chain: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties.Resource.ProvisionedThroughputSettings", Name: validation.Null, Rule: false,
2354						Chain: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties.Resource.ProvisionedThroughputSettings.MaxThroughput", Name: validation.Null, Rule: true, Chain: nil}}},
2355					}},
2356				}}}}}); err != nil {
2357		return result, validation.NewError("documentdb.SQLResourcesClient", "UpdateSQLContainerThroughput", err.Error())
2358	}
2359
2360	req, err := client.UpdateSQLContainerThroughputPreparer(ctx, resourceGroupName, accountName, databaseName, containerName, updateThroughputParameters)
2361	if err != nil {
2362		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "UpdateSQLContainerThroughput", nil, "Failure preparing request")
2363		return
2364	}
2365
2366	result, err = client.UpdateSQLContainerThroughputSender(req)
2367	if err != nil {
2368		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "UpdateSQLContainerThroughput", nil, "Failure sending request")
2369		return
2370	}
2371
2372	return
2373}
2374
2375// UpdateSQLContainerThroughputPreparer prepares the UpdateSQLContainerThroughput request.
2376func (client SQLResourcesClient) UpdateSQLContainerThroughputPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, containerName string, updateThroughputParameters ThroughputSettingsUpdateParameters) (*http.Request, error) {
2377	pathParameters := map[string]interface{}{
2378		"accountName":       autorest.Encode("path", accountName),
2379		"containerName":     autorest.Encode("path", containerName),
2380		"databaseName":      autorest.Encode("path", databaseName),
2381		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2382		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2383	}
2384
2385	const APIVersion = "2019-12-12"
2386	queryParameters := map[string]interface{}{
2387		"api-version": APIVersion,
2388	}
2389
2390	preparer := autorest.CreatePreparer(
2391		autorest.AsContentType("application/json; charset=utf-8"),
2392		autorest.AsPut(),
2393		autorest.WithBaseURL(client.BaseURI),
2394		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/containers/{containerName}/throughputSettings/default", pathParameters),
2395		autorest.WithJSON(updateThroughputParameters),
2396		autorest.WithQueryParameters(queryParameters))
2397	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2398}
2399
2400// UpdateSQLContainerThroughputSender sends the UpdateSQLContainerThroughput request. The method will close the
2401// http.Response Body if it receives an error.
2402func (client SQLResourcesClient) UpdateSQLContainerThroughputSender(req *http.Request) (future SQLResourcesUpdateSQLContainerThroughputFuture, err error) {
2403	var resp *http.Response
2404	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
2405	if err != nil {
2406		return
2407	}
2408	var azf azure.Future
2409	azf, err = azure.NewFutureFromResponse(resp)
2410	future.FutureAPI = &azf
2411	future.Result = func(client SQLResourcesClient) (tsgr ThroughputSettingsGetResults, err error) {
2412		var done bool
2413		done, err = future.DoneWithContext(context.Background(), client)
2414		if err != nil {
2415			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesUpdateSQLContainerThroughputFuture", "Result", future.Response(), "Polling failure")
2416			return
2417		}
2418		if !done {
2419			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesUpdateSQLContainerThroughputFuture")
2420			return
2421		}
2422		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
2423		tsgr.Response.Response, err = future.GetResult(sender)
2424		if tsgr.Response.Response == nil && err == nil {
2425			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesUpdateSQLContainerThroughputFuture", "Result", nil, "received nil response and error")
2426		}
2427		if err == nil && tsgr.Response.Response.StatusCode != http.StatusNoContent {
2428			tsgr, err = client.UpdateSQLContainerThroughputResponder(tsgr.Response.Response)
2429			if err != nil {
2430				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesUpdateSQLContainerThroughputFuture", "Result", tsgr.Response.Response, "Failure responding to request")
2431			}
2432		}
2433		return
2434	}
2435	return
2436}
2437
2438// UpdateSQLContainerThroughputResponder handles the response to the UpdateSQLContainerThroughput request. The method always
2439// closes the http.Response Body.
2440func (client SQLResourcesClient) UpdateSQLContainerThroughputResponder(resp *http.Response) (result ThroughputSettingsGetResults, err error) {
2441	err = autorest.Respond(
2442		resp,
2443		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
2444		autorest.ByUnmarshallingJSON(&result),
2445		autorest.ByClosing())
2446	result.Response = autorest.Response{Response: resp}
2447	return
2448}
2449
2450// UpdateSQLDatabaseThroughput update RUs per second of an Azure Cosmos DB SQL database
2451// Parameters:
2452// resourceGroupName - name of an Azure resource group.
2453// accountName - cosmos DB database account name.
2454// databaseName - cosmos DB database name.
2455// updateThroughputParameters - the parameters to provide for the RUs per second of the current SQL database.
2456func (client SQLResourcesClient) UpdateSQLDatabaseThroughput(ctx context.Context, resourceGroupName string, accountName string, databaseName string, updateThroughputParameters ThroughputSettingsUpdateParameters) (result SQLResourcesUpdateSQLDatabaseThroughputFuture, err error) {
2457	if tracing.IsEnabled() {
2458		ctx = tracing.StartSpan(ctx, fqdn+"/SQLResourcesClient.UpdateSQLDatabaseThroughput")
2459		defer func() {
2460			sc := -1
2461			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
2462				sc = result.FutureAPI.Response().StatusCode
2463			}
2464			tracing.EndSpan(ctx, sc, err)
2465		}()
2466	}
2467	if err := validation.Validate([]validation.Validation{
2468		{TargetValue: resourceGroupName,
2469			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
2470				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
2471				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
2472		{TargetValue: accountName,
2473			Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
2474				{Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
2475				{Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
2476		{TargetValue: updateThroughputParameters,
2477			Constraints: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties", Name: validation.Null, Rule: true,
2478				Chain: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties.Resource", Name: validation.Null, Rule: true,
2479					Chain: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties.Resource.ProvisionedThroughputSettings", Name: validation.Null, Rule: false,
2480						Chain: []validation.Constraint{{Target: "updateThroughputParameters.ThroughputSettingsUpdateProperties.Resource.ProvisionedThroughputSettings.MaxThroughput", Name: validation.Null, Rule: true, Chain: nil}}},
2481					}},
2482				}}}}}); err != nil {
2483		return result, validation.NewError("documentdb.SQLResourcesClient", "UpdateSQLDatabaseThroughput", err.Error())
2484	}
2485
2486	req, err := client.UpdateSQLDatabaseThroughputPreparer(ctx, resourceGroupName, accountName, databaseName, updateThroughputParameters)
2487	if err != nil {
2488		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "UpdateSQLDatabaseThroughput", nil, "Failure preparing request")
2489		return
2490	}
2491
2492	result, err = client.UpdateSQLDatabaseThroughputSender(req)
2493	if err != nil {
2494		err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesClient", "UpdateSQLDatabaseThroughput", nil, "Failure sending request")
2495		return
2496	}
2497
2498	return
2499}
2500
2501// UpdateSQLDatabaseThroughputPreparer prepares the UpdateSQLDatabaseThroughput request.
2502func (client SQLResourcesClient) UpdateSQLDatabaseThroughputPreparer(ctx context.Context, resourceGroupName string, accountName string, databaseName string, updateThroughputParameters ThroughputSettingsUpdateParameters) (*http.Request, error) {
2503	pathParameters := map[string]interface{}{
2504		"accountName":       autorest.Encode("path", accountName),
2505		"databaseName":      autorest.Encode("path", databaseName),
2506		"resourceGroupName": autorest.Encode("path", resourceGroupName),
2507		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
2508	}
2509
2510	const APIVersion = "2019-12-12"
2511	queryParameters := map[string]interface{}{
2512		"api-version": APIVersion,
2513	}
2514
2515	preparer := autorest.CreatePreparer(
2516		autorest.AsContentType("application/json; charset=utf-8"),
2517		autorest.AsPut(),
2518		autorest.WithBaseURL(client.BaseURI),
2519		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlDatabases/{databaseName}/throughputSettings/default", pathParameters),
2520		autorest.WithJSON(updateThroughputParameters),
2521		autorest.WithQueryParameters(queryParameters))
2522	return preparer.Prepare((&http.Request{}).WithContext(ctx))
2523}
2524
2525// UpdateSQLDatabaseThroughputSender sends the UpdateSQLDatabaseThroughput request. The method will close the
2526// http.Response Body if it receives an error.
2527func (client SQLResourcesClient) UpdateSQLDatabaseThroughputSender(req *http.Request) (future SQLResourcesUpdateSQLDatabaseThroughputFuture, err error) {
2528	var resp *http.Response
2529	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
2530	if err != nil {
2531		return
2532	}
2533	var azf azure.Future
2534	azf, err = azure.NewFutureFromResponse(resp)
2535	future.FutureAPI = &azf
2536	future.Result = func(client SQLResourcesClient) (tsgr ThroughputSettingsGetResults, err error) {
2537		var done bool
2538		done, err = future.DoneWithContext(context.Background(), client)
2539		if err != nil {
2540			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesUpdateSQLDatabaseThroughputFuture", "Result", future.Response(), "Polling failure")
2541			return
2542		}
2543		if !done {
2544			err = azure.NewAsyncOpIncompleteError("documentdb.SQLResourcesUpdateSQLDatabaseThroughputFuture")
2545			return
2546		}
2547		sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
2548		tsgr.Response.Response, err = future.GetResult(sender)
2549		if tsgr.Response.Response == nil && err == nil {
2550			err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesUpdateSQLDatabaseThroughputFuture", "Result", nil, "received nil response and error")
2551		}
2552		if err == nil && tsgr.Response.Response.StatusCode != http.StatusNoContent {
2553			tsgr, err = client.UpdateSQLDatabaseThroughputResponder(tsgr.Response.Response)
2554			if err != nil {
2555				err = autorest.NewErrorWithError(err, "documentdb.SQLResourcesUpdateSQLDatabaseThroughputFuture", "Result", tsgr.Response.Response, "Failure responding to request")
2556			}
2557		}
2558		return
2559	}
2560	return
2561}
2562
2563// UpdateSQLDatabaseThroughputResponder handles the response to the UpdateSQLDatabaseThroughput request. The method always
2564// closes the http.Response Body.
2565func (client SQLResourcesClient) UpdateSQLDatabaseThroughputResponder(resp *http.Response) (result ThroughputSettingsGetResults, err error) {
2566	err = autorest.Respond(
2567		resp,
2568		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
2569		autorest.ByUnmarshallingJSON(&result),
2570		autorest.ByClosing())
2571	result.Response = autorest.Response{Response: resp}
2572	return
2573}
2574