...

Source file src/github.com/Azure/azure-sdk-for-go/services/provisioningservices/mgmt/2017-11-15/iothub/dpscertificate.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/date"
    14  	"github.com/Azure/go-autorest/autorest/validation"
    15  	"github.com/Azure/go-autorest/tracing"
    16  	"net/http"
    17  )
    18  
    19  // DpsCertificateClient is the API for using the Azure IoT Hub Device Provisioning Service features.
    20  type DpsCertificateClient struct {
    21  	BaseClient
    22  }
    23  
    24  // NewDpsCertificateClient creates an instance of the DpsCertificateClient client.
    25  func NewDpsCertificateClient(subscriptionID string) DpsCertificateClient {
    26  	return NewDpsCertificateClientWithBaseURI(DefaultBaseURI, subscriptionID)
    27  }
    28  
    29  // NewDpsCertificateClientWithBaseURI creates an instance of the DpsCertificateClient client using a custom endpoint.
    30  // Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
    31  func NewDpsCertificateClientWithBaseURI(baseURI string, subscriptionID string) DpsCertificateClient {
    32  	return DpsCertificateClient{NewWithBaseURI(baseURI, subscriptionID)}
    33  }
    34  
    35  // CreateOrUpdate add new certificate or update an existing certificate.
    36  // Parameters:
    37  // resourceGroupName - resource group identifier.
    38  // provisioningServiceName - the name of the provisioning service.
    39  // certificateName - the name of the certificate create or update.
    40  // certificateDescription - the certificate body.
    41  // ifMatch - eTag of the certificate. This is required to update an existing certificate, and ignored while
    42  // creating a brand new certificate.
    43  func (client DpsCertificateClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, provisioningServiceName string, certificateName string, certificateDescription CertificateBodyDescription, ifMatch string) (result CertificateResponse, err error) {
    44  	if tracing.IsEnabled() {
    45  		ctx = tracing.StartSpan(ctx, fqdn+"/DpsCertificateClient.CreateOrUpdate")
    46  		defer func() {
    47  			sc := -1
    48  			if result.Response.Response != nil {
    49  				sc = result.Response.Response.StatusCode
    50  			}
    51  			tracing.EndSpan(ctx, sc, err)
    52  		}()
    53  	}
    54  	if err := validation.Validate([]validation.Validation{
    55  		{TargetValue: certificateName,
    56  			Constraints: []validation.Constraint{{Target: "certificateName", Name: validation.MaxLength, Rule: 256, Chain: nil}}}}); err != nil {
    57  		return result, validation.NewError("iothub.DpsCertificateClient", "CreateOrUpdate", err.Error())
    58  	}
    59  
    60  	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch)
    61  	if err != nil {
    62  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "CreateOrUpdate", nil, "Failure preparing request")
    63  		return
    64  	}
    65  
    66  	resp, err := client.CreateOrUpdateSender(req)
    67  	if err != nil {
    68  		result.Response = autorest.Response{Response: resp}
    69  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "CreateOrUpdate", resp, "Failure sending request")
    70  		return
    71  	}
    72  
    73  	result, err = client.CreateOrUpdateResponder(resp)
    74  	if err != nil {
    75  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "CreateOrUpdate", resp, "Failure responding to request")
    76  		return
    77  	}
    78  
    79  	return
    80  }
    81  
    82  // CreateOrUpdatePreparer prepares the CreateOrUpdate request.
    83  func (client DpsCertificateClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, provisioningServiceName string, certificateName string, certificateDescription CertificateBodyDescription, ifMatch string) (*http.Request, error) {
    84  	pathParameters := map[string]interface{}{
    85  		"certificateName":         autorest.Encode("path", certificateName),
    86  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
    87  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
    88  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
    89  	}
    90  
    91  	const APIVersion = "2017-11-15"
    92  	queryParameters := map[string]interface{}{
    93  		"api-version": APIVersion,
    94  	}
    95  
    96  	preparer := autorest.CreatePreparer(
    97  		autorest.AsContentType("application/json; charset=utf-8"),
    98  		autorest.AsPut(),
    99  		autorest.WithBaseURL(client.BaseURI),
   100  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}", pathParameters),
   101  		autorest.WithJSON(certificateDescription),
   102  		autorest.WithQueryParameters(queryParameters))
   103  	if len(ifMatch) > 0 {
   104  		preparer = autorest.DecoratePreparer(preparer,
   105  			autorest.WithHeader("If-Match", autorest.String(ifMatch)))
   106  	}
   107  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   108  }
   109  
   110  // CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
   111  // http.Response Body if it receives an error.
   112  func (client DpsCertificateClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
   113  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   114  }
   115  
   116  // CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
   117  // closes the http.Response Body.
   118  func (client DpsCertificateClient) CreateOrUpdateResponder(resp *http.Response) (result CertificateResponse, err error) {
   119  	err = autorest.Respond(
   120  		resp,
   121  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   122  		autorest.ByUnmarshallingJSON(&result),
   123  		autorest.ByClosing())
   124  	result.Response = autorest.Response{Response: resp}
   125  	return
   126  }
   127  
   128  // Delete deletes the specified certificate associated with the Provisioning Service
   129  // Parameters:
   130  // resourceGroupName - resource group identifier.
   131  // ifMatch - eTag of the certificate
   132  // provisioningServiceName - the name of the provisioning service.
   133  // certificateName - this is a mandatory field, and is the logical name of the certificate that the
   134  // provisioning service will access by.
   135  // certificatename - this is optional, and it is the Common Name of the certificate.
   136  // certificaterawBytes - raw data within the certificate.
   137  // certificateisVerified - indicates if certificate has been verified by owner of the private key.
   138  // certificatepurpose - a description that mentions the purpose of the certificate.
   139  // certificatecreated - time the certificate is created.
   140  // certificatelastUpdated - time the certificate is last updated.
   141  // certificatehasPrivateKey - indicates if the certificate contains a private key.
   142  // certificatenonce - random number generated to indicate Proof of Possession.
   143  func (client DpsCertificateClient) Delete(ctx context.Context, resourceGroupName string, ifMatch string, provisioningServiceName string, certificateName string, certificatename string, certificaterawBytes []byte, certificateisVerified *bool, certificatepurpose CertificatePurpose, certificatecreated *date.Time, certificatelastUpdated *date.Time, certificatehasPrivateKey *bool, certificatenonce string) (result autorest.Response, err error) {
   144  	if tracing.IsEnabled() {
   145  		ctx = tracing.StartSpan(ctx, fqdn+"/DpsCertificateClient.Delete")
   146  		defer func() {
   147  			sc := -1
   148  			if result.Response != nil {
   149  				sc = result.Response.StatusCode
   150  			}
   151  			tracing.EndSpan(ctx, sc, err)
   152  		}()
   153  	}
   154  	req, err := client.DeletePreparer(ctx, resourceGroupName, ifMatch, provisioningServiceName, certificateName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce)
   155  	if err != nil {
   156  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "Delete", nil, "Failure preparing request")
   157  		return
   158  	}
   159  
   160  	resp, err := client.DeleteSender(req)
   161  	if err != nil {
   162  		result.Response = resp
   163  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "Delete", resp, "Failure sending request")
   164  		return
   165  	}
   166  
   167  	result, err = client.DeleteResponder(resp)
   168  	if err != nil {
   169  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "Delete", resp, "Failure responding to request")
   170  		return
   171  	}
   172  
   173  	return
   174  }
   175  
   176  // DeletePreparer prepares the Delete request.
   177  func (client DpsCertificateClient) DeletePreparer(ctx context.Context, resourceGroupName string, ifMatch string, provisioningServiceName string, certificateName string, certificatename string, certificaterawBytes []byte, certificateisVerified *bool, certificatepurpose CertificatePurpose, certificatecreated *date.Time, certificatelastUpdated *date.Time, certificatehasPrivateKey *bool, certificatenonce string) (*http.Request, error) {
   178  	pathParameters := map[string]interface{}{
   179  		"certificateName":         autorest.Encode("path", certificateName),
   180  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   181  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   182  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   183  	}
   184  
   185  	const APIVersion = "2017-11-15"
   186  	queryParameters := map[string]interface{}{
   187  		"api-version": APIVersion,
   188  	}
   189  	if len(certificatename) > 0 {
   190  		queryParameters["certificate.name"] = autorest.Encode("query", certificatename)
   191  	}
   192  	if certificaterawBytes != nil && len(certificaterawBytes) > 0 {
   193  		queryParameters["certificate.rawBytes"] = autorest.Encode("query", certificaterawBytes)
   194  	}
   195  	if certificateisVerified != nil {
   196  		queryParameters["certificate.isVerified"] = autorest.Encode("query", *certificateisVerified)
   197  	}
   198  	if len(string(certificatepurpose)) > 0 {
   199  		queryParameters["certificate.purpose"] = autorest.Encode("query", certificatepurpose)
   200  	}
   201  	if certificatecreated != nil {
   202  		queryParameters["certificate.created"] = autorest.Encode("query", *certificatecreated)
   203  	}
   204  	if certificatelastUpdated != nil {
   205  		queryParameters["certificate.lastUpdated"] = autorest.Encode("query", *certificatelastUpdated)
   206  	}
   207  	if certificatehasPrivateKey != nil {
   208  		queryParameters["certificate.hasPrivateKey"] = autorest.Encode("query", *certificatehasPrivateKey)
   209  	}
   210  	if len(certificatenonce) > 0 {
   211  		queryParameters["certificate.nonce"] = autorest.Encode("query", certificatenonce)
   212  	}
   213  
   214  	preparer := autorest.CreatePreparer(
   215  		autorest.AsDelete(),
   216  		autorest.WithBaseURL(client.BaseURI),
   217  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}", pathParameters),
   218  		autorest.WithQueryParameters(queryParameters),
   219  		autorest.WithHeader("If-Match", autorest.String(ifMatch)))
   220  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   221  }
   222  
   223  // DeleteSender sends the Delete request. The method will close the
   224  // http.Response Body if it receives an error.
   225  func (client DpsCertificateClient) DeleteSender(req *http.Request) (*http.Response, error) {
   226  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   227  }
   228  
   229  // DeleteResponder handles the response to the Delete request. The method always
   230  // closes the http.Response Body.
   231  func (client DpsCertificateClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
   232  	err = autorest.Respond(
   233  		resp,
   234  		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
   235  		autorest.ByClosing())
   236  	result.Response = resp
   237  	return
   238  }
   239  
   240  // GenerateVerificationCode generate verification code for Proof of Possession.
   241  // Parameters:
   242  // certificateName - the mandatory logical name of the certificate, that the provisioning service uses to
   243  // access.
   244  // ifMatch - eTag of the certificate. This is required to update an existing certificate, and ignored while
   245  // creating a brand new certificate.
   246  // resourceGroupName - name of resource group.
   247  // provisioningServiceName - name of provisioning service.
   248  // certificatename - common Name for the certificate.
   249  // certificaterawBytes - raw data of certificate.
   250  // certificateisVerified - indicates if the certificate has been verified by owner of the private key.
   251  // certificatepurpose - description mentioning the purpose of the certificate.
   252  // certificatecreated - certificate creation time.
   253  // certificatelastUpdated - certificate last updated time.
   254  // certificatehasPrivateKey - indicates if the certificate contains private key.
   255  // certificatenonce - random number generated to indicate Proof of Possession.
   256  func (client DpsCertificateClient) GenerateVerificationCode(ctx context.Context, certificateName string, ifMatch string, resourceGroupName string, provisioningServiceName string, certificatename string, certificaterawBytes []byte, certificateisVerified *bool, certificatepurpose CertificatePurpose, certificatecreated *date.Time, certificatelastUpdated *date.Time, certificatehasPrivateKey *bool, certificatenonce string) (result VerificationCodeResponse, err error) {
   257  	if tracing.IsEnabled() {
   258  		ctx = tracing.StartSpan(ctx, fqdn+"/DpsCertificateClient.GenerateVerificationCode")
   259  		defer func() {
   260  			sc := -1
   261  			if result.Response.Response != nil {
   262  				sc = result.Response.Response.StatusCode
   263  			}
   264  			tracing.EndSpan(ctx, sc, err)
   265  		}()
   266  	}
   267  	req, err := client.GenerateVerificationCodePreparer(ctx, certificateName, ifMatch, resourceGroupName, provisioningServiceName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce)
   268  	if err != nil {
   269  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "GenerateVerificationCode", nil, "Failure preparing request")
   270  		return
   271  	}
   272  
   273  	resp, err := client.GenerateVerificationCodeSender(req)
   274  	if err != nil {
   275  		result.Response = autorest.Response{Response: resp}
   276  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "GenerateVerificationCode", resp, "Failure sending request")
   277  		return
   278  	}
   279  
   280  	result, err = client.GenerateVerificationCodeResponder(resp)
   281  	if err != nil {
   282  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "GenerateVerificationCode", resp, "Failure responding to request")
   283  		return
   284  	}
   285  
   286  	return
   287  }
   288  
   289  // GenerateVerificationCodePreparer prepares the GenerateVerificationCode request.
   290  func (client DpsCertificateClient) GenerateVerificationCodePreparer(ctx context.Context, certificateName string, ifMatch string, resourceGroupName string, provisioningServiceName string, certificatename string, certificaterawBytes []byte, certificateisVerified *bool, certificatepurpose CertificatePurpose, certificatecreated *date.Time, certificatelastUpdated *date.Time, certificatehasPrivateKey *bool, certificatenonce string) (*http.Request, error) {
   291  	pathParameters := map[string]interface{}{
   292  		"certificateName":         autorest.Encode("path", certificateName),
   293  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   294  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   295  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   296  	}
   297  
   298  	const APIVersion = "2017-11-15"
   299  	queryParameters := map[string]interface{}{
   300  		"api-version": APIVersion,
   301  	}
   302  	if len(certificatename) > 0 {
   303  		queryParameters["certificate.name"] = autorest.Encode("query", certificatename)
   304  	}
   305  	if certificaterawBytes != nil && len(certificaterawBytes) > 0 {
   306  		queryParameters["certificate.rawBytes"] = autorest.Encode("query", certificaterawBytes)
   307  	}
   308  	if certificateisVerified != nil {
   309  		queryParameters["certificate.isVerified"] = autorest.Encode("query", *certificateisVerified)
   310  	}
   311  	if len(string(certificatepurpose)) > 0 {
   312  		queryParameters["certificate.purpose"] = autorest.Encode("query", certificatepurpose)
   313  	}
   314  	if certificatecreated != nil {
   315  		queryParameters["certificate.created"] = autorest.Encode("query", *certificatecreated)
   316  	}
   317  	if certificatelastUpdated != nil {
   318  		queryParameters["certificate.lastUpdated"] = autorest.Encode("query", *certificatelastUpdated)
   319  	}
   320  	if certificatehasPrivateKey != nil {
   321  		queryParameters["certificate.hasPrivateKey"] = autorest.Encode("query", *certificatehasPrivateKey)
   322  	}
   323  	if len(certificatenonce) > 0 {
   324  		queryParameters["certificate.nonce"] = autorest.Encode("query", certificatenonce)
   325  	}
   326  
   327  	preparer := autorest.CreatePreparer(
   328  		autorest.AsPost(),
   329  		autorest.WithBaseURL(client.BaseURI),
   330  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/generateVerificationCode", pathParameters),
   331  		autorest.WithQueryParameters(queryParameters),
   332  		autorest.WithHeader("If-Match", autorest.String(ifMatch)))
   333  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   334  }
   335  
   336  // GenerateVerificationCodeSender sends the GenerateVerificationCode request. The method will close the
   337  // http.Response Body if it receives an error.
   338  func (client DpsCertificateClient) GenerateVerificationCodeSender(req *http.Request) (*http.Response, error) {
   339  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   340  }
   341  
   342  // GenerateVerificationCodeResponder handles the response to the GenerateVerificationCode request. The method always
   343  // closes the http.Response Body.
   344  func (client DpsCertificateClient) GenerateVerificationCodeResponder(resp *http.Response) (result VerificationCodeResponse, err error) {
   345  	err = autorest.Respond(
   346  		resp,
   347  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   348  		autorest.ByUnmarshallingJSON(&result),
   349  		autorest.ByClosing())
   350  	result.Response = autorest.Response{Response: resp}
   351  	return
   352  }
   353  
   354  // Get get the certificate from the provisioning service.
   355  // Parameters:
   356  // certificateName - name of the certificate to retrieve.
   357  // resourceGroupName - resource group identifier.
   358  // provisioningServiceName - name of the provisioning service the certificate is associated with.
   359  // ifMatch - eTag of the certificate.
   360  func (client DpsCertificateClient) Get(ctx context.Context, certificateName string, resourceGroupName string, provisioningServiceName string, ifMatch string) (result CertificateResponse, err error) {
   361  	if tracing.IsEnabled() {
   362  		ctx = tracing.StartSpan(ctx, fqdn+"/DpsCertificateClient.Get")
   363  		defer func() {
   364  			sc := -1
   365  			if result.Response.Response != nil {
   366  				sc = result.Response.Response.StatusCode
   367  			}
   368  			tracing.EndSpan(ctx, sc, err)
   369  		}()
   370  	}
   371  	req, err := client.GetPreparer(ctx, certificateName, resourceGroupName, provisioningServiceName, ifMatch)
   372  	if err != nil {
   373  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "Get", nil, "Failure preparing request")
   374  		return
   375  	}
   376  
   377  	resp, err := client.GetSender(req)
   378  	if err != nil {
   379  		result.Response = autorest.Response{Response: resp}
   380  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "Get", resp, "Failure sending request")
   381  		return
   382  	}
   383  
   384  	result, err = client.GetResponder(resp)
   385  	if err != nil {
   386  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "Get", resp, "Failure responding to request")
   387  		return
   388  	}
   389  
   390  	return
   391  }
   392  
   393  // GetPreparer prepares the Get request.
   394  func (client DpsCertificateClient) GetPreparer(ctx context.Context, certificateName string, resourceGroupName string, provisioningServiceName string, ifMatch string) (*http.Request, error) {
   395  	pathParameters := map[string]interface{}{
   396  		"certificateName":         autorest.Encode("path", certificateName),
   397  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   398  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   399  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   400  	}
   401  
   402  	const APIVersion = "2017-11-15"
   403  	queryParameters := map[string]interface{}{
   404  		"api-version": APIVersion,
   405  	}
   406  
   407  	preparer := autorest.CreatePreparer(
   408  		autorest.AsGet(),
   409  		autorest.WithBaseURL(client.BaseURI),
   410  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}", pathParameters),
   411  		autorest.WithQueryParameters(queryParameters))
   412  	if len(ifMatch) > 0 {
   413  		preparer = autorest.DecoratePreparer(preparer,
   414  			autorest.WithHeader("If-Match", autorest.String(ifMatch)))
   415  	}
   416  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   417  }
   418  
   419  // GetSender sends the Get request. The method will close the
   420  // http.Response Body if it receives an error.
   421  func (client DpsCertificateClient) GetSender(req *http.Request) (*http.Response, error) {
   422  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   423  }
   424  
   425  // GetResponder handles the response to the Get request. The method always
   426  // closes the http.Response Body.
   427  func (client DpsCertificateClient) GetResponder(resp *http.Response) (result CertificateResponse, err error) {
   428  	err = autorest.Respond(
   429  		resp,
   430  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   431  		autorest.ByUnmarshallingJSON(&result),
   432  		autorest.ByClosing())
   433  	result.Response = autorest.Response{Response: resp}
   434  	return
   435  }
   436  
   437  // List get all the certificates tied to the provisioning service.
   438  // Parameters:
   439  // resourceGroupName - name of resource group.
   440  // provisioningServiceName - name of provisioning service to retrieve certificates for.
   441  func (client DpsCertificateClient) List(ctx context.Context, resourceGroupName string, provisioningServiceName string) (result CertificateListDescription, err error) {
   442  	if tracing.IsEnabled() {
   443  		ctx = tracing.StartSpan(ctx, fqdn+"/DpsCertificateClient.List")
   444  		defer func() {
   445  			sc := -1
   446  			if result.Response.Response != nil {
   447  				sc = result.Response.Response.StatusCode
   448  			}
   449  			tracing.EndSpan(ctx, sc, err)
   450  		}()
   451  	}
   452  	req, err := client.ListPreparer(ctx, resourceGroupName, provisioningServiceName)
   453  	if err != nil {
   454  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "List", nil, "Failure preparing request")
   455  		return
   456  	}
   457  
   458  	resp, err := client.ListSender(req)
   459  	if err != nil {
   460  		result.Response = autorest.Response{Response: resp}
   461  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "List", resp, "Failure sending request")
   462  		return
   463  	}
   464  
   465  	result, err = client.ListResponder(resp)
   466  	if err != nil {
   467  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "List", resp, "Failure responding to request")
   468  		return
   469  	}
   470  
   471  	return
   472  }
   473  
   474  // ListPreparer prepares the List request.
   475  func (client DpsCertificateClient) ListPreparer(ctx context.Context, resourceGroupName string, provisioningServiceName string) (*http.Request, error) {
   476  	pathParameters := map[string]interface{}{
   477  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   478  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   479  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   480  	}
   481  
   482  	const APIVersion = "2017-11-15"
   483  	queryParameters := map[string]interface{}{
   484  		"api-version": APIVersion,
   485  	}
   486  
   487  	preparer := autorest.CreatePreparer(
   488  		autorest.AsGet(),
   489  		autorest.WithBaseURL(client.BaseURI),
   490  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates", pathParameters),
   491  		autorest.WithQueryParameters(queryParameters))
   492  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   493  }
   494  
   495  // ListSender sends the List request. The method will close the
   496  // http.Response Body if it receives an error.
   497  func (client DpsCertificateClient) ListSender(req *http.Request) (*http.Response, error) {
   498  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   499  }
   500  
   501  // ListResponder handles the response to the List request. The method always
   502  // closes the http.Response Body.
   503  func (client DpsCertificateClient) ListResponder(resp *http.Response) (result CertificateListDescription, err error) {
   504  	err = autorest.Respond(
   505  		resp,
   506  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   507  		autorest.ByUnmarshallingJSON(&result),
   508  		autorest.ByClosing())
   509  	result.Response = autorest.Response{Response: resp}
   510  	return
   511  }
   512  
   513  // VerifyCertificate verifies the certificate's private key possession by providing the leaf cert issued by the
   514  // verifying pre uploaded certificate.
   515  // Parameters:
   516  // certificateName - the mandatory logical name of the certificate, that the provisioning service uses to
   517  // access.
   518  // ifMatch - eTag of the certificate.
   519  // request - the name of the certificate
   520  // resourceGroupName - resource group name.
   521  // provisioningServiceName - provisioning service name.
   522  // certificatename - common Name for the certificate.
   523  // certificaterawBytes - raw data of certificate.
   524  // certificateisVerified - indicates if the certificate has been verified by owner of the private key.
   525  // certificatepurpose - describe the purpose of the certificate.
   526  // certificatecreated - certificate creation time.
   527  // certificatelastUpdated - certificate last updated time.
   528  // certificatehasPrivateKey - indicates if the certificate contains private key.
   529  // certificatenonce - random number generated to indicate Proof of Possession.
   530  func (client DpsCertificateClient) VerifyCertificate(ctx context.Context, certificateName string, ifMatch string, request VerificationCodeRequest, resourceGroupName string, provisioningServiceName string, certificatename string, certificaterawBytes []byte, certificateisVerified *bool, certificatepurpose CertificatePurpose, certificatecreated *date.Time, certificatelastUpdated *date.Time, certificatehasPrivateKey *bool, certificatenonce string) (result CertificateResponse, err error) {
   531  	if tracing.IsEnabled() {
   532  		ctx = tracing.StartSpan(ctx, fqdn+"/DpsCertificateClient.VerifyCertificate")
   533  		defer func() {
   534  			sc := -1
   535  			if result.Response.Response != nil {
   536  				sc = result.Response.Response.StatusCode
   537  			}
   538  			tracing.EndSpan(ctx, sc, err)
   539  		}()
   540  	}
   541  	req, err := client.VerifyCertificatePreparer(ctx, certificateName, ifMatch, request, resourceGroupName, provisioningServiceName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce)
   542  	if err != nil {
   543  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "VerifyCertificate", nil, "Failure preparing request")
   544  		return
   545  	}
   546  
   547  	resp, err := client.VerifyCertificateSender(req)
   548  	if err != nil {
   549  		result.Response = autorest.Response{Response: resp}
   550  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "VerifyCertificate", resp, "Failure sending request")
   551  		return
   552  	}
   553  
   554  	result, err = client.VerifyCertificateResponder(resp)
   555  	if err != nil {
   556  		err = autorest.NewErrorWithError(err, "iothub.DpsCertificateClient", "VerifyCertificate", resp, "Failure responding to request")
   557  		return
   558  	}
   559  
   560  	return
   561  }
   562  
   563  // VerifyCertificatePreparer prepares the VerifyCertificate request.
   564  func (client DpsCertificateClient) VerifyCertificatePreparer(ctx context.Context, certificateName string, ifMatch string, request VerificationCodeRequest, resourceGroupName string, provisioningServiceName string, certificatename string, certificaterawBytes []byte, certificateisVerified *bool, certificatepurpose CertificatePurpose, certificatecreated *date.Time, certificatelastUpdated *date.Time, certificatehasPrivateKey *bool, certificatenonce string) (*http.Request, error) {
   565  	pathParameters := map[string]interface{}{
   566  		"certificateName":         autorest.Encode("path", certificateName),
   567  		"provisioningServiceName": autorest.Encode("path", provisioningServiceName),
   568  		"resourceGroupName":       autorest.Encode("path", resourceGroupName),
   569  		"subscriptionId":          autorest.Encode("path", client.SubscriptionID),
   570  	}
   571  
   572  	const APIVersion = "2017-11-15"
   573  	queryParameters := map[string]interface{}{
   574  		"api-version": APIVersion,
   575  	}
   576  	if len(certificatename) > 0 {
   577  		queryParameters["certificate.name"] = autorest.Encode("query", certificatename)
   578  	}
   579  	if certificaterawBytes != nil && len(certificaterawBytes) > 0 {
   580  		queryParameters["certificate.rawBytes"] = autorest.Encode("query", certificaterawBytes)
   581  	}
   582  	if certificateisVerified != nil {
   583  		queryParameters["certificate.isVerified"] = autorest.Encode("query", *certificateisVerified)
   584  	}
   585  	if len(string(certificatepurpose)) > 0 {
   586  		queryParameters["certificate.purpose"] = autorest.Encode("query", certificatepurpose)
   587  	}
   588  	if certificatecreated != nil {
   589  		queryParameters["certificate.created"] = autorest.Encode("query", *certificatecreated)
   590  	}
   591  	if certificatelastUpdated != nil {
   592  		queryParameters["certificate.lastUpdated"] = autorest.Encode("query", *certificatelastUpdated)
   593  	}
   594  	if certificatehasPrivateKey != nil {
   595  		queryParameters["certificate.hasPrivateKey"] = autorest.Encode("query", *certificatehasPrivateKey)
   596  	}
   597  	if len(certificatenonce) > 0 {
   598  		queryParameters["certificate.nonce"] = autorest.Encode("query", certificatenonce)
   599  	}
   600  
   601  	preparer := autorest.CreatePreparer(
   602  		autorest.AsContentType("application/json; charset=utf-8"),
   603  		autorest.AsPost(),
   604  		autorest.WithBaseURL(client.BaseURI),
   605  		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/verify", pathParameters),
   606  		autorest.WithJSON(request),
   607  		autorest.WithQueryParameters(queryParameters),
   608  		autorest.WithHeader("If-Match", autorest.String(ifMatch)))
   609  	return preparer.Prepare((&http.Request{}).WithContext(ctx))
   610  }
   611  
   612  // VerifyCertificateSender sends the VerifyCertificate request. The method will close the
   613  // http.Response Body if it receives an error.
   614  func (client DpsCertificateClient) VerifyCertificateSender(req *http.Request) (*http.Response, error) {
   615  	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
   616  }
   617  
   618  // VerifyCertificateResponder handles the response to the VerifyCertificate request. The method always
   619  // closes the http.Response Body.
   620  func (client DpsCertificateClient) VerifyCertificateResponder(resp *http.Response) (result CertificateResponse, err error) {
   621  	err = autorest.Respond(
   622  		resp,
   623  		azure.WithErrorUnlessStatusCode(http.StatusOK),
   624  		autorest.ByUnmarshallingJSON(&result),
   625  		autorest.ByClosing())
   626  	result.Response = autorest.Response{Response: resp}
   627  	return
   628  }
   629  

View as plain text