public virtual SecretCreateOrUpdateOperation CreateOrUpdate(bool waitForCompletion, string secretName, SecretCreateOrUpdateParameters parameters, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(secretName, nameof(secretName)); if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _secretClientDiagnostics.CreateScope("SecretCollection.CreateOrUpdate"); scope.Start(); try { var response = _secretRestClient.CreateOrUpdate(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, secretName, parameters, cancellationToken); var operation = new SecretCreateOrUpdateOperation(ArmClient, response); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public async Task <Response <SecretData> > CreateOrUpdateAsync(string subscriptionId, string resourceGroupName, string vaultName, string secretName, SecretCreateOrUpdateParameters parameters, CancellationToken cancellationToken = default) { if (subscriptionId == null) { throw new ArgumentNullException(nameof(subscriptionId)); } if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (vaultName == null) { throw new ArgumentNullException(nameof(vaultName)); } if (secretName == null) { throw new ArgumentNullException(nameof(secretName)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var message = CreateCreateOrUpdateRequest(subscriptionId, resourceGroupName, vaultName, secretName, parameters); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: case 201: { SecretData value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); value = SecretData.DeserializeSecretData(document.RootElement); return(Response.FromValue(value, message.Response)); }
internal HttpMessage CreateCreateOrUpdateRequest(string subscriptionId, string resourceGroupName, string vaultName, string secretName, SecretCreateOrUpdateParameters parameters) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Put; var uri = new RawRequestUriBuilder(); uri.Reset(endpoint); uri.AppendPath("/subscriptions/", false); uri.AppendPath(subscriptionId, true); uri.AppendPath("/resourceGroups/", false); uri.AppendPath(resourceGroupName, true); uri.AppendPath("/providers/Microsoft.KeyVault/vaults/", false); uri.AppendPath(vaultName, true); uri.AppendPath("/secrets/", false); uri.AppendPath(secretName, true); uri.AppendQuery("api-version", apiVersion, true); request.Uri = uri; request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); var content = new Utf8JsonRequestContent(); content.JsonWriter.WriteObjectValue(parameters); request.Content = content; message.SetProperty("SDKUserAgent", _userAgent); return(message); }
public virtual async Task <ArmOperation <Secret> > CreateOrUpdateAsync(WaitUntil waitUntil, string secretName, SecretCreateOrUpdateParameters parameters, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(secretName, nameof(secretName)); Argument.AssertNotNull(parameters, nameof(parameters)); using var scope = _secretClientDiagnostics.CreateScope("SecretCollection.CreateOrUpdate"); scope.Start(); try { var response = await _secretRestClient.CreateOrUpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, secretName, parameters, cancellationToken).ConfigureAwait(false); var operation = new KeyVaultArmOperation <Secret>(Response.FromValue(new Secret(Client, response), response.GetRawResponse())); if (waitUntil == WaitUntil.Completed) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> /// Create or update a secret in a key vault in the specified subscription. /// NOTE: This API is intended for internal use in ARM deployments. Users /// should use the data-plane REST service for interaction with vault secrets. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the Resource Group to which the vault belongs. /// </param> /// <param name='vaultName'> /// Name of the vault /// </param> /// <param name='secretName'> /// Name of the secret /// </param> /// <param name='parameters'> /// Parameters to create or update the secret /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <Secret> CreateOrUpdateAsync(this ISecretsOperations operations, string resourceGroupName, string vaultName, string secretName, SecretCreateOrUpdateParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, vaultName, secretName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Create or update a secret in a key vault in the specified subscription. /// NOTE: This API is intended for internal use in ARM deployments. Users /// should use the data-plane REST service for interaction with vault secrets. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the Resource Group to which the vault belongs. /// </param> /// <param name='vaultName'> /// Name of the vault /// </param> /// <param name='secretName'> /// Name of the secret /// </param> /// <param name='parameters'> /// Parameters to create or update the secret /// </param> public static Secret CreateOrUpdate(this ISecretsOperations operations, string resourceGroupName, string vaultName, string secretName, SecretCreateOrUpdateParameters parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, vaultName, secretName, parameters).GetAwaiter().GetResult()); }