/// <summary> /// Sets a secret in a specified key vault. /// </summary> /// <remarks> /// The set operation adds a secret to the Azure Key Vault. If the named secret /// already exists, Azure Key Vault creates a new version of that secret. This /// operation requires the secrets/set permission. /// </remarks> /// <param name="secret">The Secret object containing information about the secret and its properties. The properties secret.Name and secret.Value must be non null.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param> public virtual Response <KeyVaultSecret> SetSecret(KeyVaultSecret secret, CancellationToken cancellationToken = default) { Argument.AssertNotNull(secret, nameof(secret)); using DiagnosticScope scope = _pipeline.CreateScope("Azure.Security.KeyVault.Secrets.SecretClient.SetSecret"); scope.AddAttribute("secret", secret.Name); scope.Start(); try { return(_pipeline.SendRequest(RequestMethod.Put, secret, () => new KeyVaultSecret(), cancellationToken, SecretsPath, secret.Name)); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> /// Sets a secret in a specified key vault. /// </summary> /// <remarks> /// The set operation adds a secret to the Azure Key Vault. If the named secret /// already exists, Azure Key Vault creates a new version of that secret. This /// operation requires the secrets/set permission. /// </remarks> /// <param name="secret">The Secret object containing information about the secret and its properties. The properties secret.Name and secret.Value must be non null.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param> /// <exception cref="ArgumentNullException"><paramref name="secret"/> is null.</exception> /// <exception cref="RequestFailedException">The server returned an error. See <see cref="Exception.Message"/> for details returned from the server.</exception> public virtual async Task <Response <KeyVaultSecret> > SetSecretAsync(KeyVaultSecret secret, CancellationToken cancellationToken = default) { Argument.AssertNotNull(secret, nameof(secret)); using DiagnosticScope scope = _pipeline.CreateScope($"{nameof(SecretClient)}.{nameof(SetSecret)}"); scope.AddAttribute("secret", secret.Name); scope.Start(); try { return(await _pipeline.SendRequestAsync(RequestMethod.Put, secret, () => new KeyVaultSecret(), cancellationToken, SecretsPath, secret.Name).ConfigureAwait(false)); } catch (Exception e) { scope.Failed(e); throw; } }