...

Source file src/github.com/Azure/azure-sdk-for-go/services/preview/provisioningservices/mgmt/2017-08-21-preview/iothub/iotdpsresource.go

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

View as plain text