/// <summary> /// Updates the specific named value. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='serviceName'> /// The name of the API Management service. /// </param> /// <param name='namedValueId'> /// Identifier of the NamedValue. /// </param> /// <param name='parameters'> /// Update parameters. /// </param> /// <param name='ifMatch'> /// ETag of the Entity. ETag should match the current entity state from the /// header response of the GET request or it should be * for unconditional /// update. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <NamedValueContract> BeginUpdateAsync(this INamedValueOperations operations, string resourceGroupName, string serviceName, string namedValueId, NamedValueUpdateParameters parameters, string ifMatch, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, serviceName, namedValueId, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public async Task CreateListUpdateDelete() { Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Playback"); using (MockContext context = MockContext.Start(this.GetType())) { var testBase = new ApiManagementTestBase(context); testBase.TryCreateApiManagementService(); string propertyId = TestUtilities.GenerateName("newproperty"); string secretPropertyId = TestUtilities.GenerateName("secretproperty"); string kvPropertyId = TestUtilities.GenerateName("kvproperty"); try { string propertyDisplayName = TestUtilities.GenerateName("propertydisplay"); string propertyValue = TestUtilities.GenerateName("propertyValue"); var createParameters = new NamedValueCreateContract(propertyDisplayName) { Value = propertyValue }; // create a property var propertyResponse = testBase.client.NamedValue.CreateOrUpdate( testBase.rgName, testBase.serviceName, propertyId, createParameters); ValidateProperty(propertyResponse, testBase, propertyId, propertyDisplayName, propertyValue, false); // get the property var getResponse = testBase.client.NamedValue.Get( testBase.rgName, testBase.serviceName, propertyId); ValidateProperty(propertyResponse, testBase, propertyId, propertyDisplayName, propertyValue, false); // create secret property string secretPropertyDisplayName = TestUtilities.GenerateName("secretPropertydisplay"); string secretPropertyValue = TestUtilities.GenerateName("secretPropertyValue"); List <string> tags = new List <string> { "secret" }; var secretCreateParameters = new NamedValueCreateContract(secretPropertyDisplayName) { Value = secretPropertyValue, Secret = true, Tags = tags }; var secretPropertyResponse = testBase.client.NamedValue.CreateOrUpdate( testBase.rgName, testBase.serviceName, secretPropertyId, secretCreateParameters); ValidateProperty(secretPropertyResponse, testBase, secretPropertyId, secretPropertyDisplayName, secretPropertyValue, true); var secretValueResponse = testBase.client.NamedValue.ListValue( testBase.rgName, testBase.serviceName, secretPropertyId); Assert.Equal(secretPropertyValue, secretValueResponse.Value); //create key vault namedvalue string kvPropertyDisplayName = TestUtilities.GenerateName("kvPropertydisplay"); var kvCreateParameters = new NamedValueCreateContract(kvPropertyDisplayName) { KeyVault = new KeyVaultContractCreateProperties { SecretIdentifier = testBase.testKeyVaultSecretUrl }, Secret = true }; var kvPropertyResponse = testBase.client.NamedValue.CreateOrUpdate( testBase.rgName, testBase.serviceName, kvPropertyId, kvCreateParameters); ValidateProperty(kvPropertyResponse, testBase, kvPropertyId, kvPropertyDisplayName, string.Empty, true); //refresh secret of key vault namedvalue var refreshKvPropertyResponse = testBase.client.NamedValue.RefreshSecret( testBase.rgName, testBase.serviceName, kvPropertyId); Assert.NotNull(refreshKvPropertyResponse); Assert.Equal("Success", refreshKvPropertyResponse.KeyVault.LastStatus.Code); // list the properties var listResponse = testBase.client.NamedValue.ListByService(testBase.rgName, testBase.serviceName, null); Assert.NotNull(listResponse); Assert.Equal(3, listResponse.Count()); // delete a property testBase.client.NamedValue.Delete( testBase.rgName, testBase.serviceName, propertyId, "*"); Assert.Throws <ErrorResponseException>(() => testBase.client.NamedValue.Get(testBase.rgName, testBase.serviceName, propertyId)); // delete kv property testBase.client.NamedValue.Delete( testBase.rgName, testBase.serviceName, kvPropertyId, "*"); Assert.Throws <ErrorResponseException>(() => testBase.client.NamedValue.Get(testBase.rgName, testBase.serviceName, kvPropertyId)); // get the property etag var propertyTag = await testBase.client.NamedValue.GetEntityTagAsync( testBase.rgName, testBase.serviceName, secretPropertyId); Assert.NotNull(propertyTag); Assert.NotNull(propertyTag.ETag); // patch the secret property var updateProperty = new NamedValueUpdateParameters() { Secret = false }; testBase.client.NamedValue.Update( testBase.rgName, testBase.serviceName, secretPropertyId, updateProperty, propertyTag.ETag); // check it is patched var secretResponse = await testBase.client.NamedValue.GetAsync( testBase.rgName, testBase.serviceName, secretPropertyId); ValidateProperty( secretResponse, testBase, secretPropertyId, secretPropertyDisplayName, secretPropertyValue, false); // patch the secret property to kv property var updatekvProperty = new NamedValueUpdateParameters() { KeyVault = new KeyVaultContractCreateProperties { SecretIdentifier = testBase.testKeyVaultSecretUrl }, Secret = true }; // get the property etag var secretpropertyTag = await testBase.client.NamedValue.GetEntityTagAsync( testBase.rgName, testBase.serviceName, secretPropertyId); testBase.client.NamedValue.Update( testBase.rgName, testBase.serviceName, secretPropertyId, updatekvProperty, secretpropertyTag.ETag); // check it is patched var patchkvResponse = await testBase.client.NamedValue.GetAsync( testBase.rgName, testBase.serviceName, secretPropertyId); Assert.NotNull(patchkvResponse); Assert.NotNull(patchkvResponse.KeyVault); Assert.Equal("Success", patchkvResponse.KeyVault.LastStatus.Code); // delete this property testBase.client.NamedValue.Delete( testBase.rgName, testBase.serviceName, secretPropertyId, "*"); Assert.Throws <ErrorResponseException>(() => testBase.client.NamedValue.Get(testBase.rgName, testBase.serviceName, secretPropertyId)); } finally { testBase.client.NamedValue.Delete(testBase.rgName, testBase.serviceName, propertyId, "*"); testBase.client.NamedValue.Delete(testBase.rgName, testBase.serviceName, secretPropertyId, "*"); } } }
/// <summary> /// Updates the specific named value. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='serviceName'> /// The name of the API Management service. /// </param> /// <param name='namedValueId'> /// Identifier of the NamedValue. /// </param> /// <param name='parameters'> /// Update parameters. /// </param> /// <param name='ifMatch'> /// ETag of the Entity. ETag should match the current entity state from the /// header response of the GET request or it should be * for unconditional /// update. /// </param> public static NamedValueContract BeginUpdate(this INamedValueOperations operations, string resourceGroupName, string serviceName, string namedValueId, NamedValueUpdateParameters parameters, string ifMatch) { return(operations.BeginUpdateAsync(resourceGroupName, serviceName, namedValueId, parameters, ifMatch).GetAwaiter().GetResult()); }
public async Task CreateListUpdateDelete() { Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Playback"); using (MockContext context = MockContext.Start(this.GetType())) { var testBase = new ApiManagementTestBase(context); testBase.TryCreateApiManagementService(); string propertyId = TestUtilities.GenerateName("newproperty"); string secretPropertyId = TestUtilities.GenerateName("secretproperty"); try { string propertyDisplayName = TestUtilities.GenerateName("propertydisplay"); string propertyValue = TestUtilities.GenerateName("propertyValue"); var createParameters = new NamedValueCreateContract(propertyDisplayName, propertyValue); // create a property var propertyResponse = testBase.client.NamedValue.CreateOrUpdate( testBase.rgName, testBase.serviceName, propertyId, createParameters); ValidateProperty(propertyResponse, testBase, propertyId, propertyDisplayName, propertyValue, false); // get the property var getResponse = testBase.client.NamedValue.Get( testBase.rgName, testBase.serviceName, propertyId); ValidateProperty(propertyResponse, testBase, propertyId, propertyDisplayName, propertyValue, false); // create secret property string secretPropertyDisplayName = TestUtilities.GenerateName("secretPropertydisplay"); string secretPropertyValue = TestUtilities.GenerateName("secretPropertyValue"); List <string> tags = new List <string> { "secret" }; var secretCreateParameters = new NamedValueCreateContract(secretPropertyDisplayName, secretPropertyValue) { Secret = true, Tags = tags }; var secretPropertyResponse = testBase.client.NamedValue.CreateOrUpdate( testBase.rgName, testBase.serviceName, secretPropertyId, secretCreateParameters); ValidateProperty(secretPropertyResponse, testBase, secretPropertyId, secretPropertyDisplayName, secretPropertyValue, true); var secretValueResponse = testBase.client.NamedValue.ListValue( testBase.rgName, testBase.serviceName, secretPropertyId); Assert.Equal(secretPropertyValue, secretValueResponse.Value); // list the properties var listResponse = testBase.client.NamedValue.ListByService(testBase.rgName, testBase.serviceName, null); Assert.NotNull(listResponse); Assert.Equal(2, listResponse.Count()); // delete a property testBase.client.NamedValue.Delete( testBase.rgName, testBase.serviceName, propertyId, "*"); Assert.Throws <ErrorResponseException>(() => testBase.client.NamedValue.Get(testBase.rgName, testBase.serviceName, propertyId)); // get the property etag var propertyTag = await testBase.client.NamedValue.GetEntityTagAsync( testBase.rgName, testBase.serviceName, secretPropertyId); Assert.NotNull(propertyTag); Assert.NotNull(propertyTag.ETag); // patch the secret property var updateProperty = new NamedValueUpdateParameters() { Secret = false }; testBase.client.NamedValue.Update( testBase.rgName, testBase.serviceName, secretPropertyId, updateProperty, propertyTag.ETag); // check it is patched var secretResponse = await testBase.client.NamedValue.GetAsync( testBase.rgName, testBase.serviceName, secretPropertyId); ValidateProperty( secretResponse, testBase, secretPropertyId, secretPropertyDisplayName, secretPropertyValue, false); // delete this property testBase.client.NamedValue.Delete( testBase.rgName, testBase.serviceName, secretPropertyId, "*"); Assert.Throws <ErrorResponseException>(() => testBase.client.NamedValue.Get(testBase.rgName, testBase.serviceName, secretPropertyId)); } finally { testBase.client.NamedValue.Delete(testBase.rgName, testBase.serviceName, propertyId, "*"); testBase.client.NamedValue.Delete(testBase.rgName, testBase.serviceName, secretPropertyId, "*"); } } }