...

Source file src/github.com/Azure/azure-sdk-for-go/services/provisioningservices/mgmt/2017-11-15/iothub/iotdpsresource.go

Documentation: github.com/Azure/azure-sdk-for-go/services/provisioningservices/mgmt/2017-11-15/iothub

     1  package iothub
     2  
     3  // Copyright (c) Microsoft Corporation. All rights reserved.
     4  // Licensed under the MIT License. See License.txt in the project root for license information.
     5  //
     6  // Code generated by Microsoft (R) AutoRest Code Generator.
     7  // Changes may cause incorrect behavior and will be lost if the code is regenerated.
     8  
     9  import (
    10  	"context"
    11  	"github.com/Azure/go-autorest/autorest"
    12  	"github.com/Azure/go-autorest/autorest/azure"
    13  	"github.com/Azure/go-autorest/autorest/validation"
    14  	"github.com/Azure/go-autorest/tracing"
    15  	"net/http"
    16  )
    17  
    18  // IotDpsResourceClient is the API for using the Azure IoT Hub Device Provisioning Service features.
    19  type IotDpsResourceClient struct {
    20  	BaseClient
    21  }
    22  
    23  // NewIotDpsResourceClient creates an instance of the IotDpsResourceClient client.
    24  func NewIotDpsResourceClient(subscriptionID string) IotDpsResourceClient {
    25  	return NewIotDpsResourceClientWithBaseURI(DefaultBaseURI, subscriptionID)
    26  }
    27  
    28  // NewIotDpsResourceClientWithBaseURI creates an instance of the IotDpsResourceClient client using a custom endpoint.
    29  // Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
    30  func NewIotDpsResourceClientWithBaseURI(baseURI string, subscriptionID string) IotDpsResourceClient {
    31  	return IotDpsResourceClient{NewWithBaseURI(baseURI, subscriptionID)}
    32  }
    33  
    34  // CheckProvisioningServiceNameAvailability check if a provisioning service name is available. This will validate if
    35  // the name is syntactically valid and if the name is usable
    36  // Parameters:
    37  // arguments - set the name parameter in the OperationInputs structure to the name of the provisioning service
    38  // to check.
    39  func (client IotDpsResourceClient) CheckProvisioningServiceNameAvailability(ctx context.Context, arguments OperationInputs) (result NameAvailabilityInfo, err error) {
    40  	if tracing.IsEnabled() {
    41  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.CheckProvisioningServiceNameAvailability")
    42  		defer func() {
    43  			sc := -1
    44  			if result.Response.Response != nil {
    45  				sc = result.Response.Response.StatusCode
    46  			}
    47  			tracing.EndSpan(ctx, sc, err)
    48  		}()
    49  	}
    50  	if err := validation.Validate([]validation.Validation{
    51  		{TargetValue: arguments,
    52  			Constraints: []validation.Constraint{{Target: "arguments.Name", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
    53  		return result, validation.NewError("iothub.IotDpsResourceClient", "CheckProvisioningServiceNameAvailability", err.Error())
    54  	}
    55  
    56  	req, err := client.CheckProvisioningServiceNameAvailabilityPreparer(ctx, arguments)
    57  	if err != nil {
    58  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "CheckProvisioningServiceNameAvailability", nil, "Failure preparing request")
    59  		return
    60  	}
    61  
    62  	resp, err := client.CheckProvisioningServiceNameAvailabilitySender(req)
    63  	if err != nil {
    64  		result.Response = autorest.Response{Response: resp}
    65  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "CheckProvisioningServiceNameAvailability", resp, "Failure sending request")
    66  		return
    67  	}
    68  
    69  	result, err = client.CheckProvisioningServiceNameAvailabilityResponder(resp)
    70  	if err != nil {
    71  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "CheckProvisioningServiceNameAvailability", resp, "Failure responding to request")
    72  		return
    73  	}
    74  
    75  	return
    76  }
    77  
    78  // CheckProvisioningServiceNameAvailabilityPreparer prepares the CheckProvisioningServiceNameAvailability request.
    79  func (client IotDpsResourceClient) CheckProvisioningServiceNameAvailabilityPreparer(ctx context.Context, arguments OperationInputs) (*http.Request, error) {
    80  	pathParameters := map[string]interface{}{
    81  		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
    82  	}
    83  
    84  	const APIVersion = "2017-11-15"
    85  	queryParameters := map[string]interface{}{
    86  		"api-version": APIVersion,
    87  	}
    88  
    89  	preparer := autorest.CreatePreparer(
    90  		autorest.AsContentType("application/json; charset=utf-8"),
    91  		autorest.AsPost(),
    92  		autorest.WithBaseURL(client.BaseURI),
    93  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkProvisioningServiceNameAvailability", pathParameters),
    94  		autorest.WithJSON(arguments),
    95  		autorest.WithQueryParameters(queryParameters))
    96  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
    97  }
    98  
    99  // CheckProvisioningServiceNameAvailabilitySender sends the CheckProvisioningServiceNameAvailability request. The method will close the
   100  // http.Response Body if it receives an error.
   101  func (client IotDpsResourceClient) CheckProvisioningServiceNameAvailabilitySender(req *http.Request) (*http.Response, error) {
   102  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   103  }
   104  
   105  // CheckProvisioningServiceNameAvailabilityResponder handles the response to the CheckProvisioningServiceNameAvailability request. The method always
   106  // closes the http.Response Body.
   107  func (client IotDpsResourceClient) CheckProvisioningServiceNameAvailabilityResponder(resp *http.Response) (result NameAvailabilityInfo, err error) {
   108  	err = autorest.Respond(
   109  		resp,
   110  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   111  		autorest.ByUnmarshallingJSON(&result),
   112  		autorest.ByClosing())
   113  	result.Response = autorest.Response{Response: resp}
   114  	return
   115  }
   116  
   117  // CreateOrUpdate create or update the metadata of the provisioning service. The usual pattern to modify a property is
   118  // to retrieve the provisioning service metadata and security metadata, and then combine them with the modified values
   119  // in a new body to update the provisioning service.
   120  // Parameters:
   121  // resourceGroupName - resource group identifier.
   122  // provisioningServiceName - name of provisioning service to create or update.
   123  // iotDpsDescription - description of the provisioning service to create or update.
   124  func (client IotDpsResourceClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, provisioningServiceName string, iotDpsDescription ProvisioningServiceDescription) (result IotDpsResourceCreateOrUpdateFuture, err error) {
   125  	if tracing.IsEnabled() {
   126  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.CreateOrUpdate")
   127  		defer func() {
   128  			sc := -1
   129  			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
   130  				sc = result.FutureAPI.Response().StatusCode
   131  			}
   132  			tracing.EndSpan(ctx, sc, err)
   133  		}()
   134  	}
   135  	if err := validation.Validate([]validation.Validation{
   136  		{TargetValue: iotDpsDescription,
   137  			Constraints: []validation.Constraint{{Target: "iotDpsDescription.Properties", Name: validation.Null, Rule: true, Chain: nil},
   138  				{Target: "iotDpsDescription.Sku", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
   139  		return result, validation.NewError("iothub.IotDpsResourceClient", "CreateOrUpdate", err.Error())
   140  	}
   141  
   142  	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, provisioningServiceName, iotDpsDescription)
   143  	if err != nil {
   144  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "CreateOrUpdate", nil, "Failure preparing request")
   145  		return
   146  	}
   147  
   148  	result, err = client.CreateOrUpdateSender(req)
   149  	if err != nil {
   150  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "CreateOrUpdate", result.Response(), "Failure sending request")
   151  		return
   152  	}
   153  
   154  	return
   155  }
   156  
   157  // CreateOrUpdatePreparer prepares the CreateOrUpdate request.
   158  func (client IotDpsResourceClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, provisioningServiceName string, iotDpsDescription ProvisioningServiceDescription) (*http.Request, error) {
   159  	pathParameters := map[string]interface{}{
   160  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   161  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   162  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   163  	}
   164  
   165  	const APIVersion = "2017-11-15"
   166  	queryParameters := map[string]interface{}{
   167  		"api-version": APIVersion,
   168  	}
   169  
   170  	preparer := autorest.CreatePreparer(
   171  		autorest.AsContentType("application/json; charset=utf-8"),
   172  		autorest.AsPut(),
   173  		autorest.WithBaseURL(client.BaseURI),
   174  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}", pathParameters),
   175  		autorest.WithJSON(iotDpsDescription),
   176  		autorest.WithQueryParameters(queryParameters))
   177  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   178  }
   179  
   180  // CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
   181  // http.Response Body if it receives an error.
   182  func (client IotDpsResourceClient) CreateOrUpdateSender(req *http.Request) (future IotDpsResourceCreateOrUpdateFuture, err error) {
   183  	var resp *http.Response
   184  	future.FutureAPI = &azure.Future{}
   185  	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
   186  	if err != nil {
   187  		return
   188  	}
   189  	var azf azure.Future
   190  	azf, err = azure.NewFutureFromResponse(resp)
   191  	future.FutureAPI = &azf
   192  	future.Result = future.result
   193  	return
   194  }
   195  
   196  // CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
   197  // closes the http.Response Body.
   198  func (client IotDpsResourceClient) CreateOrUpdateResponder(resp *http.Response) (result ProvisioningServiceDescription, err error) {
   199  	err = autorest.Respond(
   200  		resp,
   201  		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
   202  		autorest.ByUnmarshallingJSON(&result),
   203  		autorest.ByClosing())
   204  	result.Response = autorest.Response{Response: resp}
   205  	return
   206  }
   207  
   208  // Delete deletes the Provisioning Service.
   209  // Parameters:
   210  // provisioningServiceName - name of provisioning service to delete.
   211  // resourceGroupName - resource group identifier.
   212  func (client IotDpsResourceClient) Delete(ctx context.Context, provisioningServiceName string, resourceGroupName string) (result IotDpsResourceDeleteFuture, err error) {
   213  	if tracing.IsEnabled() {
   214  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.Delete")
   215  		defer func() {
   216  			sc := -1
   217  			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
   218  				sc = result.FutureAPI.Response().StatusCode
   219  			}
   220  			tracing.EndSpan(ctx, sc, err)
   221  		}()
   222  	}
   223  	req, err := client.DeletePreparer(ctx, provisioningServiceName, resourceGroupName)
   224  	if err != nil {
   225  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Delete", nil, "Failure preparing request")
   226  		return
   227  	}
   228  
   229  	result, err = client.DeleteSender(req)
   230  	if err != nil {
   231  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Delete", result.Response(), "Failure sending request")
   232  		return
   233  	}
   234  
   235  	return
   236  }
   237  
   238  // DeletePreparer prepares the Delete request.
   239  func (client IotDpsResourceClient) DeletePreparer(ctx context.Context, provisioningServiceName string, resourceGroupName string) (*http.Request, error) {
   240  	pathParameters := map[string]interface{}{
   241  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   242  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   243  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   244  	}
   245  
   246  	const APIVersion = "2017-11-15"
   247  	queryParameters := map[string]interface{}{
   248  		"api-version": APIVersion,
   249  	}
   250  
   251  	preparer := autorest.CreatePreparer(
   252  		autorest.AsDelete(),
   253  		autorest.WithBaseURL(client.BaseURI),
   254  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}", pathParameters),
   255  		autorest.WithQueryParameters(queryParameters))
   256  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   257  }
   258  
   259  // DeleteSender sends the Delete request. The method will close the
   260  // http.Response Body if it receives an error.
   261  func (client IotDpsResourceClient) DeleteSender(req *http.Request) (future IotDpsResourceDeleteFuture, err error) {
   262  	var resp *http.Response
   263  	future.FutureAPI = &azure.Future{}
   264  	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
   265  	if err != nil {
   266  		return
   267  	}
   268  	var azf azure.Future
   269  	azf, err = azure.NewFutureFromResponse(resp)
   270  	future.FutureAPI = &azf
   271  	future.Result = future.result
   272  	return
   273  }
   274  
   275  // DeleteResponder handles the response to the Delete request. The method always
   276  // closes the http.Response Body.
   277  func (client IotDpsResourceClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
   278  	err = autorest.Respond(
   279  		resp,
   280  		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent, http.StatusNotFound),
   281  		autorest.ByClosing())
   282  	result.Response = resp
   283  	return
   284  }
   285  
   286  // Get get the metadata of the provisioning service without SAS keys.
   287  // Parameters:
   288  // provisioningServiceName - name of the provisioning service to retrieve.
   289  // resourceGroupName - resource group name.
   290  func (client IotDpsResourceClient) Get(ctx context.Context, provisioningServiceName string, resourceGroupName string) (result ProvisioningServiceDescription, err error) {
   291  	if tracing.IsEnabled() {
   292  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.Get")
   293  		defer func() {
   294  			sc := -1
   295  			if result.Response.Response != nil {
   296  				sc = result.Response.Response.StatusCode
   297  			}
   298  			tracing.EndSpan(ctx, sc, err)
   299  		}()
   300  	}
   301  	req, err := client.GetPreparer(ctx, provisioningServiceName, resourceGroupName)
   302  	if err != nil {
   303  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Get", nil, "Failure preparing request")
   304  		return
   305  	}
   306  
   307  	resp, err := client.GetSender(req)
   308  	if err != nil {
   309  		result.Response = autorest.Response{Response: resp}
   310  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Get", resp, "Failure sending request")
   311  		return
   312  	}
   313  
   314  	result, err = client.GetResponder(resp)
   315  	if err != nil {
   316  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Get", resp, "Failure responding to request")
   317  		return
   318  	}
   319  
   320  	return
   321  }
   322  
   323  // GetPreparer prepares the Get request.
   324  func (client IotDpsResourceClient) GetPreparer(ctx context.Context, provisioningServiceName string, resourceGroupName string) (*http.Request, error) {
   325  	pathParameters := map[string]interface{}{
   326  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   327  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   328  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   329  	}
   330  
   331  	const APIVersion = "2017-11-15"
   332  	queryParameters := map[string]interface{}{
   333  		"api-version": APIVersion,
   334  	}
   335  
   336  	preparer := autorest.CreatePreparer(
   337  		autorest.AsGet(),
   338  		autorest.WithBaseURL(client.BaseURI),
   339  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}", pathParameters),
   340  		autorest.WithQueryParameters(queryParameters))
   341  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   342  }
   343  
   344  // GetSender sends the Get request. The method will close the
   345  // http.Response Body if it receives an error.
   346  func (client IotDpsResourceClient) GetSender(req *http.Request) (*http.Response, error) {
   347  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   348  }
   349  
   350  // GetResponder handles the response to the Get request. The method always
   351  // closes the http.Response Body.
   352  func (client IotDpsResourceClient) GetResponder(resp *http.Response) (result ProvisioningServiceDescription, err error) {
   353  	err = autorest.Respond(
   354  		resp,
   355  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   356  		autorest.ByUnmarshallingJSON(&result),
   357  		autorest.ByClosing())
   358  	result.Response = autorest.Response{Response: resp}
   359  	return
   360  }
   361  
   362  // GetOperationResult gets the status of a long running operation, such as create, update or delete a provisioning
   363  // service.
   364  // Parameters:
   365  // operationID - operation id corresponding to long running operation. Use this to poll for the status.
   366  // resourceGroupName - resource group identifier.
   367  // provisioningServiceName - name of provisioning service that the operation is running on.
   368  // asyncinfo - async header used to poll on the status of the operation, obtained while creating the long
   369  // running operation.
   370  func (client IotDpsResourceClient) GetOperationResult(ctx context.Context, operationID string, resourceGroupName string, provisioningServiceName string, asyncinfo string) (result AsyncOperationResult, err error) {
   371  	if tracing.IsEnabled() {
   372  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.GetOperationResult")
   373  		defer func() {
   374  			sc := -1
   375  			if result.Response.Response != nil {
   376  				sc = result.Response.Response.StatusCode
   377  			}
   378  			tracing.EndSpan(ctx, sc, err)
   379  		}()
   380  	}
   381  	req, err := client.GetOperationResultPreparer(ctx, operationID, resourceGroupName, provisioningServiceName, asyncinfo)
   382  	if err != nil {
   383  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "GetOperationResult", nil, "Failure preparing request")
   384  		return
   385  	}
   386  
   387  	resp, err := client.GetOperationResultSender(req)
   388  	if err != nil {
   389  		result.Response = autorest.Response{Response: resp}
   390  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "GetOperationResult", resp, "Failure sending request")
   391  		return
   392  	}
   393  
   394  	result, err = client.GetOperationResultResponder(resp)
   395  	if err != nil {
   396  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "GetOperationResult", resp, "Failure responding to request")
   397  		return
   398  	}
   399  
   400  	return
   401  }
   402  
   403  // GetOperationResultPreparer prepares the GetOperationResult request.
   404  func (client IotDpsResourceClient) GetOperationResultPreparer(ctx context.Context, operationID string, resourceGroupName string, provisioningServiceName string, asyncinfo string) (*http.Request, error) {
   405  	pathParameters := map[string]interface{}{
   406  		"operationId":             autorest.Encode("path", operationID),
   407  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   408  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   409  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   410  	}
   411  
   412  	const APIVersion = "2017-11-15"
   413  	queryParameters := map[string]interface{}{
   414  		"api-version": APIVersion,
   415  		"asyncinfo":   autorest.Encode("query", asyncinfo),
   416  	}
   417  
   418  	preparer := autorest.CreatePreparer(
   419  		autorest.AsGet(),
   420  		autorest.WithBaseURL(client.BaseURI),
   421  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/operationresults/{operationId}", pathParameters),
   422  		autorest.WithQueryParameters(queryParameters))
   423  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   424  }
   425  
   426  // GetOperationResultSender sends the GetOperationResult request. The method will close the
   427  // http.Response Body if it receives an error.
   428  func (client IotDpsResourceClient) GetOperationResultSender(req *http.Request) (*http.Response, error) {
   429  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   430  }
   431  
   432  // GetOperationResultResponder handles the response to the GetOperationResult request. The method always
   433  // closes the http.Response Body.
   434  func (client IotDpsResourceClient) GetOperationResultResponder(resp *http.Response) (result AsyncOperationResult, err error) {
   435  	err = autorest.Respond(
   436  		resp,
   437  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   438  		autorest.ByUnmarshallingJSON(&result),
   439  		autorest.ByClosing())
   440  	result.Response = autorest.Response{Response: resp}
   441  	return
   442  }
   443  
   444  // ListByResourceGroup get a list of all provisioning services in the given resource group.
   445  // Parameters:
   446  // resourceGroupName - resource group identifier.
   447  func (client IotDpsResourceClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result ProvisioningServiceDescriptionListResultPage, err error) {
   448  	if tracing.IsEnabled() {
   449  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListByResourceGroup")
   450  		defer func() {
   451  			sc := -1
   452  			if result.psdlr.Response.Response != nil {
   453  				sc = result.psdlr.Response.Response.StatusCode
   454  			}
   455  			tracing.EndSpan(ctx, sc, err)
   456  		}()
   457  	}
   458  	result.fn = client.listByResourceGroupNextResults
   459  	req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName)
   460  	if err != nil {
   461  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListByResourceGroup", nil, "Failure preparing request")
   462  		return
   463  	}
   464  
   465  	resp, err := client.ListByResourceGroupSender(req)
   466  	if err != nil {
   467  		result.psdlr.Response = autorest.Response{Response: resp}
   468  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListByResourceGroup", resp, "Failure sending request")
   469  		return
   470  	}
   471  
   472  	result.psdlr, err = client.ListByResourceGroupResponder(resp)
   473  	if err != nil {
   474  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListByResourceGroup", resp, "Failure responding to request")
   475  		return
   476  	}
   477  	if result.psdlr.hasNextLink() && result.psdlr.IsEmpty() {
   478  		err = result.NextWithContext(ctx)
   479  		return
   480  	}
   481  
   482  	return
   483  }
   484  
   485  // ListByResourceGroupPreparer prepares the ListByResourceGroup request.
   486  func (client IotDpsResourceClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
   487  	pathParameters := map[string]interface{}{
   488  		"resourceGroupName": autorest.Encode("path", resourceGroupName),
   489  		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
   490  	}
   491  
   492  	const APIVersion = "2017-11-15"
   493  	queryParameters := map[string]interface{}{
   494  		"api-version": APIVersion,
   495  	}
   496  
   497  	preparer := autorest.CreatePreparer(
   498  		autorest.AsGet(),
   499  		autorest.WithBaseURL(client.BaseURI),
   500  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices", pathParameters),
   501  		autorest.WithQueryParameters(queryParameters))
   502  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   503  }
   504  
   505  // ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the
   506  // http.Response Body if it receives an error.
   507  func (client IotDpsResourceClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) {
   508  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   509  }
   510  
   511  // ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always
   512  // closes the http.Response Body.
   513  func (client IotDpsResourceClient) ListByResourceGroupResponder(resp *http.Response) (result ProvisioningServiceDescriptionListResult, err error) {
   514  	err = autorest.Respond(
   515  		resp,
   516  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   517  		autorest.ByUnmarshallingJSON(&result),
   518  		autorest.ByClosing())
   519  	result.Response = autorest.Response{Response: resp}
   520  	return
   521  }
   522  
   523  // listByResourceGroupNextResults retrieves the next set of results, if any.
   524  func (client IotDpsResourceClient) listByResourceGroupNextResults(ctx context.Context, lastResults ProvisioningServiceDescriptionListResult) (result ProvisioningServiceDescriptionListResult, err error) {
   525  	req, err := lastResults.provisioningServiceDescriptionListResultPreparer(ctx)
   526  	if err != nil {
   527  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request")
   528  	}
   529  	if req == nil {
   530  		return
   531  	}
   532  	resp, err := client.ListByResourceGroupSender(req)
   533  	if err != nil {
   534  		result.Response = autorest.Response{Response: resp}
   535  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listByResourceGroupNextResults", resp, "Failure sending next results request")
   536  	}
   537  	result, err = client.ListByResourceGroupResponder(resp)
   538  	if err != nil {
   539  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request")
   540  	}
   541  	return
   542  }
   543  
   544  // ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required.
   545  func (client IotDpsResourceClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result ProvisioningServiceDescriptionListResultIterator, err error) {
   546  	if tracing.IsEnabled() {
   547  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListByResourceGroup")
   548  		defer func() {
   549  			sc := -1
   550  			if result.Response().Response.Response != nil {
   551  				sc = result.page.Response().Response.Response.StatusCode
   552  			}
   553  			tracing.EndSpan(ctx, sc, err)
   554  		}()
   555  	}
   556  	result.page, err = client.ListByResourceGroup(ctx, resourceGroupName)
   557  	return
   558  }
   559  
   560  // ListBySubscription list all the provisioning services for a given subscription id.
   561  func (client IotDpsResourceClient) ListBySubscription(ctx context.Context) (result ProvisioningServiceDescriptionListResultPage, err error) {
   562  	if tracing.IsEnabled() {
   563  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListBySubscription")
   564  		defer func() {
   565  			sc := -1
   566  			if result.psdlr.Response.Response != nil {
   567  				sc = result.psdlr.Response.Response.StatusCode
   568  			}
   569  			tracing.EndSpan(ctx, sc, err)
   570  		}()
   571  	}
   572  	result.fn = client.listBySubscriptionNextResults
   573  	req, err := client.ListBySubscriptionPreparer(ctx)
   574  	if err != nil {
   575  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListBySubscription", nil, "Failure preparing request")
   576  		return
   577  	}
   578  
   579  	resp, err := client.ListBySubscriptionSender(req)
   580  	if err != nil {
   581  		result.psdlr.Response = autorest.Response{Response: resp}
   582  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListBySubscription", resp, "Failure sending request")
   583  		return
   584  	}
   585  
   586  	result.psdlr, err = client.ListBySubscriptionResponder(resp)
   587  	if err != nil {
   588  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListBySubscription", resp, "Failure responding to request")
   589  		return
   590  	}
   591  	if result.psdlr.hasNextLink() && result.psdlr.IsEmpty() {
   592  		err = result.NextWithContext(ctx)
   593  		return
   594  	}
   595  
   596  	return
   597  }
   598  
   599  // ListBySubscriptionPreparer prepares the ListBySubscription request.
   600  func (client IotDpsResourceClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) {
   601  	pathParameters := map[string]interface{}{
   602  		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
   603  	}
   604  
   605  	const APIVersion = "2017-11-15"
   606  	queryParameters := map[string]interface{}{
   607  		"api-version": APIVersion,
   608  	}
   609  
   610  	preparer := autorest.CreatePreparer(
   611  		autorest.AsGet(),
   612  		autorest.WithBaseURL(client.BaseURI),
   613  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Devices/provisioningServices", pathParameters),
   614  		autorest.WithQueryParameters(queryParameters))
   615  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   616  }
   617  
   618  // ListBySubscriptionSender sends the ListBySubscription request. The method will close the
   619  // http.Response Body if it receives an error.
   620  func (client IotDpsResourceClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
   621  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   622  }
   623  
   624  // ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always
   625  // closes the http.Response Body.
   626  func (client IotDpsResourceClient) ListBySubscriptionResponder(resp *http.Response) (result ProvisioningServiceDescriptionListResult, err error) {
   627  	err = autorest.Respond(
   628  		resp,
   629  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   630  		autorest.ByUnmarshallingJSON(&result),
   631  		autorest.ByClosing())
   632  	result.Response = autorest.Response{Response: resp}
   633  	return
   634  }
   635  
   636  // listBySubscriptionNextResults retrieves the next set of results, if any.
   637  func (client IotDpsResourceClient) listBySubscriptionNextResults(ctx context.Context, lastResults ProvisioningServiceDescriptionListResult) (result ProvisioningServiceDescriptionListResult, err error) {
   638  	req, err := lastResults.provisioningServiceDescriptionListResultPreparer(ctx)
   639  	if err != nil {
   640  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request")
   641  	}
   642  	if req == nil {
   643  		return
   644  	}
   645  	resp, err := client.ListBySubscriptionSender(req)
   646  	if err != nil {
   647  		result.Response = autorest.Response{Response: resp}
   648  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listBySubscriptionNextResults", resp, "Failure sending next results request")
   649  	}
   650  	result, err = client.ListBySubscriptionResponder(resp)
   651  	if err != nil {
   652  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request")
   653  	}
   654  	return
   655  }
   656  
   657  // ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required.
   658  func (client IotDpsResourceClient) ListBySubscriptionComplete(ctx context.Context) (result ProvisioningServiceDescriptionListResultIterator, err error) {
   659  	if tracing.IsEnabled() {
   660  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListBySubscription")
   661  		defer func() {
   662  			sc := -1
   663  			if result.Response().Response.Response != nil {
   664  				sc = result.page.Response().Response.Response.StatusCode
   665  			}
   666  			tracing.EndSpan(ctx, sc, err)
   667  		}()
   668  	}
   669  	result.page, err = client.ListBySubscription(ctx)
   670  	return
   671  }
   672  
   673  // ListKeys list the primary and secondary keys for a provisioning service.
   674  // Parameters:
   675  // provisioningServiceName - the provisioning service name to get the shared access keys for.
   676  // resourceGroupName - resource group name
   677  func (client IotDpsResourceClient) ListKeys(ctx context.Context, provisioningServiceName string, resourceGroupName string) (result SharedAccessSignatureAuthorizationRuleListResultPage, err error) {
   678  	if tracing.IsEnabled() {
   679  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListKeys")
   680  		defer func() {
   681  			sc := -1
   682  			if result.sasarlr.Response.Response != nil {
   683  				sc = result.sasarlr.Response.Response.StatusCode
   684  			}
   685  			tracing.EndSpan(ctx, sc, err)
   686  		}()
   687  	}
   688  	result.fn = client.listKeysNextResults
   689  	req, err := client.ListKeysPreparer(ctx, provisioningServiceName, resourceGroupName)
   690  	if err != nil {
   691  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListKeys", nil, "Failure preparing request")
   692  		return
   693  	}
   694  
   695  	resp, err := client.ListKeysSender(req)
   696  	if err != nil {
   697  		result.sasarlr.Response = autorest.Response{Response: resp}
   698  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListKeys", resp, "Failure sending request")
   699  		return
   700  	}
   701  
   702  	result.sasarlr, err = client.ListKeysResponder(resp)
   703  	if err != nil {
   704  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListKeys", resp, "Failure responding to request")
   705  		return
   706  	}
   707  	if result.sasarlr.hasNextLink() && result.sasarlr.IsEmpty() {
   708  		err = result.NextWithContext(ctx)
   709  		return
   710  	}
   711  
   712  	return
   713  }
   714  
   715  // ListKeysPreparer prepares the ListKeys request.
   716  func (client IotDpsResourceClient) ListKeysPreparer(ctx context.Context, provisioningServiceName string, resourceGroupName string) (*http.Request, error) {
   717  	pathParameters := map[string]interface{}{
   718  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   719  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   720  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   721  	}
   722  
   723  	const APIVersion = "2017-11-15"
   724  	queryParameters := map[string]interface{}{
   725  		"api-version": APIVersion,
   726  	}
   727  
   728  	preparer := autorest.CreatePreparer(
   729  		autorest.AsPost(),
   730  		autorest.WithBaseURL(client.BaseURI),
   731  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/listkeys", pathParameters),
   732  		autorest.WithQueryParameters(queryParameters))
   733  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   734  }
   735  
   736  // ListKeysSender sends the ListKeys request. The method will close the
   737  // http.Response Body if it receives an error.
   738  func (client IotDpsResourceClient) ListKeysSender(req *http.Request) (*http.Response, error) {
   739  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   740  }
   741  
   742  // ListKeysResponder handles the response to the ListKeys request. The method always
   743  // closes the http.Response Body.
   744  func (client IotDpsResourceClient) ListKeysResponder(resp *http.Response) (result SharedAccessSignatureAuthorizationRuleListResult, err error) {
   745  	err = autorest.Respond(
   746  		resp,
   747  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   748  		autorest.ByUnmarshallingJSON(&result),
   749  		autorest.ByClosing())
   750  	result.Response = autorest.Response{Response: resp}
   751  	return
   752  }
   753  
   754  // listKeysNextResults retrieves the next set of results, if any.
   755  func (client IotDpsResourceClient) listKeysNextResults(ctx context.Context, lastResults SharedAccessSignatureAuthorizationRuleListResult) (result SharedAccessSignatureAuthorizationRuleListResult, err error) {
   756  	req, err := lastResults.sharedAccessSignatureAuthorizationRuleListResultPreparer(ctx)
   757  	if err != nil {
   758  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listKeysNextResults", nil, "Failure preparing next results request")
   759  	}
   760  	if req == nil {
   761  		return
   762  	}
   763  	resp, err := client.ListKeysSender(req)
   764  	if err != nil {
   765  		result.Response = autorest.Response{Response: resp}
   766  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listKeysNextResults", resp, "Failure sending next results request")
   767  	}
   768  	result, err = client.ListKeysResponder(resp)
   769  	if err != nil {
   770  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listKeysNextResults", resp, "Failure responding to next results request")
   771  	}
   772  	return
   773  }
   774  
   775  // ListKeysComplete enumerates all values, automatically crossing page boundaries as required.
   776  func (client IotDpsResourceClient) ListKeysComplete(ctx context.Context, provisioningServiceName string, resourceGroupName string) (result SharedAccessSignatureAuthorizationRuleListResultIterator, err error) {
   777  	if tracing.IsEnabled() {
   778  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListKeys")
   779  		defer func() {
   780  			sc := -1
   781  			if result.Response().Response.Response != nil {
   782  				sc = result.page.Response().Response.Response.StatusCode
   783  			}
   784  			tracing.EndSpan(ctx, sc, err)
   785  		}()
   786  	}
   787  	result.page, err = client.ListKeys(ctx, provisioningServiceName, resourceGroupName)
   788  	return
   789  }
   790  
   791  // ListKeysForKeyName list primary and secondary keys for a specific key name
   792  // Parameters:
   793  // provisioningServiceName - name of the provisioning service.
   794  // keyName - logical key name to get key-values for.
   795  // resourceGroupName - the name of the resource group that contains the provisioning service.
   796  func (client IotDpsResourceClient) ListKeysForKeyName(ctx context.Context, provisioningServiceName string, keyName string, resourceGroupName string) (result SharedAccessSignatureAuthorizationRuleAccessRightsDescription, err error) {
   797  	if tracing.IsEnabled() {
   798  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListKeysForKeyName")
   799  		defer func() {
   800  			sc := -1
   801  			if result.Response.Response != nil {
   802  				sc = result.Response.Response.StatusCode
   803  			}
   804  			tracing.EndSpan(ctx, sc, err)
   805  		}()
   806  	}
   807  	req, err := client.ListKeysForKeyNamePreparer(ctx, provisioningServiceName, keyName, resourceGroupName)
   808  	if err != nil {
   809  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListKeysForKeyName", nil, "Failure preparing request")
   810  		return
   811  	}
   812  
   813  	resp, err := client.ListKeysForKeyNameSender(req)
   814  	if err != nil {
   815  		result.Response = autorest.Response{Response: resp}
   816  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListKeysForKeyName", resp, "Failure sending request")
   817  		return
   818  	}
   819  
   820  	result, err = client.ListKeysForKeyNameResponder(resp)
   821  	if err != nil {
   822  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListKeysForKeyName", resp, "Failure responding to request")
   823  		return
   824  	}
   825  
   826  	return
   827  }
   828  
   829  // ListKeysForKeyNamePreparer prepares the ListKeysForKeyName request.
   830  func (client IotDpsResourceClient) ListKeysForKeyNamePreparer(ctx context.Context, provisioningServiceName string, keyName string, resourceGroupName string) (*http.Request, error) {
   831  	pathParameters := map[string]interface{}{
   832  		"keyName":                 autorest.Encode("path", keyName),
   833  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   834  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   835  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   836  	}
   837  
   838  	const APIVersion = "2017-11-15"
   839  	queryParameters := map[string]interface{}{
   840  		"api-version": APIVersion,
   841  	}
   842  
   843  	preparer := autorest.CreatePreparer(
   844  		autorest.AsPost(),
   845  		autorest.WithBaseURL(client.BaseURI),
   846  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/keys/{keyName}/listkeys", pathParameters),
   847  		autorest.WithQueryParameters(queryParameters))
   848  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   849  }
   850  
   851  // ListKeysForKeyNameSender sends the ListKeysForKeyName request. The method will close the
   852  // http.Response Body if it receives an error.
   853  func (client IotDpsResourceClient) ListKeysForKeyNameSender(req *http.Request) (*http.Response, error) {
   854  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   855  }
   856  
   857  // ListKeysForKeyNameResponder handles the response to the ListKeysForKeyName request. The method always
   858  // closes the http.Response Body.
   859  func (client IotDpsResourceClient) ListKeysForKeyNameResponder(resp *http.Response) (result SharedAccessSignatureAuthorizationRuleAccessRightsDescription, err error) {
   860  	err = autorest.Respond(
   861  		resp,
   862  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   863  		autorest.ByUnmarshallingJSON(&result),
   864  		autorest.ByClosing())
   865  	result.Response = autorest.Response{Response: resp}
   866  	return
   867  }
   868  
   869  // ListValidSkus gets the list of valid SKUs and tiers for a provisioning service.
   870  // Parameters:
   871  // provisioningServiceName - name of provisioning service.
   872  // resourceGroupName - name of resource group.
   873  func (client IotDpsResourceClient) ListValidSkus(ctx context.Context, provisioningServiceName string, resourceGroupName string) (result IotDpsSkuDefinitionListResultPage, err error) {
   874  	if tracing.IsEnabled() {
   875  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListValidSkus")
   876  		defer func() {
   877  			sc := -1
   878  			if result.idsdlr.Response.Response != nil {
   879  				sc = result.idsdlr.Response.Response.StatusCode
   880  			}
   881  			tracing.EndSpan(ctx, sc, err)
   882  		}()
   883  	}
   884  	result.fn = client.listValidSkusNextResults
   885  	req, err := client.ListValidSkusPreparer(ctx, provisioningServiceName, resourceGroupName)
   886  	if err != nil {
   887  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListValidSkus", nil, "Failure preparing request")
   888  		return
   889  	}
   890  
   891  	resp, err := client.ListValidSkusSender(req)
   892  	if err != nil {
   893  		result.idsdlr.Response = autorest.Response{Response: resp}
   894  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListValidSkus", resp, "Failure sending request")
   895  		return
   896  	}
   897  
   898  	result.idsdlr, err = client.ListValidSkusResponder(resp)
   899  	if err != nil {
   900  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "ListValidSkus", resp, "Failure responding to request")
   901  		return
   902  	}
   903  	if result.idsdlr.hasNextLink() && result.idsdlr.IsEmpty() {
   904  		err = result.NextWithContext(ctx)
   905  		return
   906  	}
   907  
   908  	return
   909  }
   910  
   911  // ListValidSkusPreparer prepares the ListValidSkus request.
   912  func (client IotDpsResourceClient) ListValidSkusPreparer(ctx context.Context, provisioningServiceName string, resourceGroupName string) (*http.Request, error) {
   913  	pathParameters := map[string]interface{}{
   914  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   915  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   916  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   917  	}
   918  
   919  	const APIVersion = "2017-11-15"
   920  	queryParameters := map[string]interface{}{
   921  		"api-version": APIVersion,
   922  	}
   923  
   924  	preparer := autorest.CreatePreparer(
   925  		autorest.AsGet(),
   926  		autorest.WithBaseURL(client.BaseURI),
   927  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/skus", pathParameters),
   928  		autorest.WithQueryParameters(queryParameters))
   929  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   930  }
   931  
   932  // ListValidSkusSender sends the ListValidSkus request. The method will close the
   933  // http.Response Body if it receives an error.
   934  func (client IotDpsResourceClient) ListValidSkusSender(req *http.Request) (*http.Response, error) {
   935  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   936  }
   937  
   938  // ListValidSkusResponder handles the response to the ListValidSkus request. The method always
   939  // closes the http.Response Body.
   940  func (client IotDpsResourceClient) ListValidSkusResponder(resp *http.Response) (result IotDpsSkuDefinitionListResult, err error) {
   941  	err = autorest.Respond(
   942  		resp,
   943  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   944  		autorest.ByUnmarshallingJSON(&result),
   945  		autorest.ByClosing())
   946  	result.Response = autorest.Response{Response: resp}
   947  	return
   948  }
   949  
   950  // listValidSkusNextResults retrieves the next set of results, if any.
   951  func (client IotDpsResourceClient) listValidSkusNextResults(ctx context.Context, lastResults IotDpsSkuDefinitionListResult) (result IotDpsSkuDefinitionListResult, err error) {
   952  	req, err := lastResults.iotDpsSkuDefinitionListResultPreparer(ctx)
   953  	if err != nil {
   954  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listValidSkusNextResults", nil, "Failure preparing next results request")
   955  	}
   956  	if req == nil {
   957  		return
   958  	}
   959  	resp, err := client.ListValidSkusSender(req)
   960  	if err != nil {
   961  		result.Response = autorest.Response{Response: resp}
   962  		return result, autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listValidSkusNextResults", resp, "Failure sending next results request")
   963  	}
   964  	result, err = client.ListValidSkusResponder(resp)
   965  	if err != nil {
   966  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "listValidSkusNextResults", resp, "Failure responding to next results request")
   967  	}
   968  	return
   969  }
   970  
   971  // ListValidSkusComplete enumerates all values, automatically crossing page boundaries as required.
   972  func (client IotDpsResourceClient) ListValidSkusComplete(ctx context.Context, provisioningServiceName string, resourceGroupName string) (result IotDpsSkuDefinitionListResultIterator, err error) {
   973  	if tracing.IsEnabled() {
   974  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.ListValidSkus")
   975  		defer func() {
   976  			sc := -1
   977  			if result.Response().Response.Response != nil {
   978  				sc = result.page.Response().Response.Response.StatusCode
   979  			}
   980  			tracing.EndSpan(ctx, sc, err)
   981  		}()
   982  	}
   983  	result.page, err = client.ListValidSkus(ctx, provisioningServiceName, resourceGroupName)
   984  	return
   985  }
   986  
   987  // Update update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method
   988  // Parameters:
   989  // resourceGroupName - resource group identifier.
   990  // provisioningServiceName - name of provisioning service to create or update.
   991  // provisioningServiceTags - updated tag information to set into the provisioning service instance.
   992  func (client IotDpsResourceClient) Update(ctx context.Context, resourceGroupName string, provisioningServiceName string, provisioningServiceTags TagsResource) (result IotDpsResourceUpdateFuture, err error) {
   993  	if tracing.IsEnabled() {
   994  		ctx = tracing.StartSpan(ctx, fqdn+"/IotDpsResourceClient.Update")
   995  		defer func() {
   996  			sc := -1
   997  			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
   998  				sc = result.FutureAPI.Response().StatusCode
   999  			}
  1000  			tracing.EndSpan(ctx, sc, err)
  1001  		}()
  1002  	}
  1003  	req, err := client.UpdatePreparer(ctx, resourceGroupName, provisioningServiceName, provisioningServiceTags)
  1004  	if err != nil {
  1005  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Update", nil, "Failure preparing request")
  1006  		return
  1007  	}
  1008  
  1009  	result, err = client.UpdateSender(req)
  1010  	if err != nil {
  1011  		err = autorest.NewErrorWithError(err, "iothub.IotDpsResourceClient", "Update", result.Response(), "Failure sending request")
  1012  		return
  1013  	}
  1014  
  1015  	return
  1016  }
  1017  
  1018  // UpdatePreparer prepares the Update request.
  1019  func (client IotDpsResourceClient) UpdatePreparer(ctx context.Context, resourceGroupName string, provisioningServiceName string, provisioningServiceTags TagsResource) (*http.Request, error) {
  1020  	pathParameters := map[string]interface{}{
  1021  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
  1022  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
  1023  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
  1024  	}
  1025  
  1026  	const APIVersion = "2017-11-15"
  1027  	queryParameters := map[string]interface{}{
  1028  		"api-version": APIVersion,
  1029  	}
  1030  
  1031  	preparer := autorest.CreatePreparer(
  1032  		autorest.AsContentType("application/json; charset=utf-8"),
  1033  		autorest.AsPatch(),
  1034  		autorest.WithBaseURL(client.BaseURI),
  1035  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}", pathParameters),
  1036  		autorest.WithJSON(provisioningServiceTags),
  1037  		autorest.WithQueryParameters(queryParameters))
  1038  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
  1039  }
  1040  
  1041  // UpdateSender sends the Update request. The method will close the
  1042  // http.Response Body if it receives an error.
  1043  func (client IotDpsResourceClient) UpdateSender(req *http.Request) (future IotDpsResourceUpdateFuture, err error) {
  1044  	var resp *http.Response
  1045  	future.FutureAPI = &azure.Future{}
  1046  	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
  1047  	if err != nil {
  1048  		return
  1049  	}
  1050  	var azf azure.Future
  1051  	azf, err = azure.NewFutureFromResponse(resp)
  1052  	future.FutureAPI = &azf
  1053  	future.Result = future.result
  1054  	return
  1055  }
  1056  
  1057  // UpdateResponder handles the response to the Update request. The method always
  1058  // closes the http.Response Body.
  1059  func (client IotDpsResourceClient) UpdateResponder(resp *http.Response) (result ProvisioningServiceDescription, err error) {
  1060  	err = autorest.Respond(
  1061  		resp,
  1062  		azure.WithErrorUnlessStatusCode(http.StatusOK),
  1063  		autorest.ByUnmarshallingJSON(&result),
  1064  		autorest.ByClosing())
  1065  	result.Response = autorest.Response{Response: resp}
  1066  	return
  1067  }
  1068  

View as plain text