/// <summary>
 /// Verify certificate's private key possession.
 /// </summary>
 /// <remarks>
 /// Verifies the certificate's private key possession by providing the leaf
 /// cert issued by the verifying pre uploaded certificate.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='certificateName'>
 /// The mandatory logical name of the certificate, that the provisioning
 /// service uses to access.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group name.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Provisioning service name.
 /// </param>
 /// <param name='certificatename'>
 /// Common Name for the certificate.
 /// </param>
 /// <param name='certificaterawBytes'>
 /// Raw data of certificate.
 /// </param>
 /// <param name='certificateisVerified'>
 /// Indicates if the certificate has been verified by owner of the private key.
 /// </param>
 /// <param name='certificatepurpose'>
 /// Describe the purpose of the certificate. Possible values include:
 /// 'clientAuthentication', 'serverAuthentication'
 /// </param>
 /// <param name='certificatecreated'>
 /// Certificate creation time.
 /// </param>
 /// <param name='certificatelastUpdated'>
 /// Certificate last updated time.
 /// </param>
 /// <param name='certificatehasPrivateKey'>
 /// Indicates if the certificate contains private key.
 /// </param>
 /// <param name='certificatenonce'>
 /// Random number generated to indicate Proof of Possession.
 /// </param>
 /// <param name='certificate'>
 /// base-64 representation of X509 certificate .cer file or just .pem file
 /// content.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CertificateResponse> VerifyCertificateAsync(this IDpsCertificateOperations operations, string certificateName, string ifMatch, string resourceGroupName, string provisioningServiceName, string certificatename = default(string), byte[] certificaterawBytes = default(byte[]), bool?certificateisVerified = default(bool?), string certificatepurpose = default(string), System.DateTime?certificatecreated = default(System.DateTime?), System.DateTime?certificatelastUpdated = default(System.DateTime?), bool?certificatehasPrivateKey = default(bool?), string certificatenonce = default(string), string certificate = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.VerifyCertificateWithHttpMessagesAsync(certificateName, ifMatch, resourceGroupName, provisioningServiceName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce, certificate, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Get the certificate from the provisioning service.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='certificateName'>
 /// Name of the certificate to retrieve.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group identifier.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Name of the provisioning service the certificate is associated with.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CertificateResponse> GetAsync(this IDpsCertificateOperations operations, string certificateName, string resourceGroupName, string provisioningServiceName, string ifMatch = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetWithHttpMessagesAsync(certificateName, resourceGroupName, provisioningServiceName, ifMatch, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Get all the certificates tied to the provisioning service.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of resource group.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Name of provisioning service to retrieve certificates for.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CertificateListDescription> ListAsync(this IDpsCertificateOperations operations, string resourceGroupName, string provisioningServiceName, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ListWithHttpMessagesAsync(resourceGroupName, provisioningServiceName, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Verify certificate's private key possession.
 /// </summary>
 /// <remarks>
 /// Verifies the certificate's private key possession by providing the leaf
 /// cert issued by the verifying pre uploaded certificate.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='certificateName'>
 /// The mandatory logical name of the certificate, that the provisioning
 /// service uses to access.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group name.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Provisioning service name.
 /// </param>
 /// <param name='certificatename'>
 /// Common Name for the certificate.
 /// </param>
 /// <param name='certificaterawBytes'>
 /// Raw data of certificate.
 /// </param>
 /// <param name='certificateisVerified'>
 /// Indicates if the certificate has been verified by owner of the private key.
 /// </param>
 /// <param name='certificatepurpose'>
 /// Describe the purpose of the certificate. Possible values include:
 /// 'clientAuthentication', 'serverAuthentication'
 /// </param>
 /// <param name='certificatecreated'>
 /// Certificate creation time.
 /// </param>
 /// <param name='certificatelastUpdated'>
 /// Certificate last updated time.
 /// </param>
 /// <param name='certificatehasPrivateKey'>
 /// Indicates if the certificate contains private key.
 /// </param>
 /// <param name='certificatenonce'>
 /// Random number generated to indicate Proof of Possession.
 /// </param>
 /// <param name='certificate'>
 /// base-64 representation of X509 certificate .cer file or just .pem file
 /// content.
 /// </param>
 public static CertificateResponse VerifyCertificate(this IDpsCertificateOperations operations, string certificateName, string ifMatch, string resourceGroupName, string provisioningServiceName, string certificatename = default(string), byte[] certificaterawBytes = default(byte[]), bool?certificateisVerified = default(bool?), string certificatepurpose = default(string), System.DateTime?certificatecreated = default(System.DateTime?), System.DateTime?certificatelastUpdated = default(System.DateTime?), bool?certificatehasPrivateKey = default(bool?), string certificatenonce = default(string), string certificate = default(string))
 {
     return(operations.VerifyCertificateAsync(certificateName, ifMatch, resourceGroupName, provisioningServiceName, certificatename, certificaterawBytes, certificateisVerified, certificatepurpose, certificatecreated, certificatelastUpdated, certificatehasPrivateKey, certificatenonce, certificate).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Get the certificate from the provisioning service.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='certificateName'>
 /// Name of the certificate to retrieve.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group identifier.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Name of the provisioning service the certificate is associated with.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate.
 /// </param>
 public static CertificateResponse Get(this IDpsCertificateOperations operations, string certificateName, string resourceGroupName, string provisioningServiceName, string ifMatch = default(string))
 {
     return(operations.GetAsync(certificateName, resourceGroupName, provisioningServiceName, ifMatch).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Get all the certificates tied to the provisioning service.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of resource group.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// Name of provisioning service to retrieve certificates for.
 /// </param>
 public static CertificateListDescription List(this IDpsCertificateOperations operations, string resourceGroupName, string provisioningServiceName)
 {
     return(operations.ListAsync(resourceGroupName, provisioningServiceName).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Upload the certificate to the provisioning service.
 /// </summary>
 /// <remarks>
 /// Add new certificate or update an existing certificate.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Resource group identifier.
 /// </param>
 /// <param name='provisioningServiceName'>
 /// The name of the provisioning service.
 /// </param>
 /// <param name='certificateName'>
 /// The name of the certificate create or update.
 /// </param>
 /// <param name='ifMatch'>
 /// ETag of the certificate. This is required to update an existing
 /// certificate, and ignored while creating a brand new certificate.
 /// </param>
 /// <param name='certificate'>
 /// Base-64 representation of the X509 leaf certificate .cer file or just .pem
 /// file content.
 /// </param>
 public static CertificateResponse CreateOrUpdate(this IDpsCertificateOperations operations, string resourceGroupName, string provisioningServiceName, string certificateName, string ifMatch = default(string), string certificate = default(string))
 {
     return(operations.CreateOrUpdateAsync(resourceGroupName, provisioningServiceName, certificateName, ifMatch, certificate).GetAwaiter().GetResult());
 }