diff --git a/eng/mgmt/mgmtmetadata/storagecache_resource-manager.txt b/eng/mgmt/mgmtmetadata/storagecache_resource-manager.txt new file mode 100644 index 000000000000..033018ddd108 --- /dev/null +++ b/eng/mgmt/mgmtmetadata/storagecache_resource-manager.txt @@ -0,0 +1,14 @@ +Installing AutoRest version: latest +AutoRest installed successfully. +Commencing code generation +Generating CSharp code +Executing AutoRest command +cmd.exe /c autorest.cmd https://github.com/Azure/azure-rest-api-specs/blob/master/specification/storagecache/resource-manager/readme.md --csharp --version=latest --reflect-api-versions --csharp.namespace=Microsoft.Azure.Management.StorageCache --csharp.output-folder=C:\Avere\service\azure-sdk-for-net\sdk\storagecache\Microsoft.Azure.Management.StorageCache\src\Generated +2019-11-03 01:10:11 UTC +Azure-rest-api-specs repository information +GitHub fork: Azure +Branch: master +Commit: 42d8ead1da60419364bfa289632e1402c858d05f +AutoRest information +Requested version: latest +Bootstrapper version: autorest@2.0.4283 diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/AzSdk.RP.props b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/AzSdk.RP.props new file mode 100644 index 000000000000..e6bb32fe8f74 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/AzSdk.RP.props @@ -0,0 +1,7 @@ + + + + StorageCache_2019-11-01; + $(PackageTags);$(CommonTags);$(AzureApiTag); + + \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/Microsoft.Azure.Management.StorageCache.sln b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/Microsoft.Azure.Management.StorageCache.sln new file mode 100644 index 000000000000..a3f893ce2ce1 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/Microsoft.Azure.Management.StorageCache.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29306.81 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.Management.StorageCache", "src\Microsoft.Azure.Management.StorageCache.csproj", "{A45B304F-3F45-4D45-8CC8-C3DD45E4783B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.Management.StorageCache.Tests", "tests\Microsoft.Azure.Management.StorageCache.Tests.csproj", "{5E20AB81-9A4E-449D-916F-5175A432613F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A45B304F-3F45-4D45-8CC8-C3DD45E4783B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A45B304F-3F45-4D45-8CC8-C3DD45E4783B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A45B304F-3F45-4D45-8CC8-C3DD45E4783B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A45B304F-3F45-4D45-8CC8-C3DD45E4783B}.Release|Any CPU.Build.0 = Release|Any CPU + {5E20AB81-9A4E-449D-916F-5175A432613F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E20AB81-9A4E-449D-916F-5175A432613F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E20AB81-9A4E-449D-916F-5175A432613F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E20AB81-9A4E-449D-916F-5175A432613F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6C505D51-DB85-434A-9F98-D355E3183AD1} + EndGlobalSection +EndGlobal diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Caches.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Caches.cs new file mode 100644 index 000000000000..25c3d6453970 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Caches.cs @@ -0,0 +1,2053 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Caches operations. + /// + public partial class Caches : IServiceOperations, ICaches + { + /// + /// Initializes a new instance of the Caches class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public Caches(StorageCacheManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the StorageCacheManagementClient + /// + public StorageCacheManagementClient Client { get; private set; } + + /// + /// Returns all Caches the user has access to under a subscription. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.StorageCache/caches").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Returns all Caches the user has access to under a resource group. + /// + /// + /// Target resource group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> ListByResourceGroupWithHttpMessagesAsync(string resourceGroupName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "ListByResourceGroup", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Schedules a Cache for deletion. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> DeleteWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 202) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 204) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Returns a Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Create or update a Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the new Cache. If + /// read-only properties are included, they must match the existing values of + /// those properties. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string cacheName, Cache cache = default(Cache), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cache", cache); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "CreateOrUpdate", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(cache != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(cache, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 201) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 201) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update a Cache instance. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the Cache. If read-only + /// properties are included, they must match the existing values of those + /// properties. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string cacheName, Cache cache = default(Cache), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cache", cache); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(cache != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(cache, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Tells a Cache to write all dirty data to the Storage Target(s). During the + /// flush, clients will see errors returned until the flush is complete. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> FlushWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Flush", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/flush").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 202) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 204) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Tells a Stopped state Cache to transition to Active state. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> StartWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Start", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/start").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 202) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 204) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Tells an Active Cache to transition to Stopped state. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> StopWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Stop", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/stop").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 202) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 204) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Upgrade a Cache's firmware if a new version is available. Otherwise, this + /// operation has no effect. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> UpgradeFirmwareWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "UpgradeFirmware", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/upgrade").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 201 && (int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 201) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 202) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 204) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/CachesExtensions.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/CachesExtensions.cs new file mode 100644 index 000000000000..7aecc4ecdb19 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/CachesExtensions.cs @@ -0,0 +1,425 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for Caches. + /// + public static partial class CachesExtensions + { + /// + /// Returns all Caches the user has access to under a subscription. + /// + /// + /// The operations group for this extension method. + /// + public static CachesListResult List(this ICaches operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Returns all Caches the user has access to under a subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task ListAsync(this ICaches operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Returns all Caches the user has access to under a resource group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + public static CachesListResult ListByResourceGroup(this ICaches operations, string resourceGroupName) + { + return operations.ListByResourceGroupAsync(resourceGroupName).GetAwaiter().GetResult(); + } + + /// + /// Returns all Caches the user has access to under a resource group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// The cancellation token. + /// + public static async Task ListByResourceGroupAsync(this ICaches operations, string resourceGroupName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListByResourceGroupWithHttpMessagesAsync(resourceGroupName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Schedules a Cache for deletion. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static object Delete(this ICaches operations, string resourceGroupName, string cacheName) + { + return operations.DeleteAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Schedules a Cache for deletion. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this ICaches operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DeleteWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Returns a Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static Cache Get(this ICaches operations, string resourceGroupName, string cacheName) + { + return operations.GetAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Returns a Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this ICaches operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Create or update a Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the new Cache. If + /// read-only properties are included, they must match the existing values of + /// those properties. + /// + public static Cache CreateOrUpdate(this ICaches operations, string resourceGroupName, string cacheName, Cache cache = default(Cache)) + { + return operations.CreateOrUpdateAsync(resourceGroupName, cacheName, cache).GetAwaiter().GetResult(); + } + + /// + /// Create or update a Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the new Cache. If + /// read-only properties are included, they must match the existing values of + /// those properties. + /// + /// + /// The cancellation token. + /// + public static async Task CreateOrUpdateAsync(this ICaches operations, string resourceGroupName, string cacheName, Cache cache = default(Cache), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, cacheName, cache, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update a Cache instance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the Cache. If read-only + /// properties are included, they must match the existing values of those + /// properties. + /// + public static Cache Update(this ICaches operations, string resourceGroupName, string cacheName, Cache cache = default(Cache)) + { + return operations.UpdateAsync(resourceGroupName, cacheName, cache).GetAwaiter().GetResult(); + } + + /// + /// Update a Cache instance. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the Cache. If read-only + /// properties are included, they must match the existing values of those + /// properties. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this ICaches operations, string resourceGroupName, string cacheName, Cache cache = default(Cache), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, cacheName, cache, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Tells a Cache to write all dirty data to the Storage Target(s). During the + /// flush, clients will see errors returned until the flush is complete. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static object Flush(this ICaches operations, string resourceGroupName, string cacheName) + { + return operations.FlushAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Tells a Cache to write all dirty data to the Storage Target(s). During the + /// flush, clients will see errors returned until the flush is complete. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task FlushAsync(this ICaches operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.FlushWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Tells a Stopped state Cache to transition to Active state. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static object Start(this ICaches operations, string resourceGroupName, string cacheName) + { + return operations.StartAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Tells a Stopped state Cache to transition to Active state. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task StartAsync(this ICaches operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.StartWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Tells an Active Cache to transition to Stopped state. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static object Stop(this ICaches operations, string resourceGroupName, string cacheName) + { + return operations.StopAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Tells an Active Cache to transition to Stopped state. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task StopAsync(this ICaches operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.StopWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Upgrade a Cache's firmware if a new version is available. Otherwise, this + /// operation has no effect. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static object UpgradeFirmware(this ICaches operations, string resourceGroupName, string cacheName) + { + return operations.UpgradeFirmwareAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Upgrade a Cache's firmware if a new version is available. Otherwise, this + /// operation has no effect. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task UpgradeFirmwareAsync(this ICaches operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.UpgradeFirmwareWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/ICaches.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/ICaches.cs new file mode 100644 index 000000000000..2a2f24468310 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/ICaches.cs @@ -0,0 +1,276 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Caches operations. + /// + public partial interface ICaches + { + /// + /// Returns all Caches the user has access to under a subscription. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Returns all Caches the user has access to under a resource group. + /// + /// + /// Target resource group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> ListByResourceGroupWithHttpMessagesAsync(string resourceGroupName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Schedules a Cache for deletion. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> DeleteWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Returns a Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Create or update a Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the new Cache. + /// If read-only properties are included, they must match the existing + /// values of those properties. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string cacheName, Cache cache = default(Cache), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update a Cache instance. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Object containing the user-selectable properties of the Cache. If + /// read-only properties are included, they must match the existing + /// values of those properties. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string cacheName, Cache cache = default(Cache), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Tells a Cache to write all dirty data to the Storage Target(s). + /// During the flush, clients will see errors returned until the flush + /// is complete. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> FlushWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Tells a Stopped state Cache to transition to Active state. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> StartWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Tells an Active Cache to transition to Stopped state. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> StopWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Upgrade a Cache's firmware if a new version is available. + /// Otherwise, this operation has no effect. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> UpgradeFirmwareWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IOperations.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IOperations.cs new file mode 100644 index 000000000000..352b297c6ada --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IOperations.cs @@ -0,0 +1,41 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Operations operations. + /// + public partial interface IOperations + { + /// + /// Lists all of the available Resource Provider operations. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/ISkus.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/ISkus.cs new file mode 100644 index 000000000000..4deb2156def5 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/ISkus.cs @@ -0,0 +1,42 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Skus operations. + /// + public partial interface ISkus + { + /// + /// Get the list of StorageCache.Cache SKUs available to this + /// subscription. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IStorageCacheManagementClient.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IStorageCacheManagementClient.cs new file mode 100644 index 000000000000..2ea6ba52e2fd --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IStorageCacheManagementClient.cs @@ -0,0 +1,80 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + + /// + /// A Storage Cache provides scalable caching service for NAS clients, + /// serving data from either NFSv3 or Blob at-rest storage (referred to as + /// "Storage Targets"). These operations allow you to manage Caches. + /// + public partial interface IStorageCacheManagementClient : System.IDisposable + { + /// + /// The base URI of the service. + /// + System.Uri BaseUri { get; set; } + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// Subscription credentials which uniquely identify Microsoft Azure + /// subscription. The subscription ID forms part of the URI for every + /// service call. + /// + string SubscriptionId { get; set; } + + /// + /// Client API version. + /// + string ApiVersion { get; set; } + + /// + /// Subscription credentials which uniquely identify client + /// subscription. + /// + ServiceClientCredentials Credentials { get; } + + + /// + /// Gets the IOperations. + /// + IOperations Operations { get; } + + /// + /// Gets the ISkus. + /// + ISkus Skus { get; } + + /// + /// Gets the IUsageModels. + /// + IUsageModels UsageModels { get; } + + /// + /// Gets the ICaches. + /// + ICaches Caches { get; } + + /// + /// Gets the IStorageTargets. + /// + IStorageTargets StorageTargets { get; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IStorageTargets.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IStorageTargets.cs new file mode 100644 index 000000000000..8655fd9f3d14 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IStorageTargets.cs @@ -0,0 +1,142 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// StorageTargets operations. + /// + public partial interface IStorageTargets + { + /// + /// Returns a list of Storage Targets for the specified Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> ListByCacheWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Removes a Storage Target from a Cache. This operation is allowed at + /// any time, but if the Cache is down or unhealthy, the actual removal + /// of the Storage Target may be delayed until the Cache is healthy + /// again. Note that if the Cache has data to flush to the Storage + /// Target, the data will be flushed before the Storage Target will be + /// deleted. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of Storage Target. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> DeleteWithHttpMessagesAsync(string resourceGroupName, string cacheName, string storageTargetName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Returns a Storage Target from a Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string resourceGroupName, string cacheName, string storageTargetName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Create or update a Storage Target. This operation is allowed at any + /// time, but if the Cache is down or unhealthy, the actual + /// creation/modification of the Storage Target may be delayed until + /// the Cache is healthy again. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// Object containing the definition of a Storage Target. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string cacheName, string storageTargetName, StorageTarget storagetarget = default(StorageTarget), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IUsageModels.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IUsageModels.cs new file mode 100644 index 000000000000..21ee25bccee6 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/IUsageModels.cs @@ -0,0 +1,41 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// UsageModels operations. + /// + public partial interface IUsageModels + { + /// + /// Get the list of Cache Usage Models available to this subscription. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperation.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperation.cs new file mode 100644 index 000000000000..3c2c637efd09 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperation.cs @@ -0,0 +1,58 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// REST API operation description: see + /// https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/openapi-authoring-automated-guidelines.md#r3023-operationsapiimplementation + /// + public partial class ApiOperation + { + /// + /// Initializes a new instance of the ApiOperation class. + /// + public ApiOperation() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ApiOperation class. + /// + /// The object that represents the + /// operation. + /// Operation name: + /// {provider}/{resource}/{operation} + public ApiOperation(ApiOperationDisplay display = default(ApiOperationDisplay), string name = default(string)) + { + Display = display; + Name = name; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the object that represents the operation. + /// + [JsonProperty(PropertyName = "display")] + public ApiOperationDisplay Display { get; set; } + + /// + /// Gets or sets operation name: {provider}/{resource}/{operation} + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperationDisplay.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperationDisplay.cs new file mode 100644 index 000000000000..f9114dacbf64 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperationDisplay.cs @@ -0,0 +1,67 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// The object that represents the operation. + /// + public partial class ApiOperationDisplay + { + /// + /// Initializes a new instance of the ApiOperationDisplay class. + /// + public ApiOperationDisplay() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ApiOperationDisplay class. + /// + /// Operation type: Read, write, delete, + /// etc. + /// Service provider: + /// Microsoft.StorageCache + /// Resource on which the operation is + /// performed: Cache, etc. + public ApiOperationDisplay(string operation = default(string), string provider = default(string), string resource = default(string)) + { + Operation = operation; + Provider = provider; + Resource = resource; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets operation type: Read, write, delete, etc. + /// + [JsonProperty(PropertyName = "operation")] + public string Operation { get; set; } + + /// + /// Gets or sets service provider: Microsoft.StorageCache + /// + [JsonProperty(PropertyName = "provider")] + public string Provider { get; set; } + + /// + /// Gets or sets resource on which the operation is performed: Cache, + /// etc. + /// + [JsonProperty(PropertyName = "resource")] + public string Resource { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperationListResult.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperationListResult.cs new file mode 100644 index 000000000000..ac587805424b --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ApiOperationListResult.cs @@ -0,0 +1,62 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Result of the request to list Resource Provider operations. It contains + /// a list of operations and a URL link to get the next set of results. + /// + public partial class ApiOperationListResult + { + /// + /// Initializes a new instance of the ApiOperationListResult class. + /// + public ApiOperationListResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ApiOperationListResult class. + /// + /// URL to get the next set of operation list + /// results if there are any. + /// List of Resource Provider operations supported + /// by the Microsoft.StorageCache resource provider. + public ApiOperationListResult(string nextLink = default(string), IList value = default(IList)) + { + NextLink = nextLink; + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets URL to get the next set of operation list results if + /// there are any. + /// + [JsonProperty(PropertyName = "nextLink")] + public string NextLink { get; set; } + + /// + /// Gets or sets list of Resource Provider operations supported by the + /// Microsoft.StorageCache resource provider. + /// + [JsonProperty(PropertyName = "value")] + public IList Value { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Cache.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Cache.cs new file mode 100644 index 000000000000..89a3d1a201a2 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Cache.cs @@ -0,0 +1,150 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// A Cache instance. Follows Azure Resource Manager standards: + /// https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md + /// + [Rest.Serialization.JsonTransformation] + public partial class Cache + { + /// + /// Initializes a new instance of the Cache class. + /// + public Cache() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Cache class. + /// + /// ARM tags as name/value pairs. + /// Resource ID of the Cache. + /// Region name string. + /// Name of Cache. + /// Type of the Cache; + /// Microsoft.StorageCache/Cache + /// The size of this Cache, in GB. + /// Health of the Cache. + /// Array of IP addresses that can be used + /// by clients mounting this Cache. + /// ARM provisioning state, see + /// https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property. + /// Possible values include: 'Succeeded', 'Failed', 'Cancelled', + /// 'Creating', 'Deleting', 'Updating' + /// Subnet used for the Cache. + /// Upgrade status of the Cache. + /// SKU for the Cache. + public Cache(object tags = default(object), string id = default(string), string location = default(string), string name = default(string), string type = default(string), int? cacheSizeGB = default(int?), CacheHealth health = default(CacheHealth), IList mountAddresses = default(IList), string provisioningState = default(string), string subnet = default(string), CacheUpgradeStatus upgradeStatus = default(CacheUpgradeStatus), CacheSku sku = default(CacheSku)) + { + Tags = tags; + Id = id; + Location = location; + Name = name; + Type = type; + CacheSizeGB = cacheSizeGB; + Health = health; + MountAddresses = mountAddresses; + ProvisioningState = provisioningState; + Subnet = subnet; + UpgradeStatus = upgradeStatus; + Sku = sku; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets ARM tags as name/value pairs. + /// + [JsonProperty(PropertyName = "tags")] + public object Tags { get; set; } + + /// + /// Gets resource ID of the Cache. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; private set; } + + /// + /// Gets or sets region name string. + /// + [JsonProperty(PropertyName = "location")] + public string Location { get; set; } + + /// + /// Gets name of Cache. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; private set; } + + /// + /// Gets type of the Cache; Microsoft.StorageCache/Cache + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; private set; } + + /// + /// Gets or sets the size of this Cache, in GB. + /// + [JsonProperty(PropertyName = "properties.cacheSizeGB")] + public int? CacheSizeGB { get; set; } + + /// + /// Gets health of the Cache. + /// + [JsonProperty(PropertyName = "properties.health")] + public CacheHealth Health { get; private set; } + + /// + /// Gets array of IP addresses that can be used by clients mounting + /// this Cache. + /// + [JsonProperty(PropertyName = "properties.mountAddresses")] + public IList MountAddresses { get; private set; } + + /// + /// Gets or sets ARM provisioning state, see + /// https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property. + /// Possible values include: 'Succeeded', 'Failed', 'Cancelled', + /// 'Creating', 'Deleting', 'Updating' + /// + [JsonProperty(PropertyName = "properties.provisioningState")] + public string ProvisioningState { get; set; } + + /// + /// Gets or sets subnet used for the Cache. + /// + [JsonProperty(PropertyName = "properties.subnet")] + public string Subnet { get; set; } + + /// + /// Gets or sets upgrade status of the Cache. + /// + [JsonProperty(PropertyName = "properties.upgradeStatus")] + public CacheUpgradeStatus UpgradeStatus { get; set; } + + /// + /// Gets or sets SKU for the Cache. + /// + [JsonProperty(PropertyName = "sku")] + public CacheSku Sku { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheHealth.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheHealth.cs new file mode 100644 index 000000000000..c2b7e456e1b1 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheHealth.cs @@ -0,0 +1,61 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// An indication of Cache health. Gives more information about health than + /// just that related to provisioning. + /// + public partial class CacheHealth + { + /// + /// Initializes a new instance of the CacheHealth class. + /// + public CacheHealth() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CacheHealth class. + /// + /// List of Cache health states. Possible values + /// include: 'Unknown', 'Healthy', 'Degraded', 'Down', 'Transitioning', + /// 'Stopping', 'Stopped', 'Upgrading', 'Flushing' + /// Describes explanation of + /// state. + public CacheHealth(string state = default(string), string statusDescription = default(string)) + { + State = state; + StatusDescription = statusDescription; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets list of Cache health states. Possible values include: + /// 'Unknown', 'Healthy', 'Degraded', 'Down', 'Transitioning', + /// 'Stopping', 'Stopped', 'Upgrading', 'Flushing' + /// + [JsonProperty(PropertyName = "state")] + public string State { get; set; } + + /// + /// Gets or sets describes explanation of state. + /// + [JsonProperty(PropertyName = "statusDescription")] + public string StatusDescription { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheSku.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheSku.cs new file mode 100644 index 000000000000..b264286e6f37 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheSku.cs @@ -0,0 +1,47 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// SKU for the Cache. + /// + public partial class CacheSku + { + /// + /// Initializes a new instance of the CacheSku class. + /// + public CacheSku() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CacheSku class. + /// + /// SKU name for this Cache. + public CacheSku(string name = default(string)) + { + Name = name; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets SKU name for this Cache. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheUpgradeStatus.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheUpgradeStatus.cs new file mode 100644 index 000000000000..fd94279b4be4 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CacheUpgradeStatus.cs @@ -0,0 +1,95 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing the software upgrade state of the Cache. + /// + public partial class CacheUpgradeStatus + { + /// + /// Initializes a new instance of the CacheUpgradeStatus class. + /// + public CacheUpgradeStatus() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CacheUpgradeStatus class. + /// + /// Version string of the firmware + /// currently installed on this Cache. + /// True if there is a firmware + /// update ready to install on this Cache. The firmware will + /// automatically be installed after firmwareUpdateDeadline if not + /// triggered earlier via the upgrade operation. Possible values + /// include: 'available', 'unavailable' + /// Time at which the pending + /// firmware update will automatically be installed on the + /// Cache. + /// Time of the last successful + /// firmware update. + /// When firmwareUpdateAvailable + /// is true, this field holds the version string for the + /// update. + public CacheUpgradeStatus(string currentFirmwareVersion = default(string), string firmwareUpdateStatus = default(string), System.DateTime? firmwareUpdateDeadline = default(System.DateTime?), System.DateTime? lastFirmwareUpdate = default(System.DateTime?), string pendingFirmwareVersion = default(string)) + { + CurrentFirmwareVersion = currentFirmwareVersion; + FirmwareUpdateStatus = firmwareUpdateStatus; + FirmwareUpdateDeadline = firmwareUpdateDeadline; + LastFirmwareUpdate = lastFirmwareUpdate; + PendingFirmwareVersion = pendingFirmwareVersion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets version string of the firmware currently installed on this + /// Cache. + /// + [JsonProperty(PropertyName = "currentFirmwareVersion")] + public string CurrentFirmwareVersion { get; private set; } + + /// + /// Gets true if there is a firmware update ready to install on this + /// Cache. The firmware will automatically be installed after + /// firmwareUpdateDeadline if not triggered earlier via the upgrade + /// operation. Possible values include: 'available', 'unavailable' + /// + [JsonProperty(PropertyName = "firmwareUpdateStatus")] + public string FirmwareUpdateStatus { get; private set; } + + /// + /// Gets time at which the pending firmware update will automatically + /// be installed on the Cache. + /// + [JsonProperty(PropertyName = "firmwareUpdateDeadline")] + public System.DateTime? FirmwareUpdateDeadline { get; private set; } + + /// + /// Gets time of the last successful firmware update. + /// + [JsonProperty(PropertyName = "lastFirmwareUpdate")] + public System.DateTime? LastFirmwareUpdate { get; private set; } + + /// + /// Gets when firmwareUpdateAvailable is true, this field holds the + /// version string for the update. + /// + [JsonProperty(PropertyName = "pendingFirmwareVersion")] + public string PendingFirmwareVersion { get; private set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CachesListResult.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CachesListResult.cs new file mode 100644 index 000000000000..e0d8bfe0b2ff --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CachesListResult.cs @@ -0,0 +1,60 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Result of the request to list Caches. It contains a list of Caches and + /// a URL link to get the next set of results. + /// + public partial class CachesListResult + { + /// + /// Initializes a new instance of the CachesListResult class. + /// + public CachesListResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CachesListResult class. + /// + /// URL to get the next set of Cache list + /// results, if there are any. + /// List of Caches. + public CachesListResult(string nextLink = default(string), IList value = default(IList)) + { + NextLink = nextLink; + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets URL to get the next set of Cache list results, if + /// there are any. + /// + [JsonProperty(PropertyName = "nextLink")] + public string NextLink { get; set; } + + /// + /// Gets or sets list of Caches. + /// + [JsonProperty(PropertyName = "value")] + public IList Value { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ClfsTarget.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ClfsTarget.cs new file mode 100644 index 000000000000..ce97fe7a9fbb --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ClfsTarget.cs @@ -0,0 +1,47 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Storage container for use as a CLFS Storage Target. + /// + public partial class ClfsTarget + { + /// + /// Initializes a new instance of the ClfsTarget class. + /// + public ClfsTarget() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ClfsTarget class. + /// + /// Resource ID of storage container. + public ClfsTarget(string target = default(string)) + { + Target = target; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets resource ID of storage container. + /// + [JsonProperty(PropertyName = "target")] + public string Target { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudError.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudError.cs new file mode 100644 index 000000000000..c3dd3715e395 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudError.cs @@ -0,0 +1,47 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// An error response. + /// + public partial class CloudError + { + /// + /// Initializes a new instance of the CloudError class. + /// + public CloudError() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CloudError class. + /// + /// The body of the error. + public CloudError(CloudErrorBody error = default(CloudErrorBody)) + { + Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the body of the error. + /// + [JsonProperty(PropertyName = "error")] + public CloudErrorBody Error { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudErrorBody.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudErrorBody.cs new file mode 100644 index 000000000000..20982a82e4b6 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudErrorBody.cs @@ -0,0 +1,80 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// An error response. + /// + public partial class CloudErrorBody + { + /// + /// Initializes a new instance of the CloudErrorBody class. + /// + public CloudErrorBody() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CloudErrorBody class. + /// + /// An identifier for the error. Codes are invariant + /// and are intended to be consumed programmatically. + /// A list of additional details about the + /// error. + /// A message describing the error, intended to + /// be suitable for display in a user interface. + /// The target of the particular error. For + /// example, the name of the property in error. + public CloudErrorBody(string code = default(string), IList details = default(IList), string message = default(string), string target = default(string)) + { + Code = code; + Details = details; + Message = message; + Target = target; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets an identifier for the error. Codes are invariant and + /// are intended to be consumed programmatically. + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// Gets or sets a list of additional details about the error. + /// + [JsonProperty(PropertyName = "details")] + public IList Details { get; set; } + + /// + /// Gets or sets a message describing the error, intended to be + /// suitable for display in a user interface. + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// Gets or sets the target of the particular error. For example, the + /// name of the property in error. + /// + [JsonProperty(PropertyName = "target")] + public string Target { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudErrorException.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudErrorException.cs new file mode 100644 index 000000000000..41ee2698e4e0 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/CloudErrorException.cs @@ -0,0 +1,57 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with CloudError information. + /// + public partial class CloudErrorException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public CloudError Body { get; set; } + + /// + /// Initializes a new instance of the CloudErrorException class. + /// + public CloudErrorException() + { + } + + /// + /// Initializes a new instance of the CloudErrorException class. + /// + /// The exception message. + public CloudErrorException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the CloudErrorException class. + /// + /// The exception message. + /// Inner exception. + public CloudErrorException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/FirmwareStatusType.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/FirmwareStatusType.cs new file mode 100644 index 000000000000..a4889c7106f8 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/FirmwareStatusType.cs @@ -0,0 +1,18 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + + /// + /// Defines values for FirmwareStatusType. + /// + public static class FirmwareStatusType + { + public const string Available = "available"; + public const string Unavailable = "unavailable"; + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/HealthStateType.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/HealthStateType.cs new file mode 100644 index 000000000000..dceb20989cac --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/HealthStateType.cs @@ -0,0 +1,25 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + + /// + /// Defines values for HealthStateType. + /// + public static class HealthStateType + { + public const string Unknown = "Unknown"; + public const string Healthy = "Healthy"; + public const string Degraded = "Degraded"; + public const string Down = "Down"; + public const string Transitioning = "Transitioning"; + public const string Stopping = "Stopping"; + public const string Stopped = "Stopped"; + public const string Upgrading = "Upgrading"; + public const string Flushing = "Flushing"; + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/NamespaceJunction.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/NamespaceJunction.cs new file mode 100644 index 000000000000..935fc6b803ba --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/NamespaceJunction.cs @@ -0,0 +1,65 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A namespace junction. + /// + public partial class NamespaceJunction + { + /// + /// Initializes a new instance of the NamespaceJunction class. + /// + public NamespaceJunction() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NamespaceJunction class. + /// + /// Namespace path on a Cache for a Storage + /// Target. + /// Path in Storage Target to which + /// namespacePath points. + /// NFS export where targetPath exists. + public NamespaceJunction(string namespacePath = default(string), string targetPath = default(string), string nfsExport = default(string)) + { + NamespacePath = namespacePath; + TargetPath = targetPath; + NfsExport = nfsExport; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets namespace path on a Cache for a Storage Target. + /// + [JsonProperty(PropertyName = "namespacePath")] + public string NamespacePath { get; set; } + + /// + /// Gets or sets path in Storage Target to which namespacePath points. + /// + [JsonProperty(PropertyName = "targetPath")] + public string TargetPath { get; set; } + + /// + /// Gets or sets NFS export where targetPath exists. + /// + [JsonProperty(PropertyName = "nfsExport")] + public string NfsExport { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Nfs3Target.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Nfs3Target.cs new file mode 100644 index 000000000000..030670fdafa2 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Nfs3Target.cs @@ -0,0 +1,77 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// An NFSv3 mount point for use as a Storage Target. + /// + public partial class Nfs3Target + { + /// + /// Initializes a new instance of the Nfs3Target class. + /// + public Nfs3Target() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Nfs3Target class. + /// + /// IP address or host name of an NFSv3 host + /// (e.g., 10.0.44.44). + /// Identifies the primary usage model to be + /// used for this Storage Target. Get choices from + /// .../usageModels + public Nfs3Target(string target = default(string), string usageModel = default(string)) + { + Target = target; + UsageModel = usageModel; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets IP address or host name of an NFSv3 host (e.g., + /// 10.0.44.44). + /// + [JsonProperty(PropertyName = "target")] + public string Target { get; set; } + + /// + /// Gets or sets identifies the primary usage model to be used for this + /// Storage Target. Get choices from .../usageModels + /// + [JsonProperty(PropertyName = "usageModel")] + public string UsageModel { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Target != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(Target, "^[-.0-9a-zA-Z]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "Target", "^[-.0-9a-zA-Z]+$"); + } + } + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ProvisioningStateType.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ProvisioningStateType.cs new file mode 100644 index 000000000000..9bb0e11267d7 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ProvisioningStateType.cs @@ -0,0 +1,22 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + + /// + /// Defines values for ProvisioningStateType. + /// + public static class ProvisioningStateType + { + public const string Succeeded = "Succeeded"; + public const string Failed = "Failed"; + public const string Cancelled = "Cancelled"; + public const string Creating = "Creating"; + public const string Deleting = "Deleting"; + public const string Updating = "Updating"; + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ReasonCode.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ReasonCode.cs new file mode 100644 index 000000000000..d7eca8625bb4 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ReasonCode.cs @@ -0,0 +1,18 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + + /// + /// Defines values for ReasonCode. + /// + public static class ReasonCode + { + public const string QuotaId = "QuotaId"; + public const string NotAvailableForSubscription = "NotAvailableForSubscription"; + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSku.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSku.cs new file mode 100644 index 000000000000..c21ecb2a0558 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSku.cs @@ -0,0 +1,100 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// A resource SKU. + /// + public partial class ResourceSku + { + /// + /// Initializes a new instance of the ResourceSku class. + /// + public ResourceSku() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ResourceSku class. + /// + /// The type of resource the SKU applies + /// to. + /// A list of capabilities of this SKU, such + /// as throughput or ops/sec. + /// The set of locations that the SKU is + /// available. This will be supported and registered Azure Geo Regions + /// (e.g., West US, East US, Southeast Asia, etc.). + /// The set of locations that the SKU is + /// available. + /// The name of this SKU. + /// The restrictions preventing this SKU + /// from being used. This is empty if there are no + /// restrictions. + public ResourceSku(string resourceType = default(string), IList capabilities = default(IList), IList locations = default(IList), IList locationInfo = default(IList), string name = default(string), IList restrictions = default(IList)) + { + ResourceType = resourceType; + Capabilities = capabilities; + Locations = locations; + LocationInfo = locationInfo; + Name = name; + Restrictions = restrictions; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the type of resource the SKU applies to. + /// + [JsonProperty(PropertyName = "resourceType")] + public string ResourceType { get; private set; } + + /// + /// Gets or sets a list of capabilities of this SKU, such as throughput + /// or ops/sec. + /// + [JsonProperty(PropertyName = "capabilities")] + public IList Capabilities { get; set; } + + /// + /// Gets the set of locations that the SKU is available. This will be + /// supported and registered Azure Geo Regions (e.g., West US, East US, + /// Southeast Asia, etc.). + /// + [JsonProperty(PropertyName = "locations")] + public IList Locations { get; private set; } + + /// + /// Gets or sets the set of locations that the SKU is available. + /// + [JsonProperty(PropertyName = "locationInfo")] + public IList LocationInfo { get; set; } + + /// + /// Gets or sets the name of this SKU. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets the restrictions preventing this SKU from being used. + /// This is empty if there are no restrictions. + /// + [JsonProperty(PropertyName = "restrictions")] + public IList Restrictions { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkuCapabilities.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkuCapabilities.cs new file mode 100644 index 000000000000..6220eb5d8f08 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkuCapabilities.cs @@ -0,0 +1,56 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A resource SKU capability. + /// + public partial class ResourceSkuCapabilities + { + /// + /// Initializes a new instance of the ResourceSkuCapabilities class. + /// + public ResourceSkuCapabilities() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ResourceSkuCapabilities class. + /// + /// Name of a capability, such as ops/sec. + /// Quantity, if the capability is measured by + /// quantity. + public ResourceSkuCapabilities(string name = default(string), string value = default(string)) + { + Name = name; + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of a capability, such as ops/sec. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets quantity, if the capability is measured by quantity. + /// + [JsonProperty(PropertyName = "value")] + public string Value { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkuLocationInfo.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkuLocationInfo.cs new file mode 100644 index 000000000000..4a459c9fa3b2 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkuLocationInfo.cs @@ -0,0 +1,58 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Resource SKU location information. + /// + public partial class ResourceSkuLocationInfo + { + /// + /// Initializes a new instance of the ResourceSkuLocationInfo class. + /// + public ResourceSkuLocationInfo() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ResourceSkuLocationInfo class. + /// + /// Location where this SKU is + /// available. + /// Zones if any. + public ResourceSkuLocationInfo(string location = default(string), IList zones = default(IList)) + { + Location = location; + Zones = zones; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets location where this SKU is available. + /// + [JsonProperty(PropertyName = "location")] + public string Location { get; set; } + + /// + /// Gets or sets zones if any. + /// + [JsonProperty(PropertyName = "zones")] + public IList Zones { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkusResult.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkusResult.cs new file mode 100644 index 000000000000..a6fcf010d176 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/ResourceSkusResult.cs @@ -0,0 +1,59 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The response from the List Cache SKUs operation. + /// + public partial class ResourceSkusResult + { + /// + /// Initializes a new instance of the ResourceSkusResult class. + /// + public ResourceSkusResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ResourceSkusResult class. + /// + /// The URI to fetch the next page of Cache + /// SKUs. + /// The list of SKUs available for the + /// subscription. + public ResourceSkusResult(string nextLink = default(string), IList value = default(IList)) + { + NextLink = nextLink; + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the URI to fetch the next page of Cache SKUs. + /// + [JsonProperty(PropertyName = "nextLink")] + public string NextLink { get; set; } + + /// + /// Gets the list of SKUs available for the subscription. + /// + [JsonProperty(PropertyName = "value")] + public IList Value { get; private set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Restriction.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Restriction.cs new file mode 100644 index 000000000000..7761be601949 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/Restriction.cs @@ -0,0 +1,82 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The restrictions preventing this SKU from being used. + /// + public partial class Restriction + { + /// + /// Initializes a new instance of the Restriction class. + /// + public Restriction() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Restriction class. + /// + /// The type of restrictions. In this version, the + /// only possible value for this is location. + /// The value of restrictions. If the restriction + /// type is set to location, then this would be the different locations + /// where the SKU is restricted. + /// The reason for the restriction. As of now + /// this can be "QuotaId" or "NotAvailableForSubscription". "QuotaId" + /// is set when the SKU has requiredQuotas parameter as the + /// subscription does not belong to that quota. + /// "NotAvailableForSubscription" is related to capacity at the + /// datacenter. Possible values include: 'QuotaId', + /// 'NotAvailableForSubscription' + public Restriction(string type = default(string), IList values = default(IList), string reasonCode = default(string)) + { + Type = type; + Values = values; + ReasonCode = reasonCode; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the type of restrictions. In this version, the only possible + /// value for this is location. + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; private set; } + + /// + /// Gets the value of restrictions. If the restriction type is set to + /// location, then this would be the different locations where the SKU + /// is restricted. + /// + [JsonProperty(PropertyName = "values")] + public IList Values { get; private set; } + + /// + /// Gets or sets the reason for the restriction. As of now this can be + /// "QuotaId" or "NotAvailableForSubscription". "QuotaId" is set when + /// the SKU has requiredQuotas parameter as the subscription does not + /// belong to that quota. "NotAvailableForSubscription" is related to + /// capacity at the datacenter. Possible values include: 'QuotaId', + /// 'NotAvailableForSubscription' + /// + [JsonProperty(PropertyName = "reasonCode")] + public string ReasonCode { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTarget.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTarget.cs new file mode 100644 index 000000000000..302bd49556a3 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTarget.cs @@ -0,0 +1,142 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// A storage system being cached by a Cache. + /// + [Rest.Serialization.JsonTransformation] + public partial class StorageTarget + { + /// + /// Initializes a new instance of the StorageTarget class. + /// + public StorageTarget() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the StorageTarget class. + /// + /// Name of the Storage Target. + /// Resource ID of the Storage Target. + /// Type of the Storage Target; + /// Microsoft.StorageCache/Cache/StorageTarget + /// List of Cache namespace junctions to target + /// for namespace associations. + /// Type of the Storage Target. Possible + /// values include: 'nfs3', 'clfs', 'unknown' + /// ARM provisioning state, see + /// https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property. + /// Possible values include: 'Succeeded', 'Failed', 'Cancelled', + /// 'Creating', 'Deleting', 'Updating' + /// Properties when targetType is nfs3. + /// Properties when targetType is clfs. + /// Properties when targetType is + /// unknown. + public StorageTarget(string name = default(string), string id = default(string), string type = default(string), IList junctions = default(IList), string targetType = default(string), string provisioningState = default(string), Nfs3Target nfs3 = default(Nfs3Target), ClfsTarget clfs = default(ClfsTarget), UnknownTarget unknown = default(UnknownTarget)) + { + Name = name; + Id = id; + Type = type; + Junctions = junctions; + TargetType = targetType; + ProvisioningState = provisioningState; + Nfs3 = nfs3; + Clfs = clfs; + Unknown = unknown; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets name of the Storage Target. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; private set; } + + /// + /// Gets resource ID of the Storage Target. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; private set; } + + /// + /// Gets type of the Storage Target; + /// Microsoft.StorageCache/Cache/StorageTarget + /// + [JsonProperty(PropertyName = "type")] + public string Type { get; private set; } + + /// + /// Gets or sets list of Cache namespace junctions to target for + /// namespace associations. + /// + [JsonProperty(PropertyName = "properties.junctions")] + public IList Junctions { get; set; } + + /// + /// Gets or sets type of the Storage Target. Possible values include: + /// 'nfs3', 'clfs', 'unknown' + /// + [JsonProperty(PropertyName = "properties.targetType")] + public string TargetType { get; set; } + + /// + /// Gets or sets ARM provisioning state, see + /// https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property. + /// Possible values include: 'Succeeded', 'Failed', 'Cancelled', + /// 'Creating', 'Deleting', 'Updating' + /// + [JsonProperty(PropertyName = "properties.provisioningState")] + public string ProvisioningState { get; set; } + + /// + /// Gets or sets properties when targetType is nfs3. + /// + [JsonProperty(PropertyName = "properties.nfs3")] + public Nfs3Target Nfs3 { get; set; } + + /// + /// Gets or sets properties when targetType is clfs. + /// + [JsonProperty(PropertyName = "properties.clfs")] + public ClfsTarget Clfs { get; set; } + + /// + /// Gets or sets properties when targetType is unknown. + /// + [JsonProperty(PropertyName = "properties.unknown")] + public UnknownTarget Unknown { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Nfs3 != null) + { + Nfs3.Validate(); + } + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTargetType.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTargetType.cs new file mode 100644 index 000000000000..7f2d14bef9cd --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTargetType.cs @@ -0,0 +1,19 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + + /// + /// Defines values for StorageTargetType. + /// + public static class StorageTargetType + { + public const string Nfs3 = "nfs3"; + public const string Clfs = "clfs"; + public const string Unknown = "unknown"; + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTargetsResult.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTargetsResult.cs new file mode 100644 index 000000000000..c21048b4de2d --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/StorageTargetsResult.cs @@ -0,0 +1,59 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// A list of Storage Targets. + /// + public partial class StorageTargetsResult + { + /// + /// Initializes a new instance of the StorageTargetsResult class. + /// + public StorageTargetsResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the StorageTargetsResult class. + /// + /// The URI to fetch the next page of Storage + /// Targets. + /// The list of Storage Targets defined for the + /// Cache. + public StorageTargetsResult(string nextLink = default(string), IList value = default(IList)) + { + NextLink = nextLink; + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the URI to fetch the next page of Storage Targets. + /// + [JsonProperty(PropertyName = "nextLink")] + public string NextLink { get; set; } + + /// + /// Gets or sets the list of Storage Targets defined for the Cache. + /// + [JsonProperty(PropertyName = "value")] + public IList Value { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UnknownTarget.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UnknownTarget.cs new file mode 100644 index 000000000000..48bf73a70646 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UnknownTarget.cs @@ -0,0 +1,51 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Storage container for use as an Unknown Storage Target. + /// + public partial class UnknownTarget + { + /// + /// Initializes a new instance of the UnknownTarget class. + /// + public UnknownTarget() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UnknownTarget class. + /// + /// Dictionary of string->string pairs + /// containing information about the Storage Target. + public UnknownTarget(IDictionary unknownMap = default(IDictionary)) + { + UnknownMap = unknownMap; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets dictionary of string-&gt;string pairs containing + /// information about the Storage Target. + /// + [JsonProperty(PropertyName = "unknownMap")] + public IDictionary UnknownMap { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModel.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModel.cs new file mode 100644 index 000000000000..5bee78a345fc --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModel.cs @@ -0,0 +1,67 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// A usage model. + /// + public partial class UsageModel + { + /// + /// Initializes a new instance of the UsageModel class. + /// + public UsageModel() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UsageModel class. + /// + /// Localized information describing this usage + /// model. + /// Non-localized keyword name for this usage + /// model. + /// The type of Storage Target to which this + /// model is applicable (only nfs3 as of this version). + public UsageModel(UsageModelDisplay display = default(UsageModelDisplay), string modelName = default(string), string targetType = default(string)) + { + Display = display; + ModelName = modelName; + TargetType = targetType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets localized information describing this usage model. + /// + [JsonProperty(PropertyName = "display")] + public UsageModelDisplay Display { get; set; } + + /// + /// Gets or sets non-localized keyword name for this usage model. + /// + [JsonProperty(PropertyName = "modelName")] + public string ModelName { get; set; } + + /// + /// Gets or sets the type of Storage Target to which this model is + /// applicable (only nfs3 as of this version). + /// + [JsonProperty(PropertyName = "targetType")] + public string TargetType { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModelDisplay.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModelDisplay.cs new file mode 100644 index 000000000000..1bda9a57d2f5 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModelDisplay.cs @@ -0,0 +1,48 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Localized information describing this usage model. + /// + public partial class UsageModelDisplay + { + /// + /// Initializes a new instance of the UsageModelDisplay class. + /// + public UsageModelDisplay() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UsageModelDisplay class. + /// + /// String to display for this usage + /// model. + public UsageModelDisplay(string description = default(string)) + { + Description = description; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets string to display for this usage model. + /// + [JsonProperty(PropertyName = "description")] + public string Description { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModelsResult.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModelsResult.cs new file mode 100644 index 000000000000..19f7faa6af38 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Models/UsageModelsResult.cs @@ -0,0 +1,60 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// A list of Cache usage models. + /// + public partial class UsageModelsResult + { + /// + /// Initializes a new instance of the UsageModelsResult class. + /// + public UsageModelsResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UsageModelsResult class. + /// + /// The URI to fetch the next page of Cache + /// usage models. + /// The list of usage models available for the + /// subscription. + public UsageModelsResult(string nextLink = default(string), IList value = default(IList)) + { + NextLink = nextLink; + Value = value; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the URI to fetch the next page of Cache usage models. + /// + [JsonProperty(PropertyName = "nextLink")] + public string NextLink { get; set; } + + /// + /// Gets or sets the list of usage models available for the + /// subscription. + /// + [JsonProperty(PropertyName = "value")] + public IList Value { get; set; } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Operations.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Operations.cs new file mode 100644 index 000000000000..ce7276913438 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Operations.cs @@ -0,0 +1,202 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Operations operations. + /// + public partial class Operations : IServiceOperations, IOperations + { + /// + /// Initializes a new instance of the Operations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public Operations(StorageCacheManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the StorageCacheManagementClient + /// + public StorageCacheManagementClient Client { get; private set; } + + /// + /// Lists all of the available Resource Provider operations. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "providers/Microsoft.StorageCache/operations").ToString(); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/OperationsExtensions.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/OperationsExtensions.cs new file mode 100644 index 000000000000..2e52ab8f3d31 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/OperationsExtensions.cs @@ -0,0 +1,47 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for Operations. + /// + public static partial class OperationsExtensions + { + /// + /// Lists all of the available Resource Provider operations. + /// + /// + /// The operations group for this extension method. + /// + public static ApiOperationListResult List(this IOperations operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Lists all of the available Resource Provider operations. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task ListAsync(this IOperations operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/SdkInfo_StorageCacheManagementClient.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/SdkInfo_StorageCacheManagementClient.cs new file mode 100644 index 000000000000..39df4c39dfed --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/SdkInfo_StorageCacheManagementClient.cs @@ -0,0 +1,42 @@ + +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using System; + using System.Collections.Generic; + using System.Linq; + + internal static partial class SdkInfo + { + public static IEnumerable> ApiInfo_StorageCacheManagementClient + { + get + { + return new Tuple[] + { + new Tuple("StorageCache", "Caches", "2019-11-01"), + new Tuple("StorageCache", "Operations", "2019-11-01"), + new Tuple("StorageCache", "Skus", "2019-11-01"), + new Tuple("StorageCache", "StorageTargets", "2019-11-01"), + new Tuple("StorageCache", "UsageModels", "2019-11-01"), + }.AsEnumerable(); + } + } + // BEGIN: Code Generation Metadata Section + public static readonly String AutoRestVersion = "latest"; + public static readonly String AutoRestBootStrapperVersion = "autorest@2.0.4283"; + public static readonly String AutoRestCmdExecuted = "cmd.exe /c autorest.cmd https://github.com/Azure/azure-rest-api-specs/blob/master/specification/storagecache/resource-manager/readme.md --csharp --version=latest --reflect-api-versions --csharp.namespace=Microsoft.Azure.Management.StorageCache --csharp.output-folder=C:\\Avere\\service\\azure-sdk-for-net\\sdk\\storagecache\\Microsoft.Azure.Management.StorageCache\\src\\Generated"; + public static readonly String GithubForkName = "Azure"; + public static readonly String GithubBranchName = "master"; + public static readonly String GithubCommidId = "42d8ead1da60419364bfa289632e1402c858d05f"; + public static readonly String CodeGenerationErrors = ""; + public static readonly String GithubRepoName = "azure-rest-api-specs"; + // END: Code Generation Metadata Section + } +} + diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Skus.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Skus.cs new file mode 100644 index 000000000000..19151cb3206f --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/Skus.cs @@ -0,0 +1,207 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Skus operations. + /// + public partial class Skus : IServiceOperations, ISkus + { + /// + /// Initializes a new instance of the Skus class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public Skus(StorageCacheManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the StorageCacheManagementClient + /// + public StorageCacheManagementClient Client { get; private set; } + + /// + /// Get the list of StorageCache.Cache SKUs available to this subscription. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.StorageCache/skus").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/SkusExtensions.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/SkusExtensions.cs new file mode 100644 index 000000000000..612bd93cc2f3 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/SkusExtensions.cs @@ -0,0 +1,47 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for Skus. + /// + public static partial class SkusExtensions + { + /// + /// Get the list of StorageCache.Cache SKUs available to this subscription. + /// + /// + /// The operations group for this extension method. + /// + public static ResourceSkusResult List(this ISkus operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Get the list of StorageCache.Cache SKUs available to this subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task ListAsync(this ISkus operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageCacheManagementClient.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageCacheManagementClient.cs new file mode 100644 index 000000000000..43f02886870b --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageCacheManagementClient.cs @@ -0,0 +1,359 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + + /// + /// A Storage Cache provides scalable caching service for NAS clients, + /// serving data from either NFSv3 or Blob at-rest storage (referred to as + /// "Storage Targets"). These operations allow you to manage Caches. + /// + public partial class StorageCacheManagementClient : ServiceClient, IStorageCacheManagementClient + { + /// + /// The base URI of the service. + /// + public System.Uri BaseUri { get; set; } + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// Subscription credentials which uniquely identify Microsoft Azure + /// subscription. The subscription ID forms part of the URI for every service + /// call. + /// + public string SubscriptionId { get; set; } + + /// + /// Client API version. + /// + public string ApiVersion { get; set; } + + /// + /// Subscription credentials which uniquely identify client subscription. + /// + public ServiceClientCredentials Credentials { get; private set; } + + /// + /// Gets the IOperations. + /// + public virtual IOperations Operations { get; private set; } + + /// + /// Gets the ISkus. + /// + public virtual ISkus Skus { get; private set; } + + /// + /// Gets the IUsageModels. + /// + public virtual IUsageModels UsageModels { get; private set; } + + /// + /// Gets the ICaches. + /// + public virtual ICaches Caches { get; private set; } + + /// + /// Gets the IStorageTargets. + /// + public virtual IStorageTargets StorageTargets { get; private set; } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// HttpClient to be used + /// + /// + /// True: will dispose the provided httpClient on calling StorageCacheManagementClient.Dispose(). False: will not dispose provided httpClient + protected StorageCacheManagementClient(HttpClient httpClient, bool disposeHttpClient) : base(httpClient, disposeHttpClient) + { + Initialize(); + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + protected StorageCacheManagementClient(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + protected StorageCacheManagementClient(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Optional. The base URI of the service. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + protected StorageCacheManagementClient(System.Uri baseUri, params DelegatingHandler[] handlers) : this(handlers) + { + if (baseUri == null) + { + throw new System.ArgumentNullException("baseUri"); + } + BaseUri = baseUri; + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Optional. The base URI of the service. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + protected StorageCacheManagementClient(System.Uri baseUri, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers) + { + if (baseUri == null) + { + throw new System.ArgumentNullException("baseUri"); + } + BaseUri = baseUri; + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + public StorageCacheManagementClient(ServiceClientCredentials credentials, params DelegatingHandler[] handlers) : this(handlers) + { + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// HttpClient to be used + /// + /// + /// True: will dispose the provided httpClient on calling StorageCacheManagementClient.Dispose(). False: will not dispose provided httpClient + /// + /// Thrown when a required parameter is null + /// + public StorageCacheManagementClient(ServiceClientCredentials credentials, HttpClient httpClient, bool disposeHttpClient) : this(httpClient, disposeHttpClient) + { + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + public StorageCacheManagementClient(ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers) + { + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Optional. The base URI of the service. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + public StorageCacheManagementClient(System.Uri baseUri, ServiceClientCredentials credentials, params DelegatingHandler[] handlers) : this(handlers) + { + if (baseUri == null) + { + throw new System.ArgumentNullException("baseUri"); + } + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + BaseUri = baseUri; + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// Initializes a new instance of the StorageCacheManagementClient class. + /// + /// + /// Optional. The base URI of the service. + /// + /// + /// Required. Subscription credentials which uniquely identify client subscription. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + /// + /// Thrown when a required parameter is null + /// + public StorageCacheManagementClient(System.Uri baseUri, ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers) + { + if (baseUri == null) + { + throw new System.ArgumentNullException("baseUri"); + } + if (credentials == null) + { + throw new System.ArgumentNullException("credentials"); + } + BaseUri = baseUri; + Credentials = credentials; + if (Credentials != null) + { + Credentials.InitializeServiceClient(this); + } + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + Operations = new Operations(this); + Skus = new Skus(this); + UsageModels = new UsageModels(this); + Caches = new Caches(this); + StorageTargets = new StorageTargets(this); + BaseUri = new System.Uri("https://management.azure.com"); + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + SerializationSettings.Converters.Add(new TransformationJsonConverter()); + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + DeserializationSettings.Converters.Add(new TransformationJsonConverter()); + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageTargets.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageTargets.cs new file mode 100644 index 000000000000..b5fb9cc3a04f --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageTargets.cs @@ -0,0 +1,900 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// StorageTargets operations. + /// + public partial class StorageTargets : IServiceOperations, IStorageTargets + { + /// + /// Initializes a new instance of the StorageTargets class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public StorageTargets(StorageCacheManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the StorageCacheManagementClient + /// + public StorageCacheManagementClient Client { get; private set; } + + /// + /// Returns a list of Storage Targets for the specified Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> ListByCacheWithHttpMessagesAsync(string resourceGroupName, string cacheName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "ListByCache", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/storageTargets").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Removes a Storage Target from a Cache. This operation is allowed at any + /// time, but if the Cache is down or unhealthy, the actual removal of the + /// Storage Target may be delayed until the Cache is healthy again. Note that + /// if the Cache has data to flush to the Storage Target, the data will be + /// flushed before the Storage Target will be deleted. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of Storage Target. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> DeleteWithHttpMessagesAsync(string resourceGroupName, string cacheName, string storageTargetName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + if (storageTargetName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "storageTargetName"); + } + if (storageTargetName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(storageTargetName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "storageTargetName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("storageTargetName", storageTargetName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/storageTargets/{storageTargetName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + _url = _url.Replace("{storageTargetName}", System.Uri.EscapeDataString(storageTargetName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 202 && (int)_statusCode != 204) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 202) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 204) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Returns a Storage Target from a Cache. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string resourceGroupName, string cacheName, string storageTargetName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + if (storageTargetName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "storageTargetName"); + } + if (storageTargetName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(storageTargetName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "storageTargetName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("storageTargetName", storageTargetName); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/storageTargets/{storageTargetName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + _url = _url.Replace("{storageTargetName}", System.Uri.EscapeDataString(storageTargetName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Create or update a Storage Target. This operation is allowed at any time, + /// but if the Cache is down or unhealthy, the actual creation/modification of + /// the Storage Target may be delayed until the Cache is healthy again. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// Object containing the definition of a Storage Target. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CreateOrUpdateWithHttpMessagesAsync(string resourceGroupName, string cacheName, string storageTargetName, StorageTarget storagetarget = default(StorageTarget), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + if (cacheName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "cacheName"); + } + if (cacheName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(cacheName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "cacheName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + if (storageTargetName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "storageTargetName"); + } + if (storageTargetName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(storageTargetName, "^[-0-9a-zA-Z_]{1,31}$")) + { + throw new ValidationException(ValidationRules.Pattern, "storageTargetName", "^[-0-9a-zA-Z_]{1,31}$"); + } + } + if (storagetarget != null) + { + storagetarget.Validate(); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("cacheName", cacheName); + tracingParameters.Add("storageTargetName", storageTargetName); + tracingParameters.Add("storagetarget", storagetarget); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "CreateOrUpdate", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/storageTargets/{storageTargetName}").ToString(); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + _url = _url.Replace("{cacheName}", System.Uri.EscapeDataString(cacheName)); + _url = _url.Replace("{storageTargetName}", System.Uri.EscapeDataString(storageTargetName)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(storagetarget != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(storagetarget, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200 && (int)_statusCode != 201) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + // Deserialize Response + if ((int)_statusCode == 201) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageTargetsExtensions.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageTargetsExtensions.cs new file mode 100644 index 000000000000..b9e2e5eb011d --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/StorageTargetsExtensions.cs @@ -0,0 +1,215 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for StorageTargets. + /// + public static partial class StorageTargetsExtensions + { + /// + /// Returns a list of Storage Targets for the specified Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + public static StorageTargetsResult ListByCache(this IStorageTargets operations, string resourceGroupName, string cacheName) + { + return operations.ListByCacheAsync(resourceGroupName, cacheName).GetAwaiter().GetResult(); + } + + /// + /// Returns a list of Storage Targets for the specified Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// The cancellation token. + /// + public static async Task ListByCacheAsync(this IStorageTargets operations, string resourceGroupName, string cacheName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListByCacheWithHttpMessagesAsync(resourceGroupName, cacheName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Removes a Storage Target from a Cache. This operation is allowed at any + /// time, but if the Cache is down or unhealthy, the actual removal of the + /// Storage Target may be delayed until the Cache is healthy again. Note that + /// if the Cache has data to flush to the Storage Target, the data will be + /// flushed before the Storage Target will be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of Storage Target. + /// + public static object Delete(this IStorageTargets operations, string resourceGroupName, string cacheName, string storageTargetName) + { + return operations.DeleteAsync(resourceGroupName, cacheName, storageTargetName).GetAwaiter().GetResult(); + } + + /// + /// Removes a Storage Target from a Cache. This operation is allowed at any + /// time, but if the Cache is down or unhealthy, the actual removal of the + /// Storage Target may be delayed until the Cache is healthy again. Note that + /// if the Cache has data to flush to the Storage Target, the data will be + /// flushed before the Storage Target will be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of Storage Target. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IStorageTargets operations, string resourceGroupName, string cacheName, string storageTargetName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DeleteWithHttpMessagesAsync(resourceGroupName, cacheName, storageTargetName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Returns a Storage Target from a Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + public static StorageTarget Get(this IStorageTargets operations, string resourceGroupName, string cacheName, string storageTargetName) + { + return operations.GetAsync(resourceGroupName, cacheName, storageTargetName).GetAwaiter().GetResult(); + } + + /// + /// Returns a Storage Target from a Cache. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IStorageTargets operations, string resourceGroupName, string cacheName, string storageTargetName, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, cacheName, storageTargetName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Create or update a Storage Target. This operation is allowed at any time, + /// but if the Cache is down or unhealthy, the actual creation/modification of + /// the Storage Target may be delayed until the Cache is healthy again. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// Object containing the definition of a Storage Target. + /// + public static StorageTarget CreateOrUpdate(this IStorageTargets operations, string resourceGroupName, string cacheName, string storageTargetName, StorageTarget storagetarget = default(StorageTarget)) + { + return operations.CreateOrUpdateAsync(resourceGroupName, cacheName, storageTargetName, storagetarget).GetAwaiter().GetResult(); + } + + /// + /// Create or update a Storage Target. This operation is allowed at any time, + /// but if the Cache is down or unhealthy, the actual creation/modification of + /// the Storage Target may be delayed until the Cache is healthy again. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target resource group. + /// + /// + /// Name of Cache. + /// + /// + /// Name of the Storage Target. + /// + /// + /// Object containing the definition of a Storage Target. + /// + /// + /// The cancellation token. + /// + public static async Task CreateOrUpdateAsync(this IStorageTargets operations, string resourceGroupName, string cacheName, string storageTargetName, StorageTarget storagetarget = default(StorageTarget), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, cacheName, storageTargetName, storagetarget, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/UsageModels.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/UsageModels.cs new file mode 100644 index 000000000000..9aa51e88622c --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/UsageModels.cs @@ -0,0 +1,207 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// UsageModels operations. + /// + public partial class UsageModels : IServiceOperations, IUsageModels + { + /// + /// Initializes a new instance of the UsageModels class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public UsageModels(StorageCacheManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the StorageCacheManagementClient + /// + public StorageCacheManagementClient Client { get; private set; } + + /// + /// Get the list of Cache Usage Models available to this subscription. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.ApiVersion == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + if (Client.SubscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.StorageCache/usageModels").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); + List _queryParameters = new List(); + if (Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new CloudErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/UsageModelsExtensions.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/UsageModelsExtensions.cs new file mode 100644 index 000000000000..bf8560386aa3 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Generated/UsageModelsExtensions.cs @@ -0,0 +1,47 @@ +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.StorageCache +{ + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for UsageModels. + /// + public static partial class UsageModelsExtensions + { + /// + /// Get the list of Cache Usage Models available to this subscription. + /// + /// + /// The operations group for this extension method. + /// + public static UsageModelsResult List(this IUsageModels operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Get the list of Cache Usage Models available to this subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task ListAsync(this IUsageModels operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Microsoft.Azure.Management.StorageCache.csproj b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Microsoft.Azure.Management.StorageCache.csproj new file mode 100644 index 000000000000..64799d317058 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Microsoft.Azure.Management.StorageCache.csproj @@ -0,0 +1,37 @@ + + + + + + + Microsoft.Azure.Management.StorageCache + Microsoft Azure StorageCache Management Library + Microsoft.Azure.Management.StorageCache + Microsoft Azure HPC StorageCache Management + 1.0.0 + Microsoft Azure Storagecache management;StorageCache;StorageCache management;StorageCache_2019-11-01; + + + + + + + $(SdkTargetFx) + + Library + + + + AnyCPU + false + + + + + + \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Properties/AssemblyInfo.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..cc12f9271bb0 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Microsoft Azure StorageCache Management Library ")] +[assembly: AssemblyDescription("Provides management functionality for Microsoft Azure Storagecache Resources.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Microsoft Azure .NET SDK")] +[assembly: AssemblyCopyright("Copyright © 2019 Microsoft Corporation")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b304467a-9d55-4490-9e37-d6516bf4a107")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/generate.ps1 b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/generate.ps1 new file mode 100644 index 000000000000..dde830b51eed --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/src/generate.ps1 @@ -0,0 +1 @@ +Start-AutoRestCodeGeneration -ResourceProvider "storagecache/resource-manager" -AutoRestVersion "latest" -SdkGenerationDirectory "$PSScriptRoot\Generated" -Namespace "Microsoft.Azure.Management.StorageCache" \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageAccountsFixture.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageAccountsFixture.cs new file mode 100644 index 000000000000..5b58615d8e0e --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageAccountsFixture.cs @@ -0,0 +1,222 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Fixtures +{ + using System; + using System.Collections.Generic; + using Microsoft.Azure.Management.Resources.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.Storage.Models; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Management.StorageCache.Tests.Helpers; + using Microsoft.Azure.Test.HttpRecorder; + using Microsoft.Rest.ClientRuntime.Azure.TestFramework; + using Xunit; + using Xunit.Abstractions; + + /// + /// Storage account fixture to share created storage accounts between the tests in same class. + /// + [Collection("StorageCacheCollection")] + public class StorageAccountsFixture : IDisposable + { + /// + /// Defines the Fixture. + /// + private readonly StorageCacheTestFixture fixture; + + /// + /// Defines the storage accounts cache. + /// + private readonly Dictionary storageAccountsCache = new Dictionary(); + + /// + /// Defines the blob containers cache. + /// + private readonly Dictionary blobContainersCache = new Dictionary(); + + /// + /// Initializes a new instance of the class. + /// + /// StorageCacheTestFixture. + public StorageAccountsFixture(StorageCacheTestFixture fixture) + { + this.fixture = fixture; + } + + /// + public void Dispose() + { + // We do not create anything in this fixture but + // just use the StorageCacheTestFixture which has its own disposal method. + } + + /// + /// Adds storage account in given resource group and applies required roles. + /// + /// StorageCacheTestContext. + /// Object representing a resource group. + /// suffix. + /// Whether to add storage account contributor roles. + /// testOutputHelper. + /// Sleep time for permissions to get propagated. + /// Whether to wait for permissions to be propagated. + /// StorageAccount. + public StorageAccount AddStorageAccount( + StorageCacheTestContext context, + ResourceGroup resourceGroup, + string suffix = null, + bool addPermissions = true, + ITestOutputHelper testOutputHelper = null, + int sleep = 300, + bool waitForPermissions = true) + { + if (this.storageAccountsCache.TryGetValue(resourceGroup.Name + suffix, out StorageAccount storageAccount)) + { + if (testOutputHelper != null) + { + testOutputHelper.WriteLine($"Using existing storage account {resourceGroup.Name + suffix}"); + } + + return storageAccount; + } + + StorageManagementClient storageManagementClient = context.GetClient(); + StorageAccountsHelper storageAccountsHelper = new StorageAccountsHelper(storageManagementClient, resourceGroup); + storageAccount = storageAccountsHelper.CreateStorageAccount(resourceGroup.Name + suffix); + if (addPermissions) + { + this.AddStorageAccountAccessRules(context, storageAccount); + } + + if (waitForPermissions && HttpMockServer.Mode == HttpRecorderMode.Record) + { + testOutputHelper.WriteLine($"Sleeping {sleep.ToString()} seconds while permissions propagates."); + TestUtilities.Wait(new TimeSpan(0, 0, sleep)); + } + + this.storageAccountsCache.Add(storageAccount.Name, storageAccount); + return storageAccount; + } + + /// + /// Adds blob container. + /// + /// StorageCacheTestContext. + /// Object representing a resource group. + /// Object representing a storage account. + /// suffix. + /// testOutputHelper. + /// BlobContainer. + public BlobContainer AddBlobContainer( + StorageCacheTestContext context, + ResourceGroup resourceGroup, + StorageAccount storageAccount, + string suffix = null, + ITestOutputHelper testOutputHelper = null) + { + if (this.blobContainersCache.TryGetValue(resourceGroup.Name + suffix, out BlobContainer blobContainer)) + { + if (testOutputHelper != null) + { + testOutputHelper.WriteLine($"Using existing blob container {resourceGroup.Name + suffix}"); + } + + return blobContainer; + } + + StorageManagementClient storageManagementClient = context.GetClient(); + StorageAccountsHelper storageAccountsHelper = new StorageAccountsHelper(storageManagementClient, resourceGroup); + blobContainer = storageAccountsHelper.CreateBlobContainer(storageAccount.Name, resourceGroup.Name + suffix); + this.blobContainersCache.Add(blobContainer.Name, blobContainer); + return blobContainer; + } + + /// + /// Creates storage account, blob container and adds CLFS storage account to cache. + /// + /// StorageCacheTestContext. + /// suffix. + /// Whether to wait for storage target to deploy. + /// Whether to add storage account contributor roles. + /// testOutputHelper. + /// Sleep time for permissions to get propagated. + /// Whether to wait for permissions to be propagated. + /// Max retries. + /// StorageTarget. + public StorageTarget AddClfsStorageAccount( + StorageCacheTestContext context, + string suffix = null, + bool waitForStorageTarget = true, + bool addPermissions = true, + ITestOutputHelper testOutputHelper = null, + int sleep = 300, + bool waitForPermissions = true, + int maxRequestTries = 25) + { + string storageTargetName = string.IsNullOrEmpty(suffix) ? this.fixture.ResourceGroup.Name : this.fixture.ResourceGroup.Name + suffix; + string junction = "/junction" + suffix; + var storageAccount = this.AddStorageAccount( + context, + this.fixture.ResourceGroup, + suffix, addPermissions, + testOutputHelper, + sleep: sleep, + waitForPermissions: waitForPermissions); + var blobContainer = this.AddBlobContainer(context, this.fixture.ResourceGroup, storageAccount, suffix, testOutputHelper); + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + storageAccount.Name, + blobContainer.Name, + junction); + StorageTarget storageTarget = this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + storageTargetName, + storageTargetParameters, + testOutputHelper, + waitForStorageTarget, + maxRequestTries); + + if (testOutputHelper != null) + { + testOutputHelper.WriteLine($"Storage target Name {storageTarget.Name}"); + testOutputHelper.WriteLine($"Storage target NamespacePath {storageTarget.Junctions[0].NamespacePath}"); + testOutputHelper.WriteLine($"Storage target TargetPath {storageTarget.Junctions[0].TargetPath}"); + testOutputHelper.WriteLine($"Storage target Id {storageTarget.Id}"); + testOutputHelper.WriteLine($"Storage target Target {storageTarget.Clfs.Target}"); + } + + return storageTarget; + } + + /// + /// Adds storage account access roles. + /// Storage Account Contributor or Storage blob Contributor. + /// + /// Object representing a StorageCacheTestContext. + /// Object representing a storage account. + /// Object representing a testOutputHelper. + private void AddStorageAccountAccessRules( + StorageCacheTestContext context, + StorageAccount storageAccount, + ITestOutputHelper testOutputHelper = null) + { + try + { + string role1 = "Storage Account Contributor"; + context.AddRoleAssignment(context, storageAccount.Id, role1, TestUtilities.GenerateGuid().ToString()); + + // string role2 = "Storage Blob Data Contributor"; + // context.AddRoleAssignment(context, storageAccount.Id, role2, TestUtilities.GenerateGuid().ToString()); + if (testOutputHelper != null) + { + testOutputHelper.WriteLine($"Added {role1} role to storage account {storageAccount.Name}."); + } + } + catch (Exception) + { + throw; + } + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheCollection.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheCollection.cs new file mode 100644 index 000000000000..15c873329527 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheCollection.cs @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Fixtures +{ + using Xunit; + + /// + /// This class is used by XUnit. + /// + [CollectionDefinition("StorageCacheCollection")] + public class StorageCacheCollection : ICollectionFixture + { + // This class has no code, and is never created. Its purpose is simply + // to be the place to apply [CollectionDefinition] and all the + // ICollectionFixture<> interfaces + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheTestContext.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheTestContext.cs new file mode 100644 index 000000000000..0f4ec10baa7d --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheTestContext.cs @@ -0,0 +1,305 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Fixtures +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Net; + using System.Net.Http; + using Microsoft.Azure.Management.Authorization; + using Microsoft.Azure.Management.Authorization.Models; + using Microsoft.Azure.Management.Network; + using Microsoft.Azure.Management.Network.Models; + using Microsoft.Azure.Management.Resources; + using Microsoft.Azure.Management.Resources.Models; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Management.StorageCache.Tests.Utilities; + using Microsoft.Rest.Azure; + using Microsoft.Rest.ClientRuntime.Azure.TestFramework; + + /// + /// Defines the . + /// + public class StorageCacheTestContext : IDisposable + { + /// + /// Defines the mockContext. + /// + private readonly MockContext mockContext; + + /// + /// Defines the serviceClientCache. + /// + private readonly Dictionary serviceClientCache = new Dictionary(); + + /// + /// Defines the disposedValue. + /// + private bool disposedValue = false; + + /// + /// Initializes a new instance of the class. + /// + /// Class object. + /// Method name of the calling method. + public StorageCacheTestContext( + object suiteObject, + [System.Runtime.CompilerServices.CallerMemberName] + string methodName = ".ctor") + { + this.mockContext = MockContext.Start(suiteObject.GetType().Name, methodName); + this.RegisterSubscriptionForResource("Microsoft.StorageCache"); + } + + /// + /// Get service client. + /// + /// HTTP delegation handler. + /// The type of the service client to return. + /// A management client, created from the current context (environment variables). + public TServiceClient GetClient(DelegatingHandler delegationHandler = null) + where TServiceClient : class, IDisposable + { + if (this.serviceClientCache.TryGetValue(typeof(TServiceClient), out IDisposable clientObject)) + { + return (TServiceClient)clientObject; + } + + if (delegationHandler == null) + { + delegationHandler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK, IsPassThrough = true }; + } + + TServiceClient client = this.mockContext.GetServiceClient(handlers: delegationHandler); + this.serviceClientCache.Add(typeof(TServiceClient), client); + return client; + } + + /// + /// Get or create resource group. + /// + /// The name of the resource group. + /// Location where resource group is to be created. + /// ResourceGroup object. + public ResourceGroup GetOrCreateResourceGroup(string resourceGroupName, string location) + { + ResourceManagementClient resourceClient = this.GetClient(); + ResourceGroup resourceGroup = this.GetResourceGroupIfExists(resourceGroupName); + + if (resourceGroup == null) + { + resourceGroup = resourceClient.ResourceGroups.CreateOrUpdate( + resourceGroupName, + new ResourceGroup + { + Location = location, + Tags = new Dictionary() { { resourceGroupName, DateTime.UtcNow.ToString("u") } }, + }); + } + + return resourceGroup; + } + + /// + /// Get or create virtual network. + /// + /// Object representing a resource group. + /// The name of the virtual network. + /// VirtualNetwork object. + public VirtualNetwork GetOrCreateVirtualNetwork(ResourceGroup resourceGroup, string virtualNetworkName) + { + NetworkManagementClient networkManagementClient = this.GetClient(); + VirtualNetwork virtualNetwork = null; + try + { + virtualNetwork = networkManagementClient.VirtualNetworks.Get(resourceGroup.Name, virtualNetworkName); + } + catch (CloudException ex) + { + if (ex.Body.Code != "ResourceNotFound") + { + throw; + } + } + + if (virtualNetwork == null) + { + var vnet = new VirtualNetwork() + { + Location = resourceGroup.Location, + AddressSpace = new AddressSpace() + { + AddressPrefixes = new List { "10.1.0.0/16" }, + }, + }; + virtualNetwork = networkManagementClient.VirtualNetworks.CreateOrUpdate(resourceGroup.Name, virtualNetworkName, vnet); + } + + return virtualNetwork; + } + + /// + /// Get Or create subnet. + /// + /// Object representing a resource group. + /// Object representing a virtual network. + /// The name of the subnet. + /// Subnet object. + public Subnet GetOrCreateSubnet(ResourceGroup resourceGroup, VirtualNetwork virtualNetwork, string subnetName) + { + NetworkManagementClient networkManagementClient = this.GetClient(); + Subnet subNet = null; + try + { + subNet = networkManagementClient.Subnets.Get(resourceGroup.Name, virtualNetwork.Name, subnetName); + } + catch (CloudException ex) + { + if (ex.Body.Code != "NotFound") + { + throw; + } + } + + if (subNet == null) + { + var snet = new Subnet() + { + Name = subnetName, + AddressPrefix = "10.1.0.0/24", + }; + + subNet = networkManagementClient.Subnets.CreateOrUpdate(resourceGroup.Name, virtualNetwork.Name, subnetName, snet); + } + + return subNet; + } + + /// + /// Get cache if exists. + /// + /// Object representing a resource group. + /// The name of the cache. + /// Cache object if cache exists else null. + public Cache GetCacheIfExists(ResourceGroup resourceGroup, string cacheName) + { + StorageCacheManagementClient storagecacheManagementClient = this.GetClient(); + storagecacheManagementClient.ApiVersion = Constants.DefaultAPIVersion; + try + { + return storagecacheManagementClient.Caches.Get(resourceGroup.Name, cacheName); + } + catch (CloudErrorException ex) + { + if (ex.Body.Error.Code == "ResourceNotFound") + { + return null; + } + else + { + throw; + } + } + } + + /// + /// Get resource group if exists. + /// + /// The name of the resource group. + /// ResourceGroup object if resource group exists else null. + public ResourceGroup GetResourceGroupIfExists(string resourceGroupName) + { + ResourceManagementClient resourceManagementClient = this.GetClient(); + try + { + return resourceManagementClient.ResourceGroups.Get(resourceGroupName); + } + catch (CloudException ex) + { + if (ex.Body.Code == "ResourceGroupNotFound") + { + return null; + } + else + { + throw; + } + } + } + + /// + /// Register subscription for resource. + /// + /// Resource provider name. + public void RegisterSubscriptionForResource(string providerName) + { + ResourceManagementClient resourceManagementClient = this.GetClient(); + var reg = resourceManagementClient.Providers.Register(providerName); + StorageCacheTestUtilities.ThrowIfTrue(reg == null, $"Failed to register provider {providerName}"); + var result = resourceManagementClient.Providers.Get(providerName); + StorageCacheTestUtilities.ThrowIfTrue(result == null, $"Failed to register provier {providerName}"); + } + + /// + /// Add role assignment by role name. + /// + /// Object representing a StorageCacheTestContext. + /// The scope of the role assignment to create. + /// The role name. + /// The name of the role assignment to create. + public void AddRoleAssignment(StorageCacheTestContext context, string scope, string roleName, string assignmentName) + { + AuthorizationManagementClient authorizationManagementClient = context.GetClient(); + var roleDefinition = authorizationManagementClient.RoleDefinitions + .List(scope) + .First(role => role.RoleName.StartsWith(roleName)); + + var newRoleAssignment = new RoleAssignmentCreateParameters() + { + RoleDefinitionId = roleDefinition.Id, + PrincipalId = Constants.StorageCacheResourceProviderPrincipalId, + + // The principal ID assigned to the role. + // This maps to the ID inside the Active Directory. + // It can point to a user, service principal, or security group. + CanDelegate = false, + }; + + authorizationManagementClient.RoleAssignments.Create(scope, assignmentName, newRoleAssignment); + } + + /// + /// This code added to correctly implement the disposable pattern. + /// + public void Dispose() + { + this.Dispose(true); + } + + /// + /// Dispose managed state. + /// + /// true if we should dispose managed state, otherwise false. + protected virtual void Dispose(bool disposing) + { + if (!this.disposedValue) + { + if (disposing) + { + // Dispose clients + foreach (IDisposable client in this.serviceClientCache.Values) + { + client.Dispose(); + } + + // Dispose context + this.mockContext.Dispose(); + } + + this.disposedValue = true; + } + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheTestFixture.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheTestFixture.cs new file mode 100644 index 000000000000..7dcb35bce41f --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Fixtures/StorageCacheTestFixture.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Fixtures +{ + using System; + using System.Text.RegularExpressions; + using Microsoft.Azure.Management.Network.Models; + using Microsoft.Azure.Management.Resources.Models; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Management.StorageCache.Tests.Helpers; + using Microsoft.Azure.Management.StorageCache.Tests.Utilities; + using Microsoft.Azure.Test.HttpRecorder; + using Microsoft.Rest.ClientRuntime.Azure.TestFramework; + using Xunit.Sdk; + + /// + /// Defines the . + /// + public class StorageCacheTestFixture : TestBase, IDisposable + { + /// + /// Defines the SubnetRegex. + /// + private static readonly Regex SubnetRegex = new Regex(@"^(/subscriptions/[-0-9a-f]{36}/resourcegroups/[-\w\._\(\)]+/providers/Microsoft.Network/virtualNetworks/(?[-\w\._\(\)]+))/subnets/(?[-\w\._\(\)]+)$", RegexOptions.Compiled | RegexOptions.IgnoreCase); + + /// + /// Defines the resGroupName. + /// + private readonly string resGroupName; + + /// + /// Defines the virNetworkName. + /// + private readonly string virNetworkName; + + /// + /// Defines the subnetName. + /// + private readonly string subnetName; + + /// + /// Defines the cacheName. + /// + private readonly string cacheName; + + /// + /// Initializes a new instance of the class. + /// + public StorageCacheTestFixture() + { + using (this.Context = new StorageCacheTestContext(this)) + { + this.Context = new StorageCacheTestContext(this); + try + { + StorageCacheManagementClient storagecacheMgmtClient = this.Context.GetClient(); + storagecacheMgmtClient.ApiVersion = Constants.DefaultAPIVersion; + + if (string.IsNullOrEmpty(StorageCacheTestEnvironmentUtilities.ResourceGroupName) && + string.IsNullOrEmpty(StorageCacheTestEnvironmentUtilities.CacheName)) + { + this.resGroupName = StorageCacheTestUtilities.GenerateName(StorageCacheTestEnvironmentUtilities.ResourcePrefix); + this.virNetworkName = "VNet-" + this.resGroupName; + this.subnetName = "Subnet-" + this.resGroupName; + this.cacheName = "Cache-" + this.resGroupName; + } + else + { + this.resGroupName = StorageCacheTestEnvironmentUtilities.ResourceGroupName; + this.cacheName = StorageCacheTestEnvironmentUtilities.CacheName; + this.ResourceGroup = this.Context.GetOrCreateResourceGroup(this.resGroupName, StorageCacheTestEnvironmentUtilities.Location); + this.Cache = this.Context.GetCacheIfExists(this.ResourceGroup, this.cacheName); + + if (this.Cache != null) + { + Match subnetMatch = SubnetRegex.Match(this.Cache.Subnet); + this.virNetworkName = subnetMatch.Groups["VNetName"].Value; + this.subnetName = subnetMatch.Groups["SubnetName"].Value; + } + else + { + this.virNetworkName = "VNet-" + this.resGroupName; + this.subnetName = "Subnet-" + this.resGroupName; + } + } + + if (this.ResourceGroup == null) + { + this.ResourceGroup = this.Context.GetOrCreateResourceGroup(this.resGroupName, StorageCacheTestEnvironmentUtilities.Location); + } + + this.VirtualNetwork = this.Context.GetOrCreateVirtualNetwork(this.ResourceGroup, this.virNetworkName); + this.SubNet = this.Context.GetOrCreateSubnet(this.ResourceGroup, this.VirtualNetwork, this.subnetName); + + this.SubscriptionID = StorageCacheTestEnvironmentUtilities.SubscriptionId(); + this.CacheHelper = new CacheHelper(this.SubscriptionID, storagecacheMgmtClient, this.ResourceGroup, this.VirtualNetwork, this.SubNet); + var sku = StorageCacheTestEnvironmentUtilities.CacheSku; + var size = StorageCacheTestEnvironmentUtilities.CacheSize; + var int_size = int.Parse(size); + if (this.Cache == null) + { + this.Cache = null; + this.Cache = this.CacheHelper.Create(this.cacheName, sku, int_size); + if (HttpMockServer.Mode == HttpRecorderMode.Record) + { + this.CacheHelper.CheckCacheState(this.cacheName); + } + } + } + catch (Exception) + { + this.Context.Dispose(); + throw; + } + } + } + + /// + /// Gets the subscriptionID. + /// + public string SubscriptionID { get; } + + /// + /// Gets or sets the Context. + /// + public StorageCacheTestContext Context { get; set; } + + /// + /// Gets or sets the ResourceGroup. + /// + public ResourceGroup ResourceGroup { get; set; } + + /// + /// Gets or sets the VirtualNetwork. + /// + public VirtualNetwork VirtualNetwork { get; set; } + + /// + /// Gets or sets the SubNet. + /// + public Subnet SubNet { get; set; } + + /// + /// Gets or sets the Hpc cache. + /// + public CacheHelper CacheHelper { get; set; } + + /// + /// Gets or sets the Cache. + /// + public Cache Cache { get; set; } + + /// + /// Dispose the object. + /// + public void Dispose() + { + this.Context.Dispose(); + } + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Helpers/CacheHelper.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Helpers/CacheHelper.cs new file mode 100644 index 000000000000..55f25facc234 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Helpers/CacheHelper.cs @@ -0,0 +1,517 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Helpers +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Azure.Management.Network; + using Microsoft.Azure.Management.Network.Models; + using Microsoft.Azure.Management.Resources; + using Microsoft.Azure.Management.Resources.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.StorageCache; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Test.HttpRecorder; + using Microsoft.Rest.Azure; + using Microsoft.Rest.ClientRuntime.Azure.TestFramework; + using Xunit.Abstractions; + + /// + /// Storage cache helper. + /// + public class CacheHelper + { + /// + /// Target resource group. + /// + private readonly ResourceGroup resourceGroup; + + /// + /// Target virtual network. + /// + private readonly VirtualNetwork virtualNetwork; + + /// + /// Target subent. + /// + private readonly Subnet subNet; + + /// + /// Subscription id. + /// + private readonly string subscriptionId; + + /// + /// Initializes a new instance of the class. + /// + /// Subscription id. + /// Object representing a cache management client. + /// Object representing a resource group. + /// Object representing a virtual network. + /// Object representing a subnet for cache. + public CacheHelper(string subscription_id, StorageCacheManagementClient client, ResourceGroup resourceGroup, VirtualNetwork virtualNetwork, Subnet subnet) + { + this.StoragecacheManagementClient = client; + this.resourceGroup = resourceGroup; + this.virtualNetwork = virtualNetwork; + this.subNet = subnet; + this.subscriptionId = subscription_id; + } + + /// + /// Gets or Sets the Storage cache management client. + /// + public StorageCacheManagementClient StoragecacheManagementClient { get; set; } + + /// + /// Gets or sets the CacheHealth + /// Gets or sets cache health. + /// + public string CacheHealth { get; set; } + + /// + /// Gets or sets the ProvisioningState + /// Gets or sets cache provisioning state. + /// + public string ProvisioningState { get; set; } + + /// + /// Get cache. + /// + /// Name of the cache. + /// Cache object. + public Cache Get(string name) + { + return this.StoragecacheManagementClient.Caches.Get(this.resourceGroup.Name, name); + } + + /// + /// Create cache. + /// + /// Name of the cache. + /// Name of the SKU. + /// Size of cache. + /// Skip get cache before creating it. + /// Cache object. + public Cache Create(string name, string sku, int cacheSize, bool skipGet = false) + { + Cache cache; + if (!skipGet) + { + try + { + cache = this.Get(name); + } + catch (CloudErrorException ex) + { + if (ex.Body.Error.Code == "ResourceNotFound") + { + cache = null; + } + else + { + throw; + } + } + } + else + { + cache = null; + } + + if (cache == null) + { + var cacheSku = new CacheSku() { Name = sku }; + var subnetUri = $"/subscriptions/{this.subscriptionId}/resourcegroups/{this.resourceGroup.Name}/providers/Microsoft.Network/virtualNetworks/{this.virtualNetwork.Name}/subnets/{this.subNet.Name}"; + var cacheParameters = new Cache() { CacheSizeGB = cacheSize, Location = this.resourceGroup.Location, Sku = cacheSku, Subnet = subnetUri }; + cache = this.StoragecacheManagementClient.Caches.CreateOrUpdate(this.resourceGroup.Name, name, cacheParameters); + } + + return cache; + } + + /// + /// Get cache provisioning state. + /// + /// Name of the cache. + /// Cache provisioning state. + public string GetCacheProvisioningState(string name) + { + try + { + var cache = this.Get(name); + string state = cache.ProvisioningState; + return state; + } + catch (CloudException) + { + return string.Empty; + } + } + + /// + /// Get cache health. + /// + /// Name of the cache. + /// Cache health. + public string GetCacheHealthState(string name) + { + try + { + var cache = this.Get(name); + string state = cache.Health.State; + return state; + } + catch (CloudException) + { + return string.Empty; + } + } + + /// + /// Check both provisioning and health state of the cache. + /// + /// Name of the cache. + public void CheckCacheState(string name) + { + this.WaitForCacheState(this.GetCacheProvisioningState, name, "Succeeded").GetAwaiter().GetResult(); + this.WaitForCacheState(this.GetCacheHealthState, name, "Healthy").GetAwaiter().GetResult(); + } + + /// + /// Gets storage target. + /// + /// Storage cache name. + /// Storage target name. + /// Raise exception. + /// Storage target. + public StorageTarget GetStorageTarget(string cacheName, string storageTargetName, bool raise = false) + { + StorageTarget storageTarget; + try + { + storageTarget = this.StoragecacheManagementClient.StorageTargets.Get(this.resourceGroup.Name, cacheName, storageTargetName); + } + catch (CloudException ex) + { + if (ex.Body.Code == "ResourceNotFound") + { + if (raise) + { + throw; + } + + storageTarget = null; + } + else + { + throw; + } + } + + return storageTarget; + } + + /// + /// Deletes storage target. + /// + /// Storage cache name. + /// Storage target name. + /// Object representing a ITestOutputHelper. + public void DeleteStorageTarget(string cacheName, string storageTargetName, ITestOutputHelper testOutputHelper = null) + { + this.StoragecacheManagementClient.StorageTargets.Delete(this.resourceGroup.Name, cacheName, storageTargetName); + this.WaitForStoragteTargetState(cacheName, storageTargetName, "Deleting", testOutputHelper).GetAwaiter().GetResult(); + this.WaitForStoragteTargetState(cacheName, storageTargetName, "Succeeded", testOutputHelper).GetAwaiter().GetResult(); + } + + /// + /// Create CLFS storage target parameters. + /// + /// Storage account name. + /// Storage container name. + /// namepace path. + /// Subscription id. + /// Resource group name. + /// CLFS storage target parameters. + public StorageTarget CreateClfsStorageTargetParameters( + string storageAccountName, + string containerName, + string namespacePath, + string subscriptionId = null, + string resourceGroupName = null) + { + var subscriptionID = string.IsNullOrEmpty(subscriptionId) ? this.subscriptionId : subscriptionId; + var resourceGroup = string.IsNullOrEmpty(resourceGroupName) ? this.resourceGroup.Name : resourceGroupName; + ClfsTarget clfsTarget = new ClfsTarget() + { + Target = + $"/subscriptions/{subscriptionID}/" + + $"resourceGroups/{resourceGroup}/" + + $"providers/Microsoft.Storage/storageAccounts/{storageAccountName}/" + + $"blobServices/default/containers/{containerName}", + }; + + NamespaceJunction namespaceJunction = new NamespaceJunction() + { + NamespacePath = namespacePath, + TargetPath = "/", + }; + + StorageTarget storageTargetParameters = new StorageTarget + { + TargetType = "clfs", + Clfs = clfsTarget, + Junctions = new List() { namespaceJunction }, + }; + + return storageTargetParameters; + } + + /// + /// Create CLFS storage target. + /// + /// Storage cache name. + /// Storage target name. + /// Object representing a Storage target parameters. + /// Object representing a ITestOutputHelper. + /// Wait for storage target to deploy. + /// Max retries. + /// Delay between each retries in seconds. + /// CLFS storage target. + public StorageTarget CreateStorageTarget( + string cacheName, + string storageTargetName, + StorageTarget storageTargetParameters, + ITestOutputHelper testOutputHelper = null, + bool waitForStorageTarget = true, + int maxRequestTries = 25, + int delayBetweenTries = 90) + { + StorageTarget storageTarget; + storageTarget = this.Retry( + () => + this.StoragecacheManagementClient.StorageTargets.CreateOrUpdate( + this.resourceGroup.Name, + cacheName, + storageTargetName, + storageTargetParameters), + maxRequestTries, + delayBetweenTries, + "hasn't sufficient permissions", + testOutputHelper); + + if (waitForStorageTarget) + { + this.WaitForStoragteTargetState(cacheName, storageTargetName, "Succeeded", testOutputHelper).GetAwaiter().GetResult(); + } + + return storageTarget; + } + + /// + /// Blocks until storage target ProvisioningState is as expected or timeout occurs. + /// + /// Name of the cache. + /// Name of the storage target. + /// Expected sate of the storage target. + /// Object representing a Storage target parameters. + /// Delay between cache polling. + /// Timeout for cache polling. + /// A representing the asynchronous operation. + public async Task WaitForStoragteTargetState( + string cacheName, + string storageTargetName, + string state, + ITestOutputHelper testOutputHelper = null, + int polling_delay = 60, + int timeout = 900) + { + var waitTask = Task.Run(async () => + { + string currentState = null; + while (!string.Equals(currentState, state)) + { + currentState = this.GetStorageTarget(cacheName, storageTargetName).ProvisioningState; + if (testOutputHelper != null) + { + testOutputHelper.WriteLine($"Waiting for successful deploy of storage target {storageTargetName}, current state is {currentState}"); + } + + if (string.Equals(currentState, "Failed")) + { + throw new Exception($"Storage target {storageTargetName} failed to deploy."); + } + + if (HttpMockServer.Mode == HttpRecorderMode.Record) + { + await Task.Delay(new TimeSpan(0, 0, polling_delay)); + } + } + }); + + if (waitTask != await Task.WhenAny(waitTask, Task.Delay(new TimeSpan(0, 0, timeout)))) + { + throw new TimeoutException(); + } + } + + /// + /// Wait for expected cache state. + /// + /// Function to call. + /// Name of the cache. + /// Expected sate of the cache. + /// Timeout for polling. + /// Delay between polling. + /// A representing the asynchronous operation. + public async Task WaitForCacheState( + Func operation, + string name, + string state, + int timeout = 1800, + int polling_delay = 120) + { + var waitTask = Task.Run(async () => + { + string currentState = null; + while (!string.Equals(currentState, state)) + { + currentState = operation(name); + if (operation == this.GetCacheProvisioningState + && string.Equals(currentState, "Failed", StringComparison.OrdinalIgnoreCase)) + { + throw new Exception(string.Format("Cache {0} failed to deploy.", name)); + } + + await Task.Delay(new TimeSpan(0, 0, polling_delay)); + } + + if (operation == this.GetCacheProvisioningState) + { + this.ProvisioningState = currentState; + } + + if (operation == this.GetCacheHealthState) + { + this.CacheHealth = currentState; + } + }); + + if (waitTask != await Task.WhenAny(waitTask, Task.Delay(new TimeSpan(0, 0, timeout)))) + { + throw new TimeoutException(); + } + } + + /// + /// Retry on CloudErrorException with particular message. + /// + /// Method return type. + /// Method to execute. + /// Max retries. + /// Delay between each retries in seconds. + /// Exception message to verify. + /// testOutputHelper. + /// Whatever action parameter returns. + public TRet Retry( + Func action, + int maxRequestTries, + int delayBetweenTries, + string exceptionMessage, + ITestOutputHelper testOutputHelper = null) + { + var remainingTries = maxRequestTries; + var exceptions = new List(); + + do + { + --remainingTries; + try + { + return action(); + } + catch (CloudErrorException e) + { + if (e.Body.Error.Message.Contains(exceptionMessage)) + { + if (remainingTries > 0) + { + if (testOutputHelper != null) + { + testOutputHelper.WriteLine(e.Body.Error.Message); + testOutputHelper.WriteLine($"Sleeping for {delayBetweenTries} time before retrying."); + } + + TestUtilities.Wait(new TimeSpan(0, 0, delayBetweenTries)); + } + + exceptions.Add(e); + } + else + { + throw; + } + } + } + while (remainingTries > 0); + throw this.AggregatedExceptions(exceptions); + } + + /// + /// An exception handler which returns an unique or aggregated exception. + /// + /// List of an exceptions. + /// an aggregate or unique exception. + private Exception AggregatedExceptions(List exceptions) + { + var uniqueExceptions = exceptions.Distinct(new ExceptionEqualityComparer()); + + // If all the requests failed with the same exception, + // just return one exception to represent them all. + if (uniqueExceptions.Count() == 1) + { + return uniqueExceptions.First(); + } + + // If all the requests failed but for different reasons, return an AggregateException + // with all the root-cause exceptions. + return new AggregateException("There is a problem with the service.", uniqueExceptions); + } + + /// + /// Used to aggregate exceptions that occur on request retries. + /// + private class ExceptionEqualityComparer : IEqualityComparer + { + public bool Equals(Exception e1, Exception e2) + { + if (e2 == null && e1 == null) + { + return true; + } + else if (e1 == null | e2 == null) + { + return false; + } + else if (e1.GetType().Name.Equals(e2.GetType().Name) && e1.Message.Equals(e2.Message)) + { + return true; + } + else + { + return false; + } + } + + public int GetHashCode(Exception e) + { + return (e.GetType().Name + e.Message).GetHashCode(); + } + } + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Helpers/StorageAccountsHelper.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Helpers/StorageAccountsHelper.cs new file mode 100644 index 000000000000..0ab2ec2309d4 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Helpers/StorageAccountsHelper.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Helpers +{ + using System.Collections.Generic; + using Microsoft.Azure.Management.Resources.Models; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.Storage.Models; + + /// + /// Storage account helper. + /// + public class StorageAccountsHelper + { + private static readonly string DefaultSkuName = SkuName.StandardLRS; + private static readonly string DefaultKind = Kind.StorageV2; + + /// + /// Target resource group. + /// + private readonly ResourceGroup resourceGroup; + + /// + /// Initializes a new instance of the class. + /// + /// Object representing a storage management client. + /// Object representing a resource group. + public StorageAccountsHelper(StorageManagementClient client, ResourceGroup resourceGroup) + { + this.StorageManagementClient = client; + this.resourceGroup = resourceGroup; + } + + /// + /// Gets or Sets the Storage cache management client. + /// + public StorageManagementClient StorageManagementClient { get; set; } + + /// + /// Creates storage account. + /// + /// Storage account to be created. + /// Storage SKU. + /// Storage kind. + /// Stoprage account. + public StorageAccount CreateStorageAccount(string storageAccountName, string skuName = null, string storageKind = null) + { + var sku = string.IsNullOrEmpty(skuName) ? DefaultSkuName : skuName; + var kind = string.IsNullOrEmpty(storageKind) ? DefaultKind : storageKind; + + StorageAccountCreateParameters storageAccountCreateParameters = new StorageAccountCreateParameters + { + Location = this.resourceGroup.Location, + + // Tags = DefaultTags, + Sku = new Sku() { Name = sku }, + Kind = kind, + }; + StorageAccount storageAccount = this.StorageManagementClient.StorageAccounts.Create(this.resourceGroup.Name, storageAccountName, storageAccountCreateParameters); + return storageAccount; + } + + /// + /// Create Blob container. + /// + /// Storage account where container is to be created. + /// Container name. + /// Blob container. + public BlobContainer CreateBlobContainer(string storageAccountName, string containerName) + { + BlobContainer blobContainer = this.StorageManagementClient.BlobContainers.Create(this.resourceGroup.Name, storageAccountName, containerName, publicAccess: PublicAccess.Blob); + return blobContainer; + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Microsoft.Azure.Management.StorageCache.Tests.csproj b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Microsoft.Azure.Management.StorageCache.Tests.csproj new file mode 100644 index 000000000000..8de978f6e010 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Microsoft.Azure.Management.StorageCache.Tests.csproj @@ -0,0 +1,45 @@ + + + + + + + StorageCache.Tests + StorageCache.Tests Class Library + StorageCache.Tests + 1.0.0 + true + + + + false + false + + + + + + + + + + + + + + + + + PreserveNewest + + + + + + + + + + + + diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Properties/AssemblyInfo.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..789e350024aa --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Properties/AssemblyInfo.cs @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Reflection; +using System.Resources; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Microsoft Azure Storagecache Management Library")] +[assembly: AssemblyDescription("Provides Microsoft Azure Storagecache management functions for managing the Microsoft Azure HPC cache service.")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Microsoft Azure .NET SDK")] +[assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation")] +[assembly: NeutralResourcesLanguage("en")] diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestFlushCacheWithoutStorageTarget.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestFlushCacheWithoutStorageTarget.json new file mode 100644 index 000000000000..1613c213730b --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestFlushCacheWithoutStorageTarget.json @@ -0,0 +1,491 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4ca1ce9c-b2bc-4b2f-92a5-3aed649f3ad1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "81468ca9-40be-4ccd-a4d2-aad6ef5acbc9" + ], + "x-ms-correlation-request-id": [ + "81468ca9-40be-4ccd-a4d2-aad6ef5acbc9" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182158Z:81468ca9-40be-4ccd-a4d2-aad6ef5acbc9" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:21:57 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a5e878ec-4d78-459d-a453-e385ea97a5d2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-request-id": [ + "50cb6666-5552-4fea-949b-8a94fd9ddc89" + ], + "x-ms-correlation-request-id": [ + "50cb6666-5552-4fea-949b-8a94fd9ddc89" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182158Z:50cb6666-5552-4fea-949b-8a94fd9ddc89" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:21:57 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/flush?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvZmx1c2g/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "670ad850-7909-4077-931e-105d57176f8b" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-correlation-request-id": [ + "948acb6e-b922-4ff3-967e-a21015ebbb75" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182158Z:948acb6e-b922-4ff3-967e-a21015ebbb75" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:21:58 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "", + "StatusCode": 204 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "e04723d2-9895-4a12-9a4d-d34a28774ec7" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "f8b5c5de-b752-4c4d-a56d-c9fe2986115e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182158Z:f8b5c5de-b752-4c4d-a56d-c9fe2986115e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:21:58 GMT" + ], + "Content-Length": [ + "1063" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Flushing\",\r\n \"statusDescription\": \"The cache is flushing data to the Storage Targets.\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "3925628a-72ef-43f4-a505-08fd79e31ad9" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "6f0b040a-e8c4-40b8-8cf3-36bb15a19e9b" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182204Z:6f0b040a-e8c4-40b8-8cf3-36bb15a19e9b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:03 GMT" + ], + "Content-Length": [ + "1063" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Flushing\",\r\n \"statusDescription\": \"The cache is flushing data to the Storage Targets.\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "d6e59920-79c5-4dab-9720-a4bff668318b" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "9e213a13-4aa1-4a34-b3bd-decc97dbca08" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182209Z:9e213a13-4aa1-4a34-b3bd-decc97dbca08" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:09 GMT" + ], + "Content-Length": [ + "1063" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Flushing\",\r\n \"statusDescription\": \"The cache is flushing data to the Storage Targets.\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "08c48e3e-9a2a-4a7f-a6e9-c6a3671c59fc" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "a2537500-dc71-4ab5-9b40-d0b465a4cbdd" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182214Z:a2537500-dc71-4ab5-9b40-d0b465a4cbdd" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:14 GMT" + ], + "Content-Length": [ + "1063" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Flushing\",\r\n \"statusDescription\": \"The cache is flushing data to the Storage Targets.\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "67535705-92b5-40e2-a8fc-8f61abe2dd74" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-correlation-request-id": [ + "0f8e3410-b974-4942-a952-c40e6e41189e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182219Z:0f8e3410-b974-4942-a952-c40e6e41189e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:19 GMT" + ], + "Content-Length": [ + "1041" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Healthy\",\r\n \"statusDescription\": \"The cache is in Running state\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestGetStorageCache.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestGetStorageCache.json new file mode 100644 index 000000000000..594cc18a0bbf --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestGetStorageCache.json @@ -0,0 +1,189 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7ad5c72f-8ff1-4ce9-ac13-de7c0a0d103c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "3755810e-8c8c-4e39-9dba-b4ce6f3ec528" + ], + "x-ms-correlation-request-id": [ + "3755810e-8c8c-4e39-9dba-b4ce6f3ec528" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182241Z:3755810e-8c8c-4e39-9dba-b4ce6f3ec528" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:40 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "9d3a35ed-7ee0-493c-9b4d-a7511c05ed28" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "ab7ce4d2-92ba-4e8e-9ddd-575f369aa40e" + ], + "x-ms-correlation-request-id": [ + "ab7ce4d2-92ba-4e8e-9ddd-575f369aa40e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182241Z:ab7ce4d2-92ba-4e8e-9ddd-575f369aa40e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:40 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "3b8c3126-f785-4340-8326-f301abec207e" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "d8885618-522f-4fc7-96eb-1055a66b4925" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182241Z:d8885618-522f-4fc7-96eb-1055a66b4925" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:41 GMT" + ], + "Content-Length": [ + "1041" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Healthy\",\r\n \"statusDescription\": \"The cache is in Running state\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidCacheSize.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidCacheSize.json new file mode 100644 index 000000000000..a1d59ca992ef --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidCacheSize.json @@ -0,0 +1,249 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "26b66a9f-1bc2-4b86-ac2b-6db50e02817d" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "d8832688-8835-49dd-a1c2-a4ff1de5af1f" + ], + "x-ms-correlation-request-id": [ + "d8832688-8835-49dd-a1c2-a4ff1de5af1f" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182228Z:d8832688-8835-49dd-a1c2-a4ff1de5af1f" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:28 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "087789c2-3d0e-4201-9d5d-cfae00f16eb8" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "43a0085c-c90e-4b5d-b0dd-da1507c42fcc" + ], + "x-ms-correlation-request-id": [ + "43a0085c-c90e-4b5d-b0dd-da1507c42fcc" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182229Z:43a0085c-c90e-4b5d-b0dd-da1507c42fcc" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:28 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/InvalidCache?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0ludmFsaWRDYWNoZT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "ec3bfccc-7f91-4f17-93ea-c1f7cc2d615e" + ], + "x-ms-correlation-request-id": [ + "ec3bfccc-7f91-4f17-93ea-c1f7cc2d615e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182229Z:ec3bfccc-7f91-4f17-93ea-c1f7cc2d615e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:28 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "162" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.StorageCache/caches/InvalidCache' under resource group 'hpc1102xa96a9202' was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/InvalidCache?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0ludmFsaWRDYWNoZT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"cacheSizeGB\": 10,\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\"\r\n },\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "321" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "56202e3e-30fa-4330-ac43-290906dbdd07" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-correlation-request-id": [ + "9352379e-c96e-4be6-bbb9-bdede353c34c" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182230Z:9352379e-c96e-4be6-bbb9-bdede353c34c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:29 GMT" + ], + "Content-Length": [ + "151" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"cacheSizeGB\",\r\n \"message\": \"The value of parameter cacheSizeGB is invalid.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidSku.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidSku.json new file mode 100644 index 000000000000..6bebd67d0afa --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidSku.json @@ -0,0 +1,249 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0d684326-e03f-41e0-8614-9ce177b4356a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "e9eac741-ba09-4db5-bfe4-7b70482c85ee" + ], + "x-ms-correlation-request-id": [ + "e9eac741-ba09-4db5-bfe4-7b70482c85ee" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182236Z:e9eac741-ba09-4db5-bfe4-7b70482c85ee" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:36 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "039b242a-c54a-4a97-91d5-332487e104e2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-request-id": [ + "2a4e5d73-1c38-490a-b301-c93ddf9b5f1e" + ], + "x-ms-correlation-request-id": [ + "2a4e5d73-1c38-490a-b301-c93ddf9b5f1e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182237Z:2a4e5d73-1c38-490a-b301-c93ddf9b5f1e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:36 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/InvalidCacheSku?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0ludmFsaWRDYWNoZVNrdT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "137b92db-b4b3-42c6-8091-db024cfee34d" + ], + "x-ms-correlation-request-id": [ + "137b92db-b4b3-42c6-8091-db024cfee34d" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182237Z:137b92db-b4b3-42c6-8091-db024cfee34d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:37 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "165" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.StorageCache/caches/InvalidCacheSku' under resource group 'hpc1102xa96a9202' was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/InvalidCacheSku?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0ludmFsaWRDYWNoZVNrdT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\"\r\n },\r\n \"sku\": {\r\n \"name\": \"InvalidSku\"\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "322" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "83bcb2dc-7552-413a-93bf-72494ad3813d" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "f473e1b5-f098-4c91-8c0d-0207da979fbd" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182238Z:f473e1b5-f098-4c91-8c0d-0207da979fbd" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:38 GMT" + ], + "Content-Length": [ + "141" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"sku\",\r\n \"message\": \"Specified an unknown Cache SKU 'InvalidSku'.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidSubscription.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidSubscription.json new file mode 100644 index 000000000000..ba48809858e9 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestInvalidSubscription.json @@ -0,0 +1,188 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7a42f25c-ecf5-4a8c-a118-96278c11853a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "bc899191-fdbf-4d07-8c45-73ada6ad2434" + ], + "x-ms-correlation-request-id": [ + "bc899191-fdbf-4d07-8c45-73ada6ad2434" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182226Z:bc899191-fdbf-4d07-8c45-73ada6ad2434" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:26 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "244fea8b-08e6-4d29-90ea-345fe95296b1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "1dfc71e7-59cf-4fbe-a8c2-18561625e2bf" + ], + "x-ms-correlation-request-id": [ + "1dfc71e7-59cf-4fbe-a8c2-18561625e2bf" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182226Z:1dfc71e7-59cf-4fbe-a8c2-18561625e2bf" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:26 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/4525f627-2e14-411c-96b9-7df2be6eeb93/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/InvalidSubscriptionId?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNDUyNWY2MjctMmUxNC00MTFjLTk2YjktN2RmMmJlNmVlYjkzL3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0ludmFsaWRTdWJzY3JpcHRpb25JZD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\"\r\n },\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "323" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "25279c42-733a-49d6-88ec-a4fafb511a9d" + ], + "x-ms-correlation-request-id": [ + "25279c42-733a-49d6-88ec-a4fafb511a9d" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182226Z:25279c42-733a-49d6-88ec-a4fafb511a9d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:25 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "129" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SubscriptionNotFound\",\r\n \"message\": \"The subscription '4525f627-2e14-411c-96b9-7df2be6eeb93' could not be found.\"\r\n }\r\n}", + "StatusCode": 404 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestListStorageCache.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestListStorageCache.json new file mode 100644 index 000000000000..be57cc8147f8 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestListStorageCache.json @@ -0,0 +1,189 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "73b010a4-b2e8-4864-b3dc-45892f66ddc5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "3c2dddf0-ca09-401b-9290-940142e2e94d" + ], + "x-ms-correlation-request-id": [ + "3c2dddf0-ca09-401b-9290-940142e2e94d" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182243Z:3c2dddf0-ca09-401b-9290-940142e2e94d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:42 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f1808c22-a3c7-4e9f-8759-cc2633e3c51b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "9dbaa4d6-8d57-4dd4-9ba0-0842e5761541" + ], + "x-ms-correlation-request-id": [ + "9dbaa4d6-8d57-4dd4-9ba0-0842e5761541" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182243Z:9dbaa4d6-8d57-4dd4-9ba0-0842e5761541" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:42 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/caches?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL2NhY2hlcz9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "acaa76aa-d784-4055-ad73-5d871edf006a" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "017b07a1-30be-4f0b-85fa-7be87b643e80" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182244Z:017b07a1-30be-4f0b-85fa-7be87b643e80" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:43 GMT" + ], + "Content-Length": [ + "3252" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/HPC1028X984B5949/providers/Microsoft.StorageCache/caches/Cache-hpc1028x984b5949\",\r\n \"name\": \"Cache-hpc1028x984b5949\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Healthy\",\r\n \"statusDescription\": \"The cache is in Running state\"\r\n },\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1028x984b5949/providers/Microsoft.Network/virtualNetworks/VNet-hpc1028x984b5949/subnets/Subnet-hpc1028x984b5949\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.23\",\r\n \"firmwareUpdateStatus\": \"available\",\r\n \"firmwareUpdateDeadline\": \"2020-08-11T14:40:41.111Z\",\r\n \"lastFirmwareUpdate\": \"2019-10-28T14:56:54.8350252Z\",\r\n \"pendingFirmwareVersion\": \"5.3.31\"\r\n }\r\n }\r\n },\r\n {\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/HPC1102XA96A9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Healthy\",\r\n \"statusDescription\": \"The cache is in Running state\"\r\n },\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n },\r\n {\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"tags\": {\r\n \"tag1\": \"valueone\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/MAGUERRRES0/providers/Microsoft.StorageCache/caches/maguerr1\",\r\n \"name\": \"maguerr1\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Degraded\",\r\n \"statusDescription\": \"The cache is having trouble communitating with the Storage Target 'S1'\"\r\n },\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/maguerrRes0/providers/Microsoft.Network/virtualNetworks/vnet15/subnets/subnet1\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.21\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-01T21:52:24.2036734Z\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestListStorageCacheByResourceGroup.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestListStorageCacheByResourceGroup.json new file mode 100644 index 000000000000..e176778fedea --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTest/TestListStorageCacheByResourceGroup.json @@ -0,0 +1,189 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c4dba036-1f48-42c9-b2c4-7c2b12375c16" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "b67ad281-e1dc-49d1-befe-b6b9bb1116b3" + ], + "x-ms-correlation-request-id": [ + "b67ad281-e1dc-49d1-befe-b6b9bb1116b3" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182235Z:b67ad281-e1dc-49d1-befe-b6b9bb1116b3" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:34 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "dec0e2e5-3c9f-423e-afa3-e5543ac5cca1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "875652b0-9eb9-4aaf-a607-5284cd4e04e6" + ], + "x-ms-correlation-request-id": [ + "875652b0-9eb9-4aaf-a607-5284cd4e04e6" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182235Z:875652b0-9eb9-4aaf-a607-5284cd4e04e6" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:34 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzP2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "857b38eb-b68f-49ff-8da5-6e1a8d6202e7" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "5d5ef3d2-0b73-4c3a-89eb-b05073ffbeab" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182235Z:5d5ef3d2-0b73-4c3a-89eb-b05073ffbeab" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:35 GMT" + ], + "Content-Length": [ + "1073" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/HPC1102XA96A9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Healthy\",\r\n \"statusDescription\": \"The cache is in Running state\"\r\n },\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTestFixture/.ctor.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTestFixture/.ctor.json new file mode 100644 index 000000000000..6b7e03f1fef9 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageCacheTestFixture/.ctor.json @@ -0,0 +1,1595 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d597e679-4463-4aef-b8fa-ac10bd03725c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "b6430499-6857-401d-8fb8-9535db8e1bcb" + ], + "x-ms-correlation-request-id": [ + "b6430499-6857-401d-8fb8-9535db8e1bcb" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175939Z:b6430499-6857-401d-8fb8-9535db8e1bcb" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:38 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f344dff5-1514-4465-88f1-e1e5e5134bfc" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "a51676a2-e2da-4165-be8a-889a33b1c6b8" + ], + "x-ms-correlation-request-id": [ + "a51676a2-e2da-4165-be8a-889a33b1c6b8" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175939Z:a51676a2-e2da-4165-be8a-889a33b1c6b8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:39 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxNS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "f1690fe4-c3b4-4909-8c4c-848cf8ef3fc2" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "8d42a2ed-18ad-4a40-9d08-6b63ef72fe77" + ], + "x-ms-correlation-request-id": [ + "8d42a2ed-18ad-4a40-9d08-6b63ef72fe77" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175939Z:8d42a2ed-18ad-4a40-9d08-6b63ef72fe77" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:39 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "108" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceGroupNotFound\",\r\n \"message\": \"Resource group 'hpc1102xa96a9202' could not be found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxNS0xMS0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus\",\r\n \"tags\": {\r\n \"hpc1102xa96a9202\": \"2019-11-02 17:59:39Z\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "cdbd43d2-57a3-4129-9e57-9d78076c08bf" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "95" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "3bf6353d-9d9c-4d37-81c9-302fa56d7a1f" + ], + "x-ms-correlation-request-id": [ + "3bf6353d-9d9c-4d37-81c9-302fa56d7a1f" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175940Z:3bf6353d-9d9c-4d37-81c9-302fa56d7a1f" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:40 GMT" + ], + "Content-Length": [ + "236" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\",\r\n \"location\": \"eastus\",\r\n \"tags\": {\r\n \"hpc1102xa96a9202\": \"2019-11-02 17:59:39Z\"\r\n },\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9WTmV0LWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOC0wNy0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0ce9b588-6e4f-42b7-8055-833989cb47b5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "1b3cd62f-1416-4f79-aac6-15c96c035738" + ], + "x-ms-correlation-request-id": [ + "1b3cd62f-1416-4f79-aac6-15c96c035738" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175941Z:1b3cd62f-1416-4f79-aac6-15c96c035738" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:40 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "175" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202' under resource group 'hpc1102xa96a9202' was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9WTmV0LWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOC0wNy0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"f712ab37-3cd0-417c-ba0f-fdd5ab9141d9\"" + ], + "x-ms-request-id": [ + "ed2f5c07-13ac-4cb7-9127-73e909910162" + ], + "x-ms-correlation-request-id": [ + "8701a3a7-4c58-4fba-b23a-8769836194c2" + ], + "x-ms-arm-service-request-id": [ + "2e9d2f63-9f42-4e17-902f-8cf6b176bcb8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175945Z:8701a3a7-4c58-4fba-b23a-8769836194c2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:45 GMT" + ], + "Content-Length": [ + "671" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"VNet-hpc1102xa96a9202\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202\",\r\n \"etag\": \"W/\\\"f712ab37-3cd0-417c-ba0f-fdd5ab9141d9\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"8db43343-08c3-4962-972c-ecca14cfbf19\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.1.0.0/16\"\r\n ]\r\n },\r\n \"subnets\": [],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false,\r\n \"enableVmProtection\": false\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9WTmV0LWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOC0wNy0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.1.0.0/16\"\r\n ]\r\n }\r\n },\r\n \"location\": \"eastus\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "371dc5fe-77d5-4efd-b5fb-1d465410f513" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "143" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "3" + ], + "x-ms-request-id": [ + "cc6f42be-08ca-4343-ac19-899b63b1fcaa" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Network/locations/eastus/operations/cc6f42be-08ca-4343-ac19-899b63b1fcaa?api-version=2018-07-01" + ], + "x-ms-correlation-request-id": [ + "dc2f6c0d-fb2b-4882-b1e0-df8497f7b65e" + ], + "x-ms-arm-service-request-id": [ + "648a0afc-bf2d-449d-8f62-b20e7e81f5e5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175942Z:dc2f6c0d-fb2b-4882-b1e0-df8497f7b65e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:41 GMT" + ], + "Content-Length": [ + "670" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"VNet-hpc1102xa96a9202\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202\",\r\n \"etag\": \"W/\\\"67738192-02f8-410b-8833-d07c0c341fcb\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"8db43343-08c3-4962-972c-ecca14cfbf19\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.1.0.0/16\"\r\n ]\r\n },\r\n \"subnets\": [],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false,\r\n \"enableVmProtection\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Network/locations/eastus/operations/cc6f42be-08ca-4343-ac19-899b63b1fcaa?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvY2M2ZjQyYmUtMDhjYS00MzQzLWFjMTktODk5YjYzYjFmY2FhP2FwaS12ZXJzaW9uPTIwMTgtMDctMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "01ead44c-4c8e-4cce-9282-eafa1e85702c" + ], + "x-ms-correlation-request-id": [ + "bfe04602-720d-4bfb-b8be-97185bfdd47c" + ], + "x-ms-arm-service-request-id": [ + "3a603f0f-3c1a-421f-9c38-c059f9f85661" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175945Z:bfe04602-720d-4bfb-b8be-97185bfdd47c" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:44 GMT" + ], + "Content-Length": [ + "29" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9WTmV0LWhwYzExMDJ4YTk2YTkyMDIvc3VibmV0cy9TdWJuZXQtaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE4LTA3LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5ba9fb06-7b54-494a-8590-7ce2d07bff21" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "26a1c74d-180c-4e5c-90f8-bab5ec03b110" + ], + "x-ms-correlation-request-id": [ + "a65d4ab9-a4a8-4dc3-98aa-341bd085c477" + ], + "x-ms-arm-service-request-id": [ + "5b8f234c-40aa-4ed1-8777-bf821a27f412" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175945Z:a65d4ab9-a4a8-4dc3-98aa-341bd085c477" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:45 GMT" + ], + "Content-Length": [ + "288" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"NotFound\",\r\n \"message\": \"Resource /subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202 not found.\",\r\n \"details\": []\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9WTmV0LWhwYzExMDJ4YTk2YTkyMDIvc3VibmV0cy9TdWJuZXQtaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE4LTA3LTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"af886043-2c54-4759-b349-b3852cb7bc02\"" + ], + "x-ms-request-id": [ + "10496a07-8171-4fdc-8e80-f903e66f8e51" + ], + "x-ms-correlation-request-id": [ + "6fc59ad7-7357-48bd-8f4c-8a82f515009b" + ], + "x-ms-arm-service-request-id": [ + "4487eb22-5d6f-4638-b243-2d87efad0406" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11989" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175949Z:6fc59ad7-7357-48bd-8f4c-8a82f515009b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:48 GMT" + ], + "Content-Length": [ + "472" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"Subnet-hpc1102xa96a9202\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"etag\": \"W/\\\"af886043-2c54-4759-b349-b3852cb7bc02\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.1.0.0/24\",\r\n \"delegations\": []\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9WTmV0LWhwYzExMDJ4YTk2YTkyMDIvc3VibmV0cy9TdWJuZXQtaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE4LTA3LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"addressPrefix\": \"10.1.0.0/24\"\r\n },\r\n \"name\": \"Subnet-hpc1102xa96a9202\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a212d558-59d6-49c7-b6b8-a20b0fb08f47" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "102" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Retry-After": [ + "3" + ], + "x-ms-request-id": [ + "d4c9a646-f54e-463d-8abf-2042716b3b53" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Network/locations/eastus/operations/d4c9a646-f54e-463d-8abf-2042716b3b53?api-version=2018-07-01" + ], + "x-ms-correlation-request-id": [ + "0fa46a02-5633-4b36-a7a8-d87d8003d66e" + ], + "x-ms-arm-service-request-id": [ + "fe482983-ae76-48fc-86b7-1a45dade4895" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175946Z:0fa46a02-5633-4b36-a7a8-d87d8003d66e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:45 GMT" + ], + "Content-Length": [ + "471" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"name\": \"Subnet-hpc1102xa96a9202\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"etag\": \"W/\\\"fba8a8d7-c604-4ad6-8b44-e4abb47bbc73\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"addressPrefix\": \"10.1.0.0/24\",\r\n \"delegations\": []\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Network/locations/eastus/operations/d4c9a646-f54e-463d-8abf-2042716b3b53?api-version=2018-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDRjOWE2NDYtZjU0ZS00NjNkLThhYmYtMjA0MjcxNmIzYjUzP2FwaS12ZXJzaW9uPTIwMTgtMDctMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Network.NetworkManagementClient/19.3.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "09b21642-23bd-478b-be43-5cdedaeddf49" + ], + "x-ms-correlation-request-id": [ + "55979830-5e7f-446d-be68-b77f4a110633" + ], + "x-ms-arm-service-request-id": [ + "c6426a14-4713-49d4-b8c9-46ada029c7a1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175949Z:55979830-5e7f-446d-be68-b77f4a110633" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:48 GMT" + ], + "Content-Length": [ + "29" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"status\": \"Succeeded\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-failure-cause": [ + "gateway" + ], + "x-ms-request-id": [ + "06470fae-2412-4d36-8791-bec7f470f993" + ], + "x-ms-correlation-request-id": [ + "06470fae-2412-4d36-8791-bec7f470f993" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175949Z:06470fae-2412-4d36-8791-bec7f470f993" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:49 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "172" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202' under resource group 'hpc1102xa96a9202' was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "029c0f66-0b7c-41fd-89ce-674ed1382604" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "ea3bc431-808b-424d-83fc-173ecec0fd67" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175951Z:ea3bc431-808b-424d-83fc-173ecec0fd67" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:50 GMT" + ], + "Content-Length": [ + "896" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "902c9d0d-4933-44a0-b04a-7b765667a6dc" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "1aa58ac4-4429-442b-87b0-8165d3be45ed" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T180151Z:1aa58ac4-4429-442b-87b0-8165d3be45ed" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:01:51 GMT" + ], + "Content-Length": [ + "953" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\",\r\n \"statusDescription\": \"Deploying Cache resources\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "92aa8966-26b0-4f37-9513-3e795f90b245" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "89f3d0ff-c0e1-4237-88f0-daa0707b3706" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T180352Z:89f3d0ff-c0e1-4237-88f0-daa0707b3706" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:03:51 GMT" + ], + "Content-Length": [ + "953" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\",\r\n \"statusDescription\": \"Deploying Cache resources\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "1291ca02-5523-4d58-9028-aa611f5d80e9" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "2a5bd031-fe3b-4727-b725-698e80fea223" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T180552Z:2a5bd031-fe3b-4727-b725-698e80fea223" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:05:52 GMT" + ], + "Content-Length": [ + "945" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\",\r\n \"statusDescription\": \"Configuring Cache\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "69bab386-040c-4dc4-b1d0-62b80c5b5bc8" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-correlation-request-id": [ + "22b7b7ac-73b5-400d-a1fc-18169aaa5b33" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T180753Z:22b7b7ac-73b5-400d-a1fc-18169aaa5b33" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:07:52 GMT" + ], + "Content-Length": [ + "966" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\",\r\n \"statusDescription\": \"Waiting for cache creation to complete\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "84f8f132-2a80-411e-acac-5442d96d60c8" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "2a2c86f0-ca6c-4045-9594-759e089d4ad6" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T180953Z:2a2c86f0-ca6c-4045-9594-759e089d4ad6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:09:52 GMT" + ], + "Content-Length": [ + "974" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\",\r\n \"statusDescription\": \"Cache deployment completed. Cache Starting up.\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "4a2a0bd8-bfd2-4a85-aa20-48119f712a33" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "8ed874ea-78fe-487b-8429-fb92d3574ccd" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T181153Z:8ed874ea-78fe-487b-8429-fb92d3574ccd" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:11:53 GMT" + ], + "Content-Length": [ + "1052" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Degraded\",\r\n \"statusDescription\": \"The health of the the cache is degraded\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "598d4bce-d82c-4b36-8b4e-1ad5b661fea7" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "aadcbd09-d55b-47d3-b42e-f343d11ca32a" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T181354Z:aadcbd09-d55b-47d3-b42e-f343d11ca32a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:13:53 GMT" + ], + "Content-Length": [ + "1052" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Degraded\",\r\n \"statusDescription\": \"The health of the the cache is degraded\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "9e45ab89-0769-4d81-9e00-84484a243bd2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "1ff2d7f0-6b74-4426-9cfb-64d4f7883240" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T181554Z:1ff2d7f0-6b74-4426-9cfb-64d4f7883240" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:15:53 GMT" + ], + "Content-Length": [ + "1052" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Degraded\",\r\n \"statusDescription\": \"The health of the the cache is degraded\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "971d9b36-f4cb-44f0-83a9-7f45d3363b24" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "a318db54-0933-4ecb-b83f-c0273ba87b3a" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T181755Z:a318db54-0933-4ecb-b83f-c0273ba87b3a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:17:54 GMT" + ], + "Content-Length": [ + "1052" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Degraded\",\r\n \"statusDescription\": \"The health of the the cache is degraded\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "62b9fd8b-980e-4f93-a5bf-4f80528b67a4" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "7dc3f8c4-cd2b-4ee4-9c6f-b67330f80a21" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T181955Z:7dc3f8c4-cd2b-4ee4-9c6f-b67330f80a21" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:19:55 GMT" + ], + "Content-Length": [ + "1041" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Healthy\",\r\n \"statusDescription\": \"The cache is in Running state\"\r\n },\r\n \"mountAddresses\": [\r\n \"10.1.0.7\",\r\n \"10.1.0.8\",\r\n \"10.1.0.9\"\r\n ],\r\n \"provisioningState\": \"Succeeded\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDI/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\"\r\n },\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "323" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/locations/eastus/ascOperations/4fe600c4-cd61-4ce3-a505-4b576cc54d46?api-version=2019-11-01" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "4fe600c4-cd61-4ce3-a505-4b576cc54d46" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "c49c73fb-7610-4c06-8b63-27fbcc8dfc11" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T175951Z:c49c73fb-7610-4c06-8b63-27fbcc8dfc11" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 17:59:50 GMT" + ], + "Content-Length": [ + "896" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"type\": \"Microsoft.StorageCache/caches\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202\",\r\n \"name\": \"Cache-hpc1102xa96a9202\",\r\n \"sku\": {\r\n \"name\": \"Standard_2G\"\r\n },\r\n \"properties\": {\r\n \"cacheSizeGB\": 3072,\r\n \"health\": {\r\n \"state\": \"Transitioning\"\r\n },\r\n \"provisioningState\": \"Creating\",\r\n \"subnet\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.Network/virtualNetworks/VNet-hpc1102xa96a9202/subnets/Subnet-hpc1102xa96a9202\",\r\n \"upgradeStatus\": {\r\n \"currentFirmwareVersion\": \"5.3.31\",\r\n \"firmwareUpdateStatus\": \"unavailable\",\r\n \"firmwareUpdateDeadline\": \"0001-01-01T00:00:00Z\",\r\n \"lastFirmwareUpdate\": \"2019-11-02T17:59:50.8066295Z\"\r\n }\r\n }\r\n}", + "StatusCode": 201 + } + ], + "Names": { + ".ctor": [ + "hpc1102xa96a9202" + ] + }, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549", + "DefaultResourcePrefix": "hpc", + "DefaultRegion": "eastus", + "DefaultCacheSku": "Standard_2G", + "DefaultCacheSize": "3072" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetEmptyNameSpace.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetEmptyNameSpace.json new file mode 100644 index 000000000000..9f7e95707fc2 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetEmptyNameSpace.json @@ -0,0 +1,195 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "483c19b7-28f2-4911-b573-23960dcc869f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "84fcdbac-23c7-4d3b-a8cc-1713f11ee2c7" + ], + "x-ms-correlation-request-id": [ + "84fcdbac-23c7-4d3b-a8cc-1713f11ee2c7" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183315Z:84fcdbac-23c7-4d3b-a8cc-1713f11ee2c7" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:15 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "65d8e081-392c-4f4d-8852-99d4a8e07402" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "c245b7f1-1973-4021-8823-e77011dd00ff" + ], + "x-ms-correlation-request-id": [ + "c245b7f1-1973-4021-8823-e77011dd00ff" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183315Z:c245b7f1-1973-4021-8823-e77011dd00ff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:15 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "312" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "6fb47f4a-547c-49e8-b9d3-0b2ef8d3b70d" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "eb79da5e-d78d-459c-b76c-0e19312a1939" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183316Z:eb79da5e-d78d-459c-b76c-0e19312a1939" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:16 GMT" + ], + "Content-Length": [ + "170" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.junctions\",\r\n \"message\": \"Blob storage targets must include exactly 1 junction.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidNameSpace.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidNameSpace.json new file mode 100644 index 000000000000..c7d3964a0b19 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidNameSpace.json @@ -0,0 +1,195 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "91a6bbef-24b6-4e05-b31f-c877535b920a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "8099394a-b36e-427d-a578-40783f6c0354" + ], + "x-ms-correlation-request-id": [ + "8099394a-b36e-427d-a578-40783f6c0354" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183312Z:8099394a-b36e-427d-a578-40783f6c0354" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:12 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7b386633-dacf-439c-bf21-e41e04cc29d5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "6afa1bbf-3297-432b-8b51-3a36f4294fae" + ], + "x-ms-correlation-request-id": [ + "6afa1bbf-3297-432b-8b51-3a36f4294fae" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183312Z:6afa1bbf-3297-432b-8b51-3a36f4294fae" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:12 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"Invalid#$%1\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "404" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "f463e2b2-4093-4bb0-b5f5-9e3c559c0505" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-correlation-request-id": [ + "587a8c2d-3fe1-48e9-8278-86fbceed3c80" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183313Z:587a8c2d-3fe1-48e9-8278-86fbceed3c80" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:13 GMT" + ], + "Content-Length": [ + "203" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.junctions.namespacePath\",\r\n \"message\": \"The value of parameter storageTarget.junctions.namespacePath is invalid.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidResourceGroup.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidResourceGroup.json new file mode 100644 index 000000000000..242f2c849129 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidResourceGroup.json @@ -0,0 +1,195 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e25906dd-f3cc-4214-bbfc-60189691310c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "11044107-d852-4bb3-9f56-0646557da0a5" + ], + "x-ms-correlation-request-id": [ + "11044107-d852-4bb3-9f56-0646557da0a5" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184151Z:11044107-d852-4bb3-9f56-0646557da0a5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:50 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "2e9a667d-ae0c-4480-8bbf-d31ae192de09" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-request-id": [ + "de5b0927-aaaa-44ef-ba89-d21a3361e6c7" + ], + "x-ms-correlation-request-id": [ + "de5b0927-aaaa-44ef-ba89-d21a3361e6c7" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184151Z:de5b0927-aaaa-44ef-ba89-d21a3361e6c7" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:50 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/invalidrs/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "395" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "116f7b63-4b52-41df-bf76-96d4513a074b" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1195" + ], + "x-ms-correlation-request-id": [ + "2dff0237-577e-47bf-a39d-c73e40d5b4ea" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184151Z:2dff0237-577e-47bf-a39d-c73e40d5b4ea" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:51 GMT" + ], + "Content-Length": [ + "203" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.clfs.target\",\r\n \"message\": \"Target storage account or container does not exist or hasn't sufficient permissions.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidStorageAccount.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidStorageAccount.json new file mode 100644 index 000000000000..1382702f610b --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidStorageAccount.json @@ -0,0 +1,195 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "07762f8b-f0d3-4af9-bdfa-a386ecf094d3" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "b64bf1d2-fcc7-4600-8c8a-cdefe9e79d71" + ], + "x-ms-correlation-request-id": [ + "b64bf1d2-fcc7-4600-8c8a-cdefe9e79d71" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184157Z:b64bf1d2-fcc7-4600-8c8a-cdefe9e79d71" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:57 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d48b7f1f-6a6f-4905-b744-657e600fbddd" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-request-id": [ + "97535a47-9826-4324-9438-20333d142681" + ], + "x-ms-correlation-request-id": [ + "97535a47-9826-4324-9438-20333d142681" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184157Z:97535a47-9826-4324-9438-20333d142681" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:57 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/invalidsa/blobServices/default/containers/invalidsc\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "388" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "baa2065d-d1fa-4366-8102-923de1f156f4" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "bb06326e-dc0f-431a-9a38-88d08583f66d" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184158Z:bb06326e-dc0f-431a-9a38-88d08583f66d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:57 GMT" + ], + "Content-Length": [ + "203" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.clfs.target\",\r\n \"message\": \"Target storage account or container does not exist or hasn't sufficient permissions.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidStorageContainer.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidStorageContainer.json new file mode 100644 index 000000000000..cb571790454d --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidStorageContainer.json @@ -0,0 +1,195 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bc3fab52-cf16-4fe6-bc00-477ba31dce74" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "d4e167d0-bafd-40f9-8055-4e0e87722bbf" + ], + "x-ms-correlation-request-id": [ + "d4e167d0-bafd-40f9-8055-4e0e87722bbf" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184148Z:d4e167d0-bafd-40f9-8055-4e0e87722bbf" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:47 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bdbf1130-acc1-4967-8f9b-b3e0c0efb766" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "7bc04909-5e80-4ecd-851c-d8a66157504d" + ], + "x-ms-correlation-request-id": [ + "7bc04909-5e80-4ecd-851c-d8a66157504d" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184148Z:7bc04909-5e80-4ecd-851c-d8a66157504d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:47 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/invalidsc\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "395" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "667a2ccf-ed54-4983-8459-04129daef1d1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-correlation-request-id": [ + "51546119-a5ca-4a7d-acb9-007fe95b7b1f" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184149Z:51546119-a5ca-4a7d-acb9-007fe95b7b1f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:48 GMT" + ], + "Content-Length": [ + "172" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.clfs.target\",\r\n \"message\": \"Blob target references a non-existant blob container.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidSubscription.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidSubscription.json new file mode 100644 index 000000000000..a56bcf1a1130 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestClfsTargetInvalidSubscription.json @@ -0,0 +1,541 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "21415f22-2a9e-43e4-80f9-dfe79d3a38c5" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "9d8cd66f-6111-4290-a651-274f5a93d616" + ], + "x-ms-correlation-request-id": [ + "9d8cd66f-6111-4290-a651-274f5a93d616" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182248Z:9d8cd66f-6111-4290-a651-274f5a93d616" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:47 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "9e4348b9-a984-43ae-89ec-1299f4b52204" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "a807474f-1a26-4fd8-88a5-f1b11c9163a2" + ], + "x-ms-correlation-request-id": [ + "a807474f-1a26-4fd8-88a5-f1b11c9163a2" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182248Z:a807474f-1a26-4fd8-88a5-f1b11c9163a2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:47 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAyP2FwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "e7b74a91-be2d-47ab-b931-6d754dc9b535" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "98" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/c03bcee2-a2b4-412e-aef2-b63cf10151c6?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "c03bcee2-a2b4-412e-aef2-b63cf10151c6" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "09d6ec36-4bb4-4080-b2e5-9b4ea8f43f26" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182249Z:09d6ec36-4bb4-4080-b2e5-9b4ea8f43f26" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:49 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/c03bcee2-a2b4-412e-aef2-b63cf10151c6?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzL2FzeW5jb3BlcmF0aW9ucy9jMDNiY2VlMi1hMmI0LTQxMmUtYWVmMi1iNjNjZjEwMTUxYzY/bW9uaXRvcj10cnVlJmFwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "b6f4c9a8-aa28-4d8f-a273-2768996a4859" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "12b50b58-d525-477e-aa4f-3c8ae99c9716" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182306Z:12b50b58-d525-477e-aa4f-3c8ae99c9716" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:23:06 GMT" + ], + "Content-Length": [ + "1196" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:22:48.9656164Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:22:48.9656164Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-02T18:22:48.887445Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://hpc1102xa96a9202.dfs.core.windows.net/\",\r\n \"web\": \"https://hpc1102xa96a9202.z13.web.core.windows.net/\",\r\n \"blob\": \"https://hpc1102xa96a9202.blob.core.windows.net/\",\r\n \"queue\": \"https://hpc1102xa96a9202.queue.core.windows.net/\",\r\n \"table\": \"https://hpc1102xa96a9202.table.core.windows.net/\",\r\n \"file\": \"https://hpc1102xa96a9202.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "//subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview", + "EncodedRequestUri": "Ly9zdWJzY3JpcHRpb25zLzhjMzlkNzk3LWQ1NGEtNGE0MS05YWRlLTJlZWE3Yzg4ZjU0OS9yZXNvdXJjZUdyb3Vwcy9ocGMxMTAyeGE5NmE5MjAyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvaHBjMTEwMnhhOTZhOTIwMi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zP2FwaS12ZXJzaW9uPTIwMTgtMDEtMDEtcHJldmlldw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "07e18b24-37ef-43b2-9bcc-ce99157def1f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Authorization.AuthorizationManagementClient/2.11.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-charge": [ + "1" + ], + "x-ms-request-id": [ + "e31e1133-9781-4616-bb38-7cc7281bba3f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Set-Cookie": [ + "x-ms-gateway-slice=Production; path=/; SameSite=None; secure; HttpOnly" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "bb97df93-84b2-455e-9d6b-66030f315a45" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182307Z:bb97df93-84b2-455e-9d6b-66030f315a45" + ], + "Date": [ + "Sat, 02 Nov 2019 18:23:06 GMT" + ], + "Content-Length": [ + "168812" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Cluster Create\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Avere cluster create role used by the Avere controller to create a vFXT cluster.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.Authorization/roleDefinitions/*\",\r\n \"Microsoft.Compute/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Network/*/read\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\r\n \"Microsoft.Storage/*/read\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-11-29T18:46:55.0492387Z\",\r\n \"updatedOn\": \"2018-11-29T18:46:55.0492387Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Cluster Runtime Operator\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Avere cluster runtime role used by Avere clusters running in subscriptions, for the purpose of failing over IP addresses, accessing BLOB storage, etc\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Network/routeTables/read\",\r\n \"Microsoft.Network/routeTables/routes/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-26T00:41:26.2170858Z\",\r\n \"updatedOn\": \"2018-08-26T00:41:26.2170858Z\",\r\n \"createdBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\r\n \"updatedBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e078ab98-ef3a-4c9a-aba7-12f5172b45d0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Deploy Release Management Contributor\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Contributor role for services deploying through Azure Service Deploy.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Authorization/*/Delete\",\r\n \"Microsoft.Authorization/*/Write\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-02-04T02:26:31.5413362Z\",\r\n \"updatedOn\": \"2018-01-08T20:20:16.3660174Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/21d96096-b162-414a-8302-d8354f9d91b2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"21d96096-b162-414a-8302-d8354f9d91b2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CAL-Custom-Role\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Lets SAP Cloud Appliance Library application manage Network and Compute services, manage Resource Groups and Management locks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/locks/*\",\r\n \"Microsoft.Authorization/roleDefinitions/*\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.Compute/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.Resources/*\",\r\n \"Microsoft.Storage/*\",\r\n \"Microsoft.ContainerService/*\",\r\n \"Microsoft.ContainerRegistry/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-05-14T19:30:51.0664585Z\",\r\n \"updatedOn\": \"2019-02-19T19:11:57.5963229Z\",\r\n \"createdBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7b266cd7-0bba-4ae2-8423-90ede5e1e898\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Dsms Role (deprecated)\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom role used by Dsms to perform operations. Can list and regnerate storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-17T18:02:11.1225951Z\",\r\n \"updatedOn\": \"2018-01-13T00:21:52.7211696Z\",\r\n \"createdBy\": \"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\",\r\n \"updatedBy\": \"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Dsms Role (do not use)\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom role used by Dsms to perform operations. Can list and regnerate storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-01T07:56:12.5880222Z\",\r\n \"updatedOn\": \"2018-08-09T17:53:48.5432297Z\",\r\n \"createdBy\": \"becb4b6b-fe16-413b-a5c3-90355e0b2982\",\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7aff565e-6c55-448d-83db-ccf482c6da2f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7aff565e-6c55-448d-83db-ccf482c6da2f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"ExpressRoute Administrator\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Can create, delete and manage ExpressRoutes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/locks/*\",\r\n \"Microsoft.Authorization/policyAssignments/*\",\r\n \"Microsoft.Authorization/policyDefinitions/*\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.ClassicNetwork/*\",\r\n \"Microsoft.EventGrid/*\",\r\n \"Microsoft.Insights/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.Resources/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-31T03:51:32.2843055Z\",\r\n \"updatedOn\": \"2019-03-20T22:55:18.8222085Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a48d7896-14b4-4889-afef-fbb65a96e5a2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a48d7896-14b4-4889-afef-fbb65a96e5a2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"GenevaWarmPathResourceContributor\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Can manage service bus and storage accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/namespaces/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/*\",\r\n \"Microsoft.ServiceBus/namespaces/*\",\r\n \"Microsoft.Storage/storageAccounts/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-03-14T22:30:10.1999436Z\",\r\n \"updatedOn\": \"2017-03-14T22:30:10.1999436Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"masterreader\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Lets you view everything, but not make any changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-11-14T23:38:05.3353858Z\",\r\n \"updatedOn\": \"2017-11-14T23:38:05.3353858Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a48d7796-14b4-4889-afef-fbb65a93e5a2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a48d7796-14b4-4889-afef-fbb65a93e5a2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Microsoft OneAsset Reader\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"This role is for Microsoft OneAsset team (CSEO) to track internal security compliance and resource utilization.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-27T23:51:08.6333052Z\",\r\n \"updatedOn\": \"2019-04-02T20:35:43.3396263Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fd1bb084-1503-4bd2-99c0-630220046786\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fd1bb084-1503-4bd2-99c0-630220046786\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Office DevOps\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom access for developers to operations but not secrets.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachineScaleSets/restart/action\",\r\n \"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/delete\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/failover/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/forceFailoverAllowDataLoss/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/operationResults/read\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/read\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/unlink/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-10-07T08:11:46.1639398Z\",\r\n \"updatedOn\": \"2017-03-16T18:43:08.3234306Z\",\r\n \"createdBy\": \"25aea6be-b605-4347-a92d-33e178e412ec\",\r\n \"updatedBy\": \"25aea6be-b605-4347-a92d-33e178e412ec\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7fd64851-3279-459b-b614-e2b2ba760f5b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7fd64851-3279-459b-b614-e2b2ba760f5b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AZSC 1st Party Testmirror\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Describes first-party access for AZSC in test.\",\r\n \"assignableScopes\": [\r\n \"/subscriptions/e85a6c81-7b89-42c5-8d87-aca71e5113cc\",\r\n \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549\",\r\n \"/subscriptions/863c722a-2299-40dc-a2b0-f4717918a6f4\",\r\n \"/subscriptions/6d777ac4-9ba5-42c4-9306-d12ea818d8ff\",\r\n \"/subscriptions/46841c0e-69c8-4b17-af46-6626ecb15fc2\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/loadBalancers/write\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/loadBalancers/delete\",\r\n \"Microsoft.Network/loadbalancers/backendaddresspools/join/action\",\r\n \"Microsoft.Network/loadbalancers/backendconfigurations/*\",\r\n \"Microsoft.Network/loadbalancers/frontendconfigurations/*\",\r\n \"Microsoft.Network/loadbalancers/inboundnatpools/join/action\",\r\n \"Microsoft.Network/loadbalancers/inboundnatrules/*\",\r\n \"Microsoft.Network/loadbalancers/inboundnatrules/join/action\",\r\n \"Microsoft.Network/loadbalancers/loadbalancingrules/*\",\r\n \"Microsoft.Network/loadbalancers/probes/*\",\r\n \"Microsoft.Network/locations/operationresults/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/delete\",\r\n \"Microsoft.Network/networkInterfaces/join/action\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read\",\r\n \"Microsoft.Network/applicationSecurityGroups/joinIpConfiguration/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-06-21T14:30:02.8871253Z\",\r\n \"updatedOn\": \"2019-06-21T15:30:15.5762832Z\",\r\n \"createdBy\": \"7dcef84f-48d0-499f-906d-fd2d4aaccc93\",\r\n \"updatedBy\": \"7dcef84f-48d0-499f-906d-fd2d4aaccc93\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cd9f9694-5029-4901-9a51-4034e7b028ad\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cd9f9694-5029-4901-9a51-4034e7b028ad\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrPush\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr push\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/pull/read\",\r\n \"Microsoft.ContainerRegistry/registries/push/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-29T17:52:32.5201177Z\",\r\n \"updatedOn\": \"2018-11-13T23:26:19.9749249Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8311e382-0749-4cb8-b61a-304f252e45ec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage service and the APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8650193Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:17.7502607Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"312a565d-c81f-4fd8-895a-4e21e48d571c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrPull\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr pull\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/pull/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-22T19:01:56.8227182Z\",\r\n \"updatedOn\": \"2018-11-13T23:22:03.2302457Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7f951dda-4ed3-4680-a7ca-43fe172d538d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrImageSigner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr image signer\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/sign/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-15T23:23:08.4038322Z\",\r\n \"updatedOn\": \"2018-10-29T19:06:24.9004422Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6cef56e8-d556-48e5-a04f-b8e64114680f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrDelete\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr delete\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/artifacts/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-11T20:19:31.6682804Z\",\r\n \"updatedOn\": \"2019-03-11T20:24:38.9845104Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrQuarantineReader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr quarantine data reader\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/quarantine/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-16T00:27:39.9596835Z\",\r\n \"updatedOn\": \"2019-10-22T00:12:39.702093Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cdda3590-29a3-44f6-95f2-9f980659eb04\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrQuarantineWriter\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr quarantine data writer\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/quarantine/read\",\r\n \"Microsoft.ContainerRegistry/registries/quarantine/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-16T00:26:37.587182Z\",\r\n \"updatedOn\": \"2019-10-22T00:10:29.8202164Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Operator Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage service but not the APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*/read\",\r\n \"Microsoft.ApiManagement/service/backup/action\",\r\n \"Microsoft.ApiManagement/service/delete\",\r\n \"Microsoft.ApiManagement/service/managedeployments/action\",\r\n \"Microsoft.ApiManagement/service/read\",\r\n \"Microsoft.ApiManagement/service/restore/action\",\r\n \"Microsoft.ApiManagement/service/updatecertificate/action\",\r\n \"Microsoft.ApiManagement/service/updatehostname/action\",\r\n \"Microsoft.ApiManagement/service/write\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.ApiManagement/service/users/keys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-11-09T00:03:42.1194019Z\",\r\n \"updatedOn\": \"2016-11-18T23:56:25.4682649Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Reader Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read-only access to service and APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*/read\",\r\n \"Microsoft.ApiManagement/service/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.ApiManagement/service/users/keys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-11-09T00:26:45.1540473Z\",\r\n \"updatedOn\": \"2017-01-23T23:10:34.8876776Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"71522526-b88f-4d52-b57f-d31fc3546d0d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Application Insights Component Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage Application Insights components\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.Insights/webtests/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:37.1625138Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ae349356-3a1b-4a5e-921d-050484c6347e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Application Insights Snapshot Debugger\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Gives user permission to use Application Insights Snapshot Debugger features\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T21:25:12.3728747Z\",\r\n \"updatedOn\": \"2017-04-19T23:34:59.9511581Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Attestation Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read the attestation provider properties\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Attestation/attestationProviders/attestation/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-25T19:42:59.157671Z\",\r\n \"updatedOn\": \"2019-05-10T17:52:38.9036953Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"SYSTEM\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Job Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and Manage Jobs using Automation Runbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/resume/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/stop/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/streams/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/write\",\r\n \"Microsoft.Automation/automationAccounts/jobs/output/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T20:52:41.0020018Z\",\r\n \"updatedOn\": \"2018-08-14T22:08:48.1147327Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4fe576fe-1146-4730-92eb-48519fa6bf9f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Runbook Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read Runbook properties - to be able to create Jobs of the runbook.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/runbooks/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T20:47:49.5640674Z\",\r\n \"updatedOn\": \"2017-04-25T01:00:45.6444999Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Automation Operators are able to start, stop, suspend, and resume jobs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/resume/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/stop/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/streams/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/write\",\r\n \"Microsoft.Automation/automationAccounts/jobSchedules/read\",\r\n \"Microsoft.Automation/automationAccounts/jobSchedules/write\",\r\n \"Microsoft.Automation/automationAccounts/linkedWorkspace/read\",\r\n \"Microsoft.Automation/automationAccounts/read\",\r\n \"Microsoft.Automation/automationAccounts/runbooks/read\",\r\n \"Microsoft.Automation/automationAccounts/schedules/read\",\r\n \"Microsoft.Automation/automationAccounts/schedules/write\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Automation/automationAccounts/jobs/output/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-08-18T01:05:03.391613Z\",\r\n \"updatedOn\": \"2018-05-10T20:12:39.69782Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"d3881f73-407a-4167-8283-e981cbba0404\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can create and manage an Avere vFXT cluster.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Compute/disks/*\",\r\n \"Microsoft.Network/*/read\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/*/read\",\r\n \"Microsoft.Storage/storageAccounts/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-18T20:00:58.9207889Z\",\r\n \"updatedOn\": \"2019-03-29T00:35:59.8924565Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Used by the Avere vFXT cluster to manage the cluster\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-18T20:02:38.3399857Z\",\r\n \"updatedOn\": \"2019-03-29T00:26:37.9205875Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Kubernetes Service Cluster Admin Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"List cluster admin credential action.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-15T21:38:18.5953853Z\",\r\n \"updatedOn\": \"2018-08-15T21:47:19.4427524Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Kubernetes Service Cluster User Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"List cluster user credential action.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-15T22:04:53.4037241Z\",\r\n \"updatedOn\": \"2018-08-15T22:06:51.5961392Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Maps Data Reader (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Grants access to read map related data from an Azure maps account.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Maps/accounts/data/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-05T19:47:03.472307Z\",\r\n \"updatedOn\": \"2018-10-05T19:48:52.8066321Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Stack Registration Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Azure Stack registrations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.AzureStack/registrations/products/*/action\",\r\n \"Microsoft.AzureStack/registrations/products/read\",\r\n \"Microsoft.AzureStack/registrations/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-11-13T23:42:06.2161827Z\",\r\n \"updatedOn\": \"2019-08-01T18:44:52.5331479Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6f12a6df-dd06-4f3e-bcb1-ce8be600526a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage backup service,but can't create vaults and give access to others\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupSecurityPIN/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/*\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\r\n \"Microsoft.RecoveryServices/Vaults/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\r\n \"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:12:15.7321344Z\",\r\n \"updatedOn\": \"2019-06-03T04:25:42.192045Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5e467623-bb1f-42f4-a55d-6e525e11384b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5e467623-bb1f-42f4-a55d-6e525e11384b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Billing Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to billing data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Billing/*/read\",\r\n \"Microsoft.Commerce/*/read\",\r\n \"Microsoft.Consumption/*/read\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.CostManagement/*/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-25T02:13:38.9054151Z\",\r\n \"updatedOn\": \"2018-09-26T17:45:09.2227236Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage backup services, except removal of backup, vault creation and giving access to others\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/backup/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/write\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/write\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/write\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/inquire/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\r\n \"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:21:11.894764Z\",\r\n \"updatedOn\": \"2019-06-03T04:26:42.4271091Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"00c29273-979b-4161-815c-10b084fb9324\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view backup services, but can't make changes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupconfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:18:41.3893065Z\",\r\n \"updatedOn\": \"2019-06-03T04:27:36.450298Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a795c7a0-d4a2-40c1-ae25-d81f01202912\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blockchain Member Node Access (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for access to Blockchain Member nodes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Blockchain/blockchainMembers/transactionNodes/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Blockchain/blockchainMembers/transactionNodes/connect/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T10:33:01.9604839Z\",\r\n \"updatedOn\": \"2018-12-21T10:33:58.0042162Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/31a002a1-acaf-453e-8a5b-297c9ca1ea24\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"BizTalk Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage BizTalk services, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.BizTalkServices/BizTalk/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:18.897821Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5e3c6656-6cfa-4708-81fe-0de47ac73342\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Endpoint Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage CDN endpoints, but can’t grant access to other users.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/endpoints/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:52.6231539Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Endpoint Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view CDN endpoints, but can’t make changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/endpoints/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:53.1585846Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Profile Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage CDN profiles and their endpoints, but can’t grant access to other users.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:53.7051278Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ec156ff8-a8d1-4d15-830c-5b80698ca432\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ec156ff8-a8d1-4d15-830c-5b80698ca432\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Profile Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view CDN profiles and their endpoints, but can’t make changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:54.2283001Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8f96442b-4075-438f-813d-ad51ab4019af\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8f96442b-4075-438f-813d-ad51ab4019af\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Network Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic networks, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicNetwork/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:39.7576926Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b34d265f-36f7-4a0d-a4d4-e158ca92e90f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Storage Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic storage accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:30.8964641Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/86e8f5dc-a6e9-4c67-9d15-de283e8eac25\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Storage Account Key Operator Service Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Classic Storage Account Key Operators are allowed to list and regenerate keys on Classic Storage Accounts\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listkeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-13T18:22:52.14611Z\",\r\n \"updatedOn\": \"2017-04-13T20:54:03.0505986Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/985d6b00-f706-48f5-a6fe-d0ca12fb668d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"ClearDB MySQL DB Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage ClearDB MySQL databases, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"successbricks.cleardb/databases/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:23.2893077Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9106cda0-8a86-4e81-b686-29a22c54effe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9106cda0-8a86-4e81-b686-29a22c54effe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Virtual Machine Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic virtual machines, but not access to them, and not the virtual network or storage account they’re connected to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicCompute/domainNames/*\",\r\n \"Microsoft.ClassicCompute/virtualMachines/*\",\r\n \"Microsoft.ClassicNetwork/networkSecurityGroups/join/action\",\r\n \"Microsoft.ClassicNetwork/reservedIps/link/action\",\r\n \"Microsoft.ClassicNetwork/reservedIps/read\",\r\n \"Microsoft.ClassicNetwork/virtualNetworks/join/action\",\r\n \"Microsoft.ClassicNetwork/virtualNetworks/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/disks/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/images/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-04-25T00:37:56.5416086Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:43.0770473Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and list keys of Cognitive Services.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.CognitiveServices/*/read\",\r\n \"Microsoft.CognitiveServices/accounts/listkeys/action\",\r\n \"Microsoft.Insights/alertRules/read\",\r\n \"Microsoft.Insights/diagnosticSettings/read\",\r\n \"Microsoft.Insights/logDefinitions/read\",\r\n \"Microsoft.Insights/metricdefinitions/read\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.CognitiveServices/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-08T23:23:43.7701274Z\",\r\n \"updatedOn\": \"2019-02-13T19:53:56.7209248Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a97b65f3-24c7-4388-baec-2e87135dc908\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services Data Reader (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read Cognitive Services data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.CognitiveServices/*/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-13T20:02:12.6849986Z\",\r\n \"updatedOn\": \"2019-02-13T22:53:55.167529Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b59867f0-fa02-499b-be73-45a86b5b3e1c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b59867f0-fa02-499b-be73-45a86b5b3e1c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create, read, update, delete and manage keys of Cognitive Services.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.CognitiveServices/*\",\r\n \"Microsoft.Features/features/read\",\r\n \"Microsoft.Features/providers/features/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Insights/logDefinitions/read\",\r\n \"Microsoft.Insights/metricdefinitions/read\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-08T23:18:39.2257848Z\",\r\n \"updatedOn\": \"2018-09-14T00:53:37.7546808Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CosmosBackupOperator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can submit restore request for a Cosmos DB database or a container for an account\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.DocumentDB/databaseAccounts/backup/action\",\r\n \"Microsoft.DocumentDB/databaseAccounts/restore/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-07T19:47:14.965156Z\",\r\n \"updatedOn\": \"2018-12-07T19:52:21.9969834Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/db7b14f2-5adf-42da-9f96-f2ee17bab5cb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything except access to resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Authorization/*/Delete\",\r\n \"Microsoft.Authorization/*/Write\",\r\n \"Microsoft.Authorization/elevateAccess/Action\",\r\n \"Microsoft.Blueprint/blueprintAssignments/write\",\r\n \"Microsoft.Blueprint/blueprintAssignments/delete\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:38.458061Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cosmos DB Account Reader Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read Azure Cosmos DB Accounts data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DocumentDB/*/read\",\r\n \"Microsoft.DocumentDB/databaseAccounts/readonlykeys/action\",\r\n \"Microsoft.Insights/MetricDefinitions/read\",\r\n \"Microsoft.Insights/Metrics/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-10-30T17:53:54.6005577Z\",\r\n \"updatedOn\": \"2018-02-21T01:36:59.6186231Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cost Management Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view costs and manage cost configuration (e.g. budgets, exports)\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Consumption/*\",\r\n \"Microsoft.CostManagement/*\",\r\n \"Microsoft.Billing/billingPeriods/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Advisor/configurations/read\",\r\n \"Microsoft.Advisor/recommendations/read\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-14T16:09:22.8834827Z\",\r\n \"updatedOn\": \"2019-06-25T21:25:06.8686379Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/434105ed-43f6-45c7-a02f-909b2ba83430\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"434105ed-43f6-45c7-a02f-909b2ba83430\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cost Management Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view cost data and configuration (e.g. budgets, exports)\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Consumption/*/read\",\r\n \"Microsoft.CostManagement/*/read\",\r\n \"Microsoft.Billing/billingPeriods/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Advisor/configurations/read\",\r\n \"Microsoft.Advisor/recommendations/read\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-14T16:09:22.8834827Z\",\r\n \"updatedOn\": \"2019-06-25T20:59:11.5762937Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/72fafb9e-0641-4937-9268-a91bfd8191a3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"72fafb9e-0641-4937-9268-a91bfd8191a3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Box Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything under Data Box Service except giving access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Databox/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T08:28:42.714021Z\",\r\n \"updatedOn\": \"2018-07-27T08:36:56.3827309Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/add466c9-e687-43fc-8d98-dfcf8d720be5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"add466c9-e687-43fc-8d98-dfcf8d720be5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Box Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Data Box Service except creating order or editing order details and giving access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Databox/*/read\",\r\n \"Microsoft.Databox/jobs/listsecrets/action\",\r\n \"Microsoft.Databox/jobs/listcredentials/action\",\r\n \"Microsoft.Databox/locations/availableSkus/action\",\r\n \"Microsoft.Databox/locations/validateAddress/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T08:26:21.9284772Z\",\r\n \"updatedOn\": \"2019-04-29T07:30:10.4407109Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Factory Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and manage data factories, as well as child resources within them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DataFactory/dataFactories/*\",\r\n \"Microsoft.DataFactory/factories/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:24.1715226Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/673868aa-7521-48a0-acc6-0f60742d39f5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"673868aa-7521-48a0-acc6-0f60742d39f5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Purger\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can purge analytics data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/components/*/read\",\r\n \"Microsoft.Insights/components/purge/action\",\r\n \"Microsoft.OperationalInsights/workspaces/*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/purge/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-04-30T22:39:49.61677Z\",\r\n \"updatedOn\": \"2018-04-30T22:44:15.1171162Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/150f5e0c-0603-4f03-8c7f-cf70034c4e90\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Lake Analytics Developer\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you submit, monitor, and manage your own jobs but not create or delete Data Lake Analytics accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.BigAnalytics/accounts/*\",\r\n \"Microsoft.DataLakeAnalytics/accounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.BigAnalytics/accounts/Delete\",\r\n \"Microsoft.BigAnalytics/accounts/TakeOwnership/action\",\r\n \"Microsoft.BigAnalytics/accounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/TakeOwnership/action\",\r\n \"Microsoft.DataLakeAnalytics/accounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/firewallRules/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/firewallRules/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/computePolicies/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/computePolicies/Delete\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-20T00:33:29.3115234Z\",\r\n \"updatedOn\": \"2017-08-18T00:00:17.0411642Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/47b7735b-770e-4598-a7da-8b91488b4c88\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"47b7735b-770e-4598-a7da-8b91488b4c88\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DevTest Labs User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you connect, start, restart, and shutdown your virtual machines in your Azure DevTest Labs.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/availabilitySets/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\",\r\n \"Microsoft.Compute/virtualMachines/deallocate/action\",\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Compute/virtualMachines/restart/action\",\r\n \"Microsoft.Compute/virtualMachines/start/action\",\r\n \"Microsoft.DevTestLab/*/read\",\r\n \"Microsoft.DevTestLab/labs/claimAnyVm/action\",\r\n \"Microsoft.DevTestLab/labs/createEnvironment/action\",\r\n \"Microsoft.DevTestLab/labs/ensureCurrentUserProfile/action\",\r\n \"Microsoft.DevTestLab/labs/formulas/delete\",\r\n \"Microsoft.DevTestLab/labs/formulas/read\",\r\n \"Microsoft.DevTestLab/labs/formulas/write\",\r\n \"Microsoft.DevTestLab/labs/policySets/evaluatePolicies/action\",\r\n \"Microsoft.DevTestLab/labs/virtualMachines/claim/action\",\r\n \"Microsoft.DevTestLab/labs/virtualmachines/listApplicableSchedules/action\",\r\n \"Microsoft.DevTestLab/labs/virtualMachines/getRdpFileContents/action\",\r\n \"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\r\n \"Microsoft.Network/networkInterfaces/*/read\",\r\n \"Microsoft.Network/networkInterfaces/join/action\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/publicIPAddresses/*/read\",\r\n \"Microsoft.Network/publicIPAddresses/join/action\",\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/deployments/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Compute/virtualMachines/vmSizes/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-08T21:52:45.0657582Z\",\r\n \"updatedOn\": \"2019-05-08T11:27:34.8855476Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/76283e04-6283-4c54-8f91-bcf1374a3c64\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"76283e04-6283-4c54-8f91-bcf1374a3c64\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DocumentDB Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage DocumentDB accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DocumentDb/databaseAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:22.596481Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5bd9cd88-fe45-4216-938b-f97437e15450\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5bd9cd88-fe45-4216-938b-f97437e15450\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DNS Zone Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage DNS zones and record sets in Azure DNS, but does not let you control who has access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/dnsZones/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-15T23:33:25.9730842Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:40.3710365Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/befefa01-2a29-4197-83a8-272ff33ce314\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"befefa01-2a29-4197-83a8-272ff33ce314\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"EventGrid EventSubscription Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage EventGrid event subscription operations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.EventGrid/eventSubscriptions/*\",\r\n \"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-08T23:27:28.3130743Z\",\r\n \"updatedOn\": \"2019-01-08T00:06:34.3543171Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/428e0ff0-5e57-4d9c-a221-2c70d0e0a443\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"EventGrid EventSubscription Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read EventGrid event subscriptions.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.EventGrid/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-09T17:29:28.1417894Z\",\r\n \"updatedOn\": \"2019-01-08T00:05:40.2884365Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2414bbcf-6497-4faf-8c65-045460748405\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2414bbcf-6497-4faf-8c65-045460748405\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Graph Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and manage all aspects of the Enterprise Graph - Ontology, Schema mapping, Conflation and Conversational AI and Ingestions\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/conflation/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/conflation/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ontology/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ontology/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/delete\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/operations/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-23T21:07:22.5844236Z\",\r\n \"updatedOn\": \"2019-02-28T20:21:18.9318073Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b60367af-1334-4454-b71e-769d9a4f83d9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b60367af-1334-4454-b71e-769d9a4f83d9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"HDInsight Domain Services Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can Read, Create, Modify and Delete Domain Services related operations needed for HDInsight Enterprise Security Package\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.AAD/*/read\",\r\n \"Microsoft.AAD/domainServices/*/read\",\r\n \"Microsoft.AAD/domainServices/oucontainer/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-09-12T22:42:51.7451109Z\",\r\n \"updatedOn\": \"2018-09-12T23:06:45.7641599Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8d8d5a11-05d3-4bda-a417-a08778121c7c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8d8d5a11-05d3-4bda-a417-a08778121c7c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Intelligent Systems Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Intelligent Systems accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.IntelligentSystems/accounts/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:32:00.9996357Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/03a6d094-3444-4b3d-88af-7477090a9e5e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"03a6d094-3444-4b3d-88af-7477090a9e5e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Key Vault Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage key vaults, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.KeyVault/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.KeyVault/locations/deletedVaults/purge/action\",\r\n \"Microsoft.KeyVault/hsmPools/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-02-25T17:08:28.5184971Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:49.5373075Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f25e0fa2-a7c8-4377-a976-54943a77a395\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Knowledge Consumer\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Knowledge Read permission to consume Enterprise Graph Knowledge using entity search and graph query\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-23T21:23:31.4037552Z\",\r\n \"updatedOn\": \"2019-02-28T20:25:00.7369384Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ee361c5d-f7b5-4119-b4b6-892157c8f64c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Lab Creator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create, manage, delete your managed labs under your Azure Lab Accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.LabServices/labAccounts/*/read\",\r\n \"Microsoft.LabServices/labAccounts/createLab/action\",\r\n \"Microsoft.LabServices/labAccounts/sizes/getRegionalAvailability/action\",\r\n \"Microsoft.LabServices/labAccounts/getRegionalAvailability/action\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-01-18T23:38:58.1036141Z\",\r\n \"updatedOn\": \"2018-09-05T19:52:12.4859631Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Log Analytics Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Log Analytics Reader can view and search all monitoring data as well as and view monitoring settings, including viewing the configuration of Azure diagnostics on all Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.OperationalInsights/workspaces/sharedKeys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-02T00:20:28.1449012Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:26.0438523Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"73c42c96-874c-492b-b04d-ab87d138a893\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Log Analytics Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Log Analytics Contributor can read all monitoring data and edit monitoring settings. Editing monitoring settings includes adding the VM extension to VMs; reading storage account keys to be able to configure collection of logs from Azure Storage; creating and configuring Automation accounts; adding solutions; and configuring Azure diagnostics on all Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Automation/automationAccounts/*\",\r\n \"Microsoft.ClassicCompute/virtualMachines/extensions/*\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Compute/virtualMachines/extensions/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.OperationalInsights/*\",\r\n \"Microsoft.OperationsManagement/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-25T21:51:45.3174711Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:26.6376126Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Logic App Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read, enable and disable logic app.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*/read\",\r\n \"Microsoft.Insights/metricAlerts/*/read\",\r\n \"Microsoft.Insights/diagnosticSettings/*/read\",\r\n \"Microsoft.Insights/metricDefinitions/*/read\",\r\n \"Microsoft.Logic/*/read\",\r\n \"Microsoft.Logic/workflows/disable/action\",\r\n \"Microsoft.Logic/workflows/enable/action\",\r\n \"Microsoft.Logic/workflows/validate/action\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/connectionGateways/*/read\",\r\n \"Microsoft.Web/connections/*/read\",\r\n \"Microsoft.Web/customApis/*/read\",\r\n \"Microsoft.Web/serverFarms/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-04-28T21:33:30.4656007Z\",\r\n \"updatedOn\": \"2019-10-15T04:28:56.3265986Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Logic App Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage logic app, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/metricAlerts/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Insights/logdefinitions/*\",\r\n \"Microsoft.Insights/metricDefinitions/*\",\r\n \"Microsoft.Logic/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/connectionGateways/*\",\r\n \"Microsoft.Web/connections/*\",\r\n \"Microsoft.Web/customApis/*\",\r\n \"Microsoft.Web/serverFarms/join/action\",\r\n \"Microsoft.Web/serverFarms/read\",\r\n \"Microsoft.Web/sites/functions/listSecrets/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-04-28T21:33:30.4656007Z\",\r\n \"updatedOn\": \"2019-10-15T04:31:27.7685427Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/87a39d53-fc1b-424a-814c-f7e04687dc9e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"87a39d53-fc1b-424a-814c-f7e04687dc9e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Application Operator Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and perform actions on Managed Application resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Solutions/applications/read\",\r\n \"Microsoft.Solutions/*/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T00:59:33.7988813Z\",\r\n \"updatedOn\": \"2019-02-20T01:09:55.1593079Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c7393b34-138c-406f-901b-d8cf2b17e6ae\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c7393b34-138c-406f-901b-d8cf2b17e6ae\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Applications Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read resources in a managed app and request JIT access.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Solutions/jitRequests/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-09-06T00:33:58.3651522Z\",\r\n \"updatedOn\": \"2018-09-06T00:33:58.3651522Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b9331d33-8a36-4f8c-b097-4f54124fdb44\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b9331d33-8a36-4f8c-b097-4f54124fdb44\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Identity Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read and Assign User Assigned Identity\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/*/read\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-14T19:52:04.3924594Z\",\r\n \"updatedOn\": \"2017-12-14T22:16:00.1483256Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f1a07417-d97a-45cb-824c-7a7467783830\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f1a07417-d97a-45cb-824c-7a7467783830\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Identity Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create, Read, Update, and Delete User Assigned Identity\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/read\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/write\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/delete\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-14T19:53:42.8804692Z\",\r\n \"updatedOn\": \"2019-06-20T21:51:27.0850433Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Management Group Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Management Group Contributor Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Management/managementGroups/delete\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.Management/managementGroups/subscriptions/delete\",\r\n \"Microsoft.Management/managementGroups/subscriptions/write\",\r\n \"Microsoft.Management/managementGroups/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-06-22T00:28:29.0523964Z\",\r\n \"updatedOn\": \"2018-07-10T20:51:26.6132189Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Management Group Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Management Group Reader Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-06-22T00:31:03.4295347Z\",\r\n \"updatedOn\": \"2018-07-10T20:49:42.563034Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ac63b705-f282-497d-ac71-919bf39d939d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ac63b705-f282-497d-ac71-919bf39d939d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Metrics Publisher\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Enables publishing metrics against Azure resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/Register/Action\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Insights/Metrics/Write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-14T00:36:16.5610279Z\",\r\n \"updatedOn\": \"2018-08-14T00:37:18.1465065Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"3913510d-42f4-4e42-8a64-420c390055eb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read all monitoring data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-09-21T19:19:52.4939376Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:27.262625Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Network Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage networks, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2016-05-31T23:14:00.3326359Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4d97b98b-1d4f-4787-a291-c67834d212e7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read all monitoring data and update monitoring settings.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.AlertsManagement/alerts/*\",\r\n \"Microsoft.AlertsManagement/alertsSummary/*\",\r\n \"Microsoft.Insights/actiongroups/*\",\r\n \"Microsoft.Insights/activityLogAlerts/*\",\r\n \"Microsoft.Insights/AlertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.Insights/DiagnosticSettings/*\",\r\n \"Microsoft.Insights/eventtypes/*\",\r\n \"Microsoft.Insights/LogDefinitions/*\",\r\n \"Microsoft.Insights/metricalerts/*\",\r\n \"Microsoft.Insights/MetricDefinitions/*\",\r\n \"Microsoft.Insights/Metrics/*\",\r\n \"Microsoft.Insights/Register/Action\",\r\n \"Microsoft.Insights/scheduledqueryrules/*\",\r\n \"Microsoft.Insights/webtests/*\",\r\n \"Microsoft.Insights/workbooks/*\",\r\n \"Microsoft.OperationalInsights/workspaces/intelligencepacks/*\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.OperationalInsights/workspaces/sharedKeys/action\",\r\n \"Microsoft.OperationalInsights/workspaces/storageinsightconfigs/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.WorkloadMonitor/monitors/*\",\r\n \"Microsoft.WorkloadMonitor/notificationSettings/*\",\r\n \"Microsoft.AlertsManagement/smartDetectorAlertRules/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-09-21T19:21:08.4345976Z\",\r\n \"updatedOn\": \"2019-08-16T20:02:57.4597886Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"New Relic APM Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage New Relic Application Performance Management accounts and applications, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"NewRelic.APM/accounts/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:16.2033878Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d28c62d-5b37-4476-8438-e587778df237\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d28c62d-5b37-4476-8438-e587778df237\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything, including access to resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:32.2101122Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view everything, but not make any changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:35.7424745Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Redis Cache Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Redis caches, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cache/redis/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:48.2353169Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e0f68234-74aa-48ed-b826-c38b57376e17\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e0f68234-74aa-48ed-b826-c38b57376e17\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Reader and Data Access\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view everything but will not let you delete or create a storage account or contained resource. It will also allow read/write access to all data contained in a storage account via access to storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Storage/storageAccounts/ListAccountSas/action\",\r\n \"Microsoft.Storage/storageAccounts/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-27T23:20:46.1498906Z\",\r\n \"updatedOn\": \"2019-04-04T23:41:26.1056261Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c12c1c16-33a1-487b-954d-41c89c60f349\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c12c1c16-33a1-487b-954d-41c89c60f349\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Resource Policy Contributor (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"(Preview) Backfilled users from EA, with rights to create/modify resource policy, create support ticket and read resources/hierarchy.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Authorization/policyassignments/*\",\r\n \"Microsoft.Authorization/policydefinitions/*\",\r\n \"Microsoft.Authorization/policysetdefinitions/*\",\r\n \"Microsoft.PolicyInsights/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-08-25T19:08:01.3861639Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:27.8272264Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"36243c78-bf99-498c-9df9-86d9f8d28608\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Scheduler Job Collections Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Scheduler job collections, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Scheduler/jobcollections/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:24.8360756Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/188a0f2f-5c9e-469b-ae67-2aa5ce574b94\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Search Service Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Search services, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Search/searchServices/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:21.8687229Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7ca78c08-252a-4471-8644-bb5ff32d4ba0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Admin\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Security Admin Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Authorization/policyAssignments/*\",\r\n \"Microsoft.Authorization/policyDefinitions/*\",\r\n \"Microsoft.Authorization/policySetDefinitions/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.operationalInsights/workspaces/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-03T07:51:23.0917487Z\",\r\n \"updatedOn\": \"2019-03-12T21:12:48.635016Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fb1c8493-542b-48eb-b624-b4c8fea62acd\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Manager (Legacy)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"This is a legacy role. Please use Security Administrator instead\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicCompute/*/read\",\r\n \"Microsoft.ClassicCompute/virtualMachines/*/write\",\r\n \"Microsoft.ClassicNetwork/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-22T17:45:15.8986455Z\",\r\n \"updatedOn\": \"2018-03-08T18:18:48.618362Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e3d13bf0-dd5a-482e-ba6b-9b8433878d10\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Security Reader Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.operationalInsights/workspaces/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-03T07:48:49.0516559Z\",\r\n \"updatedOn\": \"2018-06-28T17:27:23.106561Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/39bc4728-0917-49c7-9d2c-d95423bc2eb4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage spatial anchors in your account, but not delete them\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:41.1420864Z\",\r\n \"updatedOn\": \"2019-02-13T06:13:39.8686435Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Site Recovery service except vault creation and role assignment\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/locations/allocateStamp/action\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/write\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/*\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:46:17.4592776Z\",\r\n \"updatedOn\": \"2017-06-29T05:31:19.7240473Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6670b86e-a3f7-4917-ac9b-5d6ab1be4567\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you failover and failback but not perform other Site Recovery management operations\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/locations/allocateStamp/action\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/checkConsistency/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/reassociateGateway/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/renewcertificate/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/applyRecoveryPoint/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/failoverCommit/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/plannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/repairReplication/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/reProtect/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/switchprotection/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailoverCleanup/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/unplannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/updateMobilityService/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/refreshProvider/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/failoverCommit/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/plannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/reProtect/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailoverCleanup/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/unplannedFailover/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:47:50.1341148Z\",\r\n \"updatedOn\": \"2019-08-28T12:00:57.4472826Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/494ae006-db33-4328-bf46-533a6560a3ca\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"494ae006-db33-4328-bf46-533a6560a3ca\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you locate and read properties of spatial anchors in your account\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:42.9271004Z\",\r\n \"updatedOn\": \"2019-02-13T06:16:15.3170663Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d51204f-eb77-4b1c-b86a-2ec626c49413\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d51204f-eb77-4b1c-b86a-2ec626c49413\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view Site Recovery status but not perform other management operations\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:35:40.0093634Z\",\r\n \"updatedOn\": \"2017-05-26T19:54:51.393325Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/dbaa88c4-0c30-4179-9fb3-46319faa6149\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"dbaa88c4-0c30-4179-9fb3-46319faa6149\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage spatial anchors in your account, including deleting them\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/delete\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:43.5489832Z\",\r\n \"updatedOn\": \"2019-02-13T06:15:31.8572222Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/70bbe301-9835-447d-afdd-19eb3167307c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"70bbe301-9835-447d-afdd-19eb3167307c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Managed Instance Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL Managed Instances and required network configuration, but can’t give access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Network/networkSecurityGroups/*\",\r\n \"Microsoft.Network/routeTables/*\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/managedInstances/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/*\",\r\n \"Microsoft.Network/virtualNetworks/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-10T22:57:14.2937983Z\",\r\n \"updatedOn\": \"2019-04-25T17:59:01.7432149Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL DB Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL databases, but not access to them. Also, you can't manage their security-related policies or their parent SQL servers.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/servers/databases/*\",\r\n \"Microsoft.Sql/servers/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-28T22:44:35.864967Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Security Manager\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage the security-related policies of SQL servers and databases, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/transparentDataEncryption/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/extendedAuditingSettings/read\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/read\",\r\n \"Microsoft.Sql/servers/databases/read\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/read\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/read\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/read\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/transparentDataEncryption/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/firewallRules/*\",\r\n \"Microsoft.Sql/servers/read\",\r\n \"Microsoft.Sql/servers/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-16T18:44:40.4607572Z\",\r\n \"updatedOn\": \"2019-08-08T22:58:22.2532171Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"yaiyun\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage storage accounts, including accessing storage account keys which provide full access to storage account data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2019-05-29T20:56:33.9582501Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"17d1049b-9a84-46fb-8f53-869881c3d3ab\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Server Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL servers and databases, but not access to them, and not their security -related policies.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/servers/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-28T22:44:36.5466043Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Account Key Operator Service Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Storage Account Key Operators are allowed to list and regenerate keys on Storage Accounts\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-13T18:26:11.577057Z\",\r\n \"updatedOn\": \"2017-04-13T20:57:14.5990198Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"81a9662b-bebf-436f-a333-f67b29880f12\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write and delete access to Azure Storage blob containers and data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-07-16T17:39:31.7303676Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Storage blob containers and data, including assigning POSIX access control.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/*\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-04T07:02:58.2775257Z\",\r\n \"updatedOn\": \"2019-07-16T21:30:33.7002563Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure Storage blob containers and data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-07-15T22:01:25.5409721Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, and delete access to Azure Storage queues and queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/delete\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-03-05T21:58:02.7367128Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Message Processor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for peek, receive, and delete access to Azure Storage queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-01-28T22:27:04.8947111Z\",\r\n \"updatedOn\": \"2019-03-05T22:05:46.1259125Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8a0f0c08-91a1-4084-bc3d-661d67233fed\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Message Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for sending of Azure Storage queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-01-28T22:28:34.7459724Z\",\r\n \"updatedOn\": \"2019-03-05T22:11:49.6383892Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure Storage queues and queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-03-05T22:17:32.1779262Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"19e7f393-937e-4f77-808e-94535e297925\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Support Request Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create and manage Support requests\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-06-22T22:25:37.8053068Z\",\r\n \"updatedOn\": \"2017-06-23T01:06:24.2399631Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Traffic Manager Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Traffic Manager profiles, but does not let you control who has access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/trafficManagerProfiles/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-15T23:33:25.9730842Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:44.1458854Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine Administrator Login\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"View Virtual Machines in the portal and login as administrator\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Compute/virtualMachines/login/action\",\r\n \"Microsoft.Compute/virtualMachines/loginAsAdmin/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-09T18:36:13.3315744Z\",\r\n \"updatedOn\": \"2018-05-09T22:17:57.0514548Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"1c0163c0-47e6-4577-8991-ea5c82e286e4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"User Access Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage user access to Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Authorization/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:12.6807454Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine User Login\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"View Virtual Machines in the portal and login as a regular user.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Compute/virtualMachines/login/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-09T18:36:13.3315744Z\",\r\n \"updatedOn\": \"2018-05-09T22:18:52.2780979Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fb879df8-f326-4884-b1cf-06f3ad86be52\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage virtual machines, but not access to them, and not the virtual network or storage account they're connected to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/locations/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Compute/virtualMachineScaleSets/*\",\r\n \"Microsoft.DevTestLab/schedules/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/applicationGateways/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\r\n \"Microsoft.Network/loadBalancers/probes/join/action\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/locations/*\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/read\",\r\n \"Microsoft.Network/publicIPAddresses/join/action\",\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.RecoveryServices/locations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/write\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/write\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.SqlVirtualMachine/*\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2018-10-16T16:16:51.7928187Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Web Plan Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage the web plans for websites, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/serverFarms/*\",\r\n \"Microsoft.Web/hostingEnvironments/Join/Action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-03-26T18:17:34.5018645Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Website Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage websites (not web plans), but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/certificates/*\",\r\n \"Microsoft.Web/listSitesAssignedToHostName/read\",\r\n \"Microsoft.Web/serverFarms/join/action\",\r\n \"Microsoft.Web/serverFarms/read\",\r\n \"Microsoft.Web/sites/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-05-12T23:10:23.6193952Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:46.9407288Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"de139f84-1756-47ae-9be6-808fbbe84772\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-16T21:33:36.7445745Z\",\r\n \"updatedOn\": \"2019-08-21T22:47:11.3982905Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"090c5cfd-751d-490a-894a-3ce6f1109419\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-16T21:34:29.8656362Z\",\r\n \"updatedOn\": \"2019-08-21T22:58:57.7584645Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f526a384-b230-433a-b45c-95f59c4a2dec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Attestation Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read write or delete the attestation provider instance\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Attestation/attestationProviders/attestation/read\",\r\n \"Microsoft.Attestation/attestationProviders/attestation/write\",\r\n \"Microsoft.Attestation/attestationProviders/attestation/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-19T00:24:09.3354177Z\",\r\n \"updatedOn\": \"2019-05-10T17:59:06.3448436Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"HDInsight Cluster Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and modify HDInsight cluster configurations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HDInsight/*/read\",\r\n \"Microsoft.HDInsight/clusters/getGatewaySettings/action\",\r\n \"Microsoft.HDInsight/clusters/updateGatewaySettings/action\",\r\n \"Microsoft.HDInsight/clusters/configurations/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-20T00:03:01.7110732Z\",\r\n \"updatedOn\": \"2019-04-28T02:34:17.4679314Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"61ed4efc-fab3-44fd-b111-e24485cc132a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cosmos DB Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.DocumentDb/databaseAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/regenerateKey/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/listKeys/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-26T17:01:17.0169383Z\",\r\n \"updatedOn\": \"2019-04-26T19:26:46.6326968Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"230815da-be43-4aae-9cb4-875f7bd000aa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Hybrid Server Resource Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read, write, delete, and re-onboard Hybrid servers to the Hybrid Resource Provider.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/*\",\r\n \"Microsoft.HybridCompute/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-29T21:39:32.3132923Z\",\r\n \"updatedOn\": \"2019-05-06T20:08:25.3180258Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Hybrid Server Onboarding\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can onboard new Hybrid servers to the Hybrid Resource Provider.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-29T22:36:28.1873756Z\",\r\n \"updatedOn\": \"2019-05-06T20:09:17.9364269Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Receiver\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows receive access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*/eventhubs/consumergroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*/receive/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:25:21.1056666Z\",\r\n \"updatedOn\": \"2019-08-21T23:00:32.6225396Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows send access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*/eventhubs/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*/send/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:26:12.4673714Z\",\r\n \"updatedOn\": \"2019-08-21T23:02:26.6155679Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2b629674-e913-4c01-ae53-ef4638d8f975\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Receiver\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for receive access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*/queues/read\",\r\n \"Microsoft.ServiceBus/*/topics/read\",\r\n \"Microsoft.ServiceBus/*/topics/subscriptions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*/receive/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:43:01.6343849Z\",\r\n \"updatedOn\": \"2019-08-21T22:55:24.3423558Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for send access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*/queues/read\",\r\n \"Microsoft.ServiceBus/*/topics/read\",\r\n \"Microsoft.ServiceBus/*/topics/subscriptions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*/send/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:43:46.7046934Z\",\r\n \"updatedOn\": \"2019-08-21T22:57:12.2555683Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure File Share over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-01T20:19:31.8620471Z\",\r\n \"updatedOn\": \"2019-08-07T01:00:41.9223409Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"aba4ae5f-2193-4029-9191-0cb91df5e314\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, and delete access in Azure Storage file shares over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-01T20:54:35.483431Z\",\r\n \"updatedOn\": \"2019-08-07T01:05:24.4309872Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Private DNS Zone Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage private DNS zone resources, but not the virtual networks they are linked to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Network/privateDnsZones/*\",\r\n \"Microsoft.Network/privateDnsOperationResults/*\",\r\n \"Microsoft.Network/privateDnsOperationStatuses/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/join/action\",\r\n \"Microsoft.Authorization/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-10T19:31:15.5645518Z\",\r\n \"updatedOn\": \"2019-07-11T21:12:01.7260648Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Delegator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for generation of a user delegation key which can be used to sign SAS tokens\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-23T00:51:16.3376761Z\",\r\n \"updatedOn\": \"2019-07-23T01:14:31.8778475Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Desktop Virtualization User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows user to use the applications in an application group.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.DesktopVirtualization/applicationGroups/useApplications/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-07T00:29:03.8727621Z\",\r\n \"updatedOn\": \"2019-08-07T00:29:03.8727621Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Elevated Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, delete and modify NTFS permission access in Azure Storage file shares over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-07T01:35:36.9935457Z\",\r\n \"updatedOn\": \"2019-08-07T01:35:36.9935457Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a7264617-510b-434b-a828-9731dc254ea7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blueprint Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage blueprint definitions, but not assign them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Blueprint/blueprints/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-14T21:55:16.9683949Z\",\r\n \"updatedOn\": \"2019-08-17T00:10:55.7494677Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"41077137-e803-4205-871c-5a86e6a753b4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blueprint Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can assign existing published blueprints, but cannot create new blueprints. NOTE: this only works if the assignment is done with a user-assigned managed identity.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Blueprint/blueprintAssignments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-14T21:56:48.7897875Z\",\r\n \"updatedOn\": \"2019-08-17T00:06:02.6509737Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"437d2ced-4a38-4302-8479-ed2bcb43d090\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Contributor\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:39:03.8725173Z\",\r\n \"updatedOn\": \"2019-09-16T10:21:42.8502958Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ab8e14d6-4a74-4a29-9ba8-549422addade\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ab8e14d6-4a74-4a29-9ba8-549422addade\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Responder\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Responder\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*/read\",\r\n \"Microsoft.SecurityInsights/cases/*\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:54:07.6467264Z\",\r\n \"updatedOn\": \"2019-09-16T07:31:20.1685284Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/3e150937-b8fe-4cfb-8069-0eaf05ecd056\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Reader\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:58:50.1132117Z\",\r\n \"updatedOn\": \"2019-09-16T07:36:26.5341326Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8d289c81-5878-46d4-8554-54e1e3d8b5cb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Workbook Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read workbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"microsoft.insights/workbooks/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T20:56:17.680814Z\",\r\n \"updatedOn\": \"2019-08-28T21:43:05.0202124Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b279062a-9be3-42a0-92ae-8b3cf002ec4d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Workbook Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can save shared workbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/workbooks/write\",\r\n \"Microsoft.Insights/workbooks/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T20:59:42.4820277Z\",\r\n \"updatedOn\": \"2019-08-28T21:43:55.5802704Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e8ddcd69-c73f-4f9f-9844-4100522f16ad\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Policy Insights Data Writer (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to resource policies and write access to resource component policy events.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/policyassignments/read\",\r\n \"Microsoft.Authorization/policydefinitions/read\",\r\n \"Microsoft.Authorization/policysetdefinitions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.PolicyInsights/checkDataPolicyCompliance/action\",\r\n \"Microsoft.PolicyInsights/policyEvents/logDataEvents/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-19T19:35:20.9504127Z\",\r\n \"updatedOn\": \"2019-09-19T19:37:02.5331596Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/66bb4e9e-b016-4a94-8249-4c0511c2be84\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"66bb4e9e-b016-4a94-8249-4c0511c2be84\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SignalR AccessKey Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read SignalR Service Access Keys\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SignalRService/*/read\",\r\n \"Microsoft.SignalRService/SignalR/listkeys/action\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-20T09:33:19.6236874Z\",\r\n \"updatedOn\": \"2019-09-20T09:33:19.6236874Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/04165923-9d83-45d5-8227-78b77b0a687e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"04165923-9d83-45d5-8227-78b77b0a687e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SignalR Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create, Read, Update, and Delete SignalR service resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SignalRService/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-20T09:58:09.0009662Z\",\r\n \"updatedOn\": \"2019-09-20T09:58:09.0009662Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Connected Machine Onboarding\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can onboard Azure Connected Machines.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T20:15:07.137287Z\",\r\n \"updatedOn\": \"2019-10-24T19:00:04.3288557Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Connected Machine Resource Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read, write, delete and re-onboard Azure Connected Machines.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\",\r\n \"Microsoft.HybridCompute/machines/delete\",\r\n \"Microsoft.HybridCompute/machines/reconnect/action\",\r\n \"Microsoft.HybridCompute/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T20:24:59.1474607Z\",\r\n \"updatedOn\": \"2019-10-24T18:57:01.0320416Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cd570a14-e51a-42ad-bac8-bafd67325302\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Services Registration assignment Delete Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Managed Services Registration Assignment Delete Role allows the managing tenant users to delete the registration assignment assigned to their tenant.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedServices/registrationAssignments/read\",\r\n \"Microsoft.ManagedServices/registrationAssignments/delete\",\r\n \"Microsoft.ManagedServices/operationStatuses/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T22:33:33.1183469Z\",\r\n \"updatedOn\": \"2019-10-24T21:49:09.3875276Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"91c1777a-f3dc-4fae-b103-61d183457e46\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"App Configuration Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows full access to App Configuration data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.AppConfiguration/configurationStores/*/read\",\r\n \"Microsoft.AppConfiguration/configurationStores/*/write\",\r\n \"Microsoft.AppConfiguration/configurationStores/*/delete\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-25T18:41:40.1185063Z\",\r\n \"updatedOn\": \"2019-10-25T18:41:40.1185063Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"App Configuration Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to App Configuration data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.AppConfiguration/configurationStores/*/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-25T18:45:33.7975332Z\",\r\n \"updatedOn\": \"2019-10-25T18:45:33.7975332Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"516239f1-63e1-4d78-a4de-a74fb236a071\"\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "//subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/providers/Microsoft.Authorization/roleAssignments/86e1031d-5819-4a43-9eb5-05b1d3b67565?api-version=2018-09-01-preview", + "EncodedRequestUri": "Ly9zdWJzY3JpcHRpb25zLzhjMzlkNzk3LWQ1NGEtNGE0MS05YWRlLTJlZWE3Yzg4ZjU0OS9yZXNvdXJjZUdyb3Vwcy9ocGMxMTAyeGE5NmE5MjAyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvaHBjMTEwMnhhOTZhOTIwMi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZUFzc2lnbm1lbnRzLzg2ZTEwMzFkLTU4MTktNGE0My05ZWI1LTA1YjFkM2I2NzU2NT9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"roleDefinitionId\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"principalId\": \"7fa8cc7f-62da-4e68-881c-678e89799a30\",\r\n \"canDelegate\": false\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7ce0668b-dec5-493f-9248-a2c3a81b5a2b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Authorization.AuthorizationManagementClient/2.11.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "281" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-charge": [ + "1" + ], + "x-ms-request-id": [ + "9a9226f6-3d97-4a4b-b3dd-19e86681cfcb" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Set-Cookie": [ + "x-ms-gateway-slice=Production; path=/; secure; HttpOnly" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "3af1f68b-d82a-4f48-a539-9bb24870b099" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182309Z:3af1f68b-d82a-4f48-a539-9bb24870b099" + ], + "Date": [ + "Sat, 02 Nov 2019 18:23:08 GMT" + ], + "Content-Length": [ + "907" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"roleDefinitionId\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"principalId\": \"7fa8cc7f-62da-4e68-881c-678e89799a30\",\r\n \"principalType\": \"ServicePrincipal\",\r\n \"scope\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202\",\r\n \"createdOn\": \"2019-11-02T18:23:07.5388387Z\",\r\n \"updatedOn\": \"2019-11-02T18:23:07.5388387Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"20c5b867-147a-4973-b21c-bbf6e4d3da3b\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/providers/Microsoft.Authorization/roleAssignments/86e1031d-5819-4a43-9eb5-05b1d3b67565\",\r\n \"type\": \"Microsoft.Authorization/roleAssignments\",\r\n \"name\": \"86e1031d-5819-4a43-9eb5-05b1d3b67565\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAyL2Jsb2JTZXJ2aWNlcy9kZWZhdWx0L2NvbnRhaW5lcnMvaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE5LTA0LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "696384de-419f-439f-a2a9-d04a4487125f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "56" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D75FC31C6F0118\"" + ], + "x-ms-request-id": [ + "b51aab8c-bbc9-484a-9af9-202e4a10dcf7" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "9c811849-2fda-4c19-ba22-ce974cfbee90" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183309Z:9c811849-2fda-4c19-ba22-ce974cfbee90" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:08 GMT" + ], + "Content-Length": [ + "383" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\",\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/506cf14f-7547-4588-b0d7-67ca1ed6f345/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "402" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "88564fc4-e904-4f75-9606-91c87a361dbb" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "b7cbd345-c255-4cfd-8929-df68e3a4c401" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183310Z:b7cbd345-c255-4cfd-8929-df68e3a4c401" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:10 GMT" + ], + "Content-Length": [ + "203" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.clfs.target\",\r\n \"message\": \"Target storage account or container does not exist or hasn't sufficient permissions.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": { + "AddStorageAccountAccessRules": [ + "86e1031d-5819-4a43-9eb5-05b1d3b67565" + ] + }, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestCreateClfsStorageTarget.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestCreateClfsStorageTarget.json new file mode 100644 index 000000000000..2c7783f50624 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestCreateClfsStorageTarget.json @@ -0,0 +1,727 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b823f971-bb7d-4128-bdd4-7c024e9bc5bb" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "c8403855-72cb-46b9-bf3a-fd5f148e2c03" + ], + "x-ms-correlation-request-id": [ + "c8403855-72cb-46b9-bf3a-fd5f148e2c03" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184226Z:c8403855-72cb-46b9-bf3a-fd5f148e2c03" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:26 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0081ac64-ecfa-48e0-a8b6-3757c5bdda1b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-request-id": [ + "b22a1e20-91fe-454d-bca4-8c65fc59a7de" + ], + "x-ms-correlation-request-id": [ + "b22a1e20-91fe-454d-bca4-8c65fc59a7de" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184226Z:b22a1e20-91fe-454d-bca4-8c65fc59a7de" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:26 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAyY3JlP2FwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "236172eb-0767-459c-8de7-a1cdc2a65480" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "98" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/6b7f2468-54f8-4743-bcba-cb60259ff184?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "6b7f2468-54f8-4743-bcba-cb60259ff184" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "17a45599-e2de-415a-899a-6975b2dab9c9" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184227Z:17a45599-e2de-415a-899a-6975b2dab9c9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:27 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/6b7f2468-54f8-4743-bcba-cb60259ff184?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzL2FzeW5jb3BlcmF0aW9ucy82YjdmMjQ2OC01NGY4LTQ3NDMtYmNiYS1jYjYwMjU5ZmYxODQ/bW9uaXRvcj10cnVlJmFwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "e59f1a5f-a0bb-42de-850c-31f02a732acd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "4fa1ff37-c875-45b7-b9f8-1ebad44a21cd" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184244Z:4fa1ff37-c875-45b7-b9f8-1ebad44a21cd" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:44 GMT" + ], + "Content-Length": [ + "1220" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre\",\r\n \"name\": \"hpc1102xa96a9202cre\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:42:27.2995876Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:42:27.2995876Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-02T18:42:27.2058432Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://hpc1102xa96a9202cre.dfs.core.windows.net/\",\r\n \"web\": \"https://hpc1102xa96a9202cre.z13.web.core.windows.net/\",\r\n \"blob\": \"https://hpc1102xa96a9202cre.blob.core.windows.net/\",\r\n \"queue\": \"https://hpc1102xa96a9202cre.queue.core.windows.net/\",\r\n \"table\": \"https://hpc1102xa96a9202cre.table.core.windows.net/\",\r\n \"file\": \"https://hpc1102xa96a9202cre.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "//subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview", + "EncodedRequestUri": "Ly9zdWJzY3JpcHRpb25zLzhjMzlkNzk3LWQ1NGEtNGE0MS05YWRlLTJlZWE3Yzg4ZjU0OS9yZXNvdXJjZUdyb3Vwcy9ocGMxMTAyeGE5NmE5MjAyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvaHBjMTEwMnhhOTZhOTIwMmNyZS9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zP2FwaS12ZXJzaW9uPTIwMTgtMDEtMDEtcHJldmlldw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b1c09983-05da-4031-9304-c33dcf823692" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Authorization.AuthorizationManagementClient/2.11.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-charge": [ + "1" + ], + "x-ms-request-id": [ + "2d7d11d9-4ece-48b8-936f-a05d2cd7c84e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Set-Cookie": [ + "x-ms-gateway-slice=Production; path=/; SameSite=None; secure; HttpOnly" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "55e8ecdb-e21c-463f-bd90-b5944528cb9e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184245Z:55e8ecdb-e21c-463f-bd90-b5944528cb9e" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:45 GMT" + ], + "Content-Length": [ + "168812" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Cluster Create\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Avere cluster create role used by the Avere controller to create a vFXT cluster.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.Authorization/roleDefinitions/*\",\r\n \"Microsoft.Compute/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Network/*/read\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\r\n \"Microsoft.Storage/*/read\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-11-29T18:46:55.0492387Z\",\r\n \"updatedOn\": \"2018-11-29T18:46:55.0492387Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Cluster Runtime Operator\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Avere cluster runtime role used by Avere clusters running in subscriptions, for the purpose of failing over IP addresses, accessing BLOB storage, etc\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Network/routeTables/read\",\r\n \"Microsoft.Network/routeTables/routes/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-26T00:41:26.2170858Z\",\r\n \"updatedOn\": \"2018-08-26T00:41:26.2170858Z\",\r\n \"createdBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\r\n \"updatedBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e078ab98-ef3a-4c9a-aba7-12f5172b45d0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Deploy Release Management Contributor\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Contributor role for services deploying through Azure Service Deploy.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Authorization/*/Delete\",\r\n \"Microsoft.Authorization/*/Write\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-02-04T02:26:31.5413362Z\",\r\n \"updatedOn\": \"2018-01-08T20:20:16.3660174Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/21d96096-b162-414a-8302-d8354f9d91b2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"21d96096-b162-414a-8302-d8354f9d91b2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CAL-Custom-Role\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Lets SAP Cloud Appliance Library application manage Network and Compute services, manage Resource Groups and Management locks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/locks/*\",\r\n \"Microsoft.Authorization/roleDefinitions/*\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.Compute/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.Resources/*\",\r\n \"Microsoft.Storage/*\",\r\n \"Microsoft.ContainerService/*\",\r\n \"Microsoft.ContainerRegistry/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-05-14T19:30:51.0664585Z\",\r\n \"updatedOn\": \"2019-02-19T19:11:57.5963229Z\",\r\n \"createdBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7b266cd7-0bba-4ae2-8423-90ede5e1e898\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Dsms Role (deprecated)\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom role used by Dsms to perform operations. Can list and regnerate storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-17T18:02:11.1225951Z\",\r\n \"updatedOn\": \"2018-01-13T00:21:52.7211696Z\",\r\n \"createdBy\": \"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\",\r\n \"updatedBy\": \"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Dsms Role (do not use)\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom role used by Dsms to perform operations. Can list and regnerate storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-01T07:56:12.5880222Z\",\r\n \"updatedOn\": \"2018-08-09T17:53:48.5432297Z\",\r\n \"createdBy\": \"becb4b6b-fe16-413b-a5c3-90355e0b2982\",\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7aff565e-6c55-448d-83db-ccf482c6da2f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7aff565e-6c55-448d-83db-ccf482c6da2f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"ExpressRoute Administrator\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Can create, delete and manage ExpressRoutes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/locks/*\",\r\n \"Microsoft.Authorization/policyAssignments/*\",\r\n \"Microsoft.Authorization/policyDefinitions/*\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.ClassicNetwork/*\",\r\n \"Microsoft.EventGrid/*\",\r\n \"Microsoft.Insights/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.Resources/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-31T03:51:32.2843055Z\",\r\n \"updatedOn\": \"2019-03-20T22:55:18.8222085Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a48d7896-14b4-4889-afef-fbb65a96e5a2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a48d7896-14b4-4889-afef-fbb65a96e5a2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"GenevaWarmPathResourceContributor\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Can manage service bus and storage accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/namespaces/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/*\",\r\n \"Microsoft.ServiceBus/namespaces/*\",\r\n \"Microsoft.Storage/storageAccounts/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-03-14T22:30:10.1999436Z\",\r\n \"updatedOn\": \"2017-03-14T22:30:10.1999436Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"masterreader\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Lets you view everything, but not make any changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-11-14T23:38:05.3353858Z\",\r\n \"updatedOn\": \"2017-11-14T23:38:05.3353858Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a48d7796-14b4-4889-afef-fbb65a93e5a2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a48d7796-14b4-4889-afef-fbb65a93e5a2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Microsoft OneAsset Reader\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"This role is for Microsoft OneAsset team (CSEO) to track internal security compliance and resource utilization.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-27T23:51:08.6333052Z\",\r\n \"updatedOn\": \"2019-04-02T20:35:43.3396263Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fd1bb084-1503-4bd2-99c0-630220046786\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fd1bb084-1503-4bd2-99c0-630220046786\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Office DevOps\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom access for developers to operations but not secrets.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachineScaleSets/restart/action\",\r\n \"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/delete\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/failover/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/forceFailoverAllowDataLoss/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/operationResults/read\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/read\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/unlink/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-10-07T08:11:46.1639398Z\",\r\n \"updatedOn\": \"2017-03-16T18:43:08.3234306Z\",\r\n \"createdBy\": \"25aea6be-b605-4347-a92d-33e178e412ec\",\r\n \"updatedBy\": \"25aea6be-b605-4347-a92d-33e178e412ec\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7fd64851-3279-459b-b614-e2b2ba760f5b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7fd64851-3279-459b-b614-e2b2ba760f5b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AZSC 1st Party Testmirror\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Describes first-party access for AZSC in test.\",\r\n \"assignableScopes\": [\r\n \"/subscriptions/e85a6c81-7b89-42c5-8d87-aca71e5113cc\",\r\n \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549\",\r\n \"/subscriptions/863c722a-2299-40dc-a2b0-f4717918a6f4\",\r\n \"/subscriptions/6d777ac4-9ba5-42c4-9306-d12ea818d8ff\",\r\n \"/subscriptions/46841c0e-69c8-4b17-af46-6626ecb15fc2\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/loadBalancers/write\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/loadBalancers/delete\",\r\n \"Microsoft.Network/loadbalancers/backendaddresspools/join/action\",\r\n \"Microsoft.Network/loadbalancers/backendconfigurations/*\",\r\n \"Microsoft.Network/loadbalancers/frontendconfigurations/*\",\r\n \"Microsoft.Network/loadbalancers/inboundnatpools/join/action\",\r\n \"Microsoft.Network/loadbalancers/inboundnatrules/*\",\r\n \"Microsoft.Network/loadbalancers/inboundnatrules/join/action\",\r\n \"Microsoft.Network/loadbalancers/loadbalancingrules/*\",\r\n \"Microsoft.Network/loadbalancers/probes/*\",\r\n \"Microsoft.Network/locations/operationresults/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/delete\",\r\n \"Microsoft.Network/networkInterfaces/join/action\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read\",\r\n \"Microsoft.Network/applicationSecurityGroups/joinIpConfiguration/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-06-21T14:30:02.8871253Z\",\r\n \"updatedOn\": \"2019-06-21T15:30:15.5762832Z\",\r\n \"createdBy\": \"7dcef84f-48d0-499f-906d-fd2d4aaccc93\",\r\n \"updatedBy\": \"7dcef84f-48d0-499f-906d-fd2d4aaccc93\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cd9f9694-5029-4901-9a51-4034e7b028ad\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cd9f9694-5029-4901-9a51-4034e7b028ad\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrPush\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr push\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/pull/read\",\r\n \"Microsoft.ContainerRegistry/registries/push/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-29T17:52:32.5201177Z\",\r\n \"updatedOn\": \"2018-11-13T23:26:19.9749249Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8311e382-0749-4cb8-b61a-304f252e45ec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage service and the APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8650193Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:17.7502607Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"312a565d-c81f-4fd8-895a-4e21e48d571c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrPull\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr pull\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/pull/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-22T19:01:56.8227182Z\",\r\n \"updatedOn\": \"2018-11-13T23:22:03.2302457Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7f951dda-4ed3-4680-a7ca-43fe172d538d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrImageSigner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr image signer\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/sign/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-15T23:23:08.4038322Z\",\r\n \"updatedOn\": \"2018-10-29T19:06:24.9004422Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6cef56e8-d556-48e5-a04f-b8e64114680f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrDelete\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr delete\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/artifacts/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-11T20:19:31.6682804Z\",\r\n \"updatedOn\": \"2019-03-11T20:24:38.9845104Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrQuarantineReader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr quarantine data reader\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/quarantine/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-16T00:27:39.9596835Z\",\r\n \"updatedOn\": \"2019-10-22T00:12:39.702093Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cdda3590-29a3-44f6-95f2-9f980659eb04\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrQuarantineWriter\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr quarantine data writer\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/quarantine/read\",\r\n \"Microsoft.ContainerRegistry/registries/quarantine/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-16T00:26:37.587182Z\",\r\n \"updatedOn\": \"2019-10-22T00:10:29.8202164Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Operator Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage service but not the APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*/read\",\r\n \"Microsoft.ApiManagement/service/backup/action\",\r\n \"Microsoft.ApiManagement/service/delete\",\r\n \"Microsoft.ApiManagement/service/managedeployments/action\",\r\n \"Microsoft.ApiManagement/service/read\",\r\n \"Microsoft.ApiManagement/service/restore/action\",\r\n \"Microsoft.ApiManagement/service/updatecertificate/action\",\r\n \"Microsoft.ApiManagement/service/updatehostname/action\",\r\n \"Microsoft.ApiManagement/service/write\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.ApiManagement/service/users/keys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-11-09T00:03:42.1194019Z\",\r\n \"updatedOn\": \"2016-11-18T23:56:25.4682649Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Reader Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read-only access to service and APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*/read\",\r\n \"Microsoft.ApiManagement/service/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.ApiManagement/service/users/keys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-11-09T00:26:45.1540473Z\",\r\n \"updatedOn\": \"2017-01-23T23:10:34.8876776Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"71522526-b88f-4d52-b57f-d31fc3546d0d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Application Insights Component Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage Application Insights components\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.Insights/webtests/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:37.1625138Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ae349356-3a1b-4a5e-921d-050484c6347e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Application Insights Snapshot Debugger\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Gives user permission to use Application Insights Snapshot Debugger features\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T21:25:12.3728747Z\",\r\n \"updatedOn\": \"2017-04-19T23:34:59.9511581Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Attestation Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read the attestation provider properties\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Attestation/attestationProviders/attestation/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-25T19:42:59.157671Z\",\r\n \"updatedOn\": \"2019-05-10T17:52:38.9036953Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"SYSTEM\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Job Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and Manage Jobs using Automation Runbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/resume/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/stop/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/streams/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/write\",\r\n \"Microsoft.Automation/automationAccounts/jobs/output/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T20:52:41.0020018Z\",\r\n \"updatedOn\": \"2018-08-14T22:08:48.1147327Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4fe576fe-1146-4730-92eb-48519fa6bf9f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Runbook Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read Runbook properties - to be able to create Jobs of the runbook.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/runbooks/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T20:47:49.5640674Z\",\r\n \"updatedOn\": \"2017-04-25T01:00:45.6444999Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Automation Operators are able to start, stop, suspend, and resume jobs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/resume/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/stop/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/streams/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/write\",\r\n \"Microsoft.Automation/automationAccounts/jobSchedules/read\",\r\n \"Microsoft.Automation/automationAccounts/jobSchedules/write\",\r\n \"Microsoft.Automation/automationAccounts/linkedWorkspace/read\",\r\n \"Microsoft.Automation/automationAccounts/read\",\r\n \"Microsoft.Automation/automationAccounts/runbooks/read\",\r\n \"Microsoft.Automation/automationAccounts/schedules/read\",\r\n \"Microsoft.Automation/automationAccounts/schedules/write\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Automation/automationAccounts/jobs/output/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-08-18T01:05:03.391613Z\",\r\n \"updatedOn\": \"2018-05-10T20:12:39.69782Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"d3881f73-407a-4167-8283-e981cbba0404\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can create and manage an Avere vFXT cluster.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Compute/disks/*\",\r\n \"Microsoft.Network/*/read\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/*/read\",\r\n \"Microsoft.Storage/storageAccounts/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-18T20:00:58.9207889Z\",\r\n \"updatedOn\": \"2019-03-29T00:35:59.8924565Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Used by the Avere vFXT cluster to manage the cluster\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-18T20:02:38.3399857Z\",\r\n \"updatedOn\": \"2019-03-29T00:26:37.9205875Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Kubernetes Service Cluster Admin Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"List cluster admin credential action.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-15T21:38:18.5953853Z\",\r\n \"updatedOn\": \"2018-08-15T21:47:19.4427524Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Kubernetes Service Cluster User Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"List cluster user credential action.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-15T22:04:53.4037241Z\",\r\n \"updatedOn\": \"2018-08-15T22:06:51.5961392Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Maps Data Reader (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Grants access to read map related data from an Azure maps account.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Maps/accounts/data/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-05T19:47:03.472307Z\",\r\n \"updatedOn\": \"2018-10-05T19:48:52.8066321Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Stack Registration Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Azure Stack registrations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.AzureStack/registrations/products/*/action\",\r\n \"Microsoft.AzureStack/registrations/products/read\",\r\n \"Microsoft.AzureStack/registrations/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-11-13T23:42:06.2161827Z\",\r\n \"updatedOn\": \"2019-08-01T18:44:52.5331479Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6f12a6df-dd06-4f3e-bcb1-ce8be600526a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage backup service,but can't create vaults and give access to others\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupSecurityPIN/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/*\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\r\n \"Microsoft.RecoveryServices/Vaults/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\r\n \"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:12:15.7321344Z\",\r\n \"updatedOn\": \"2019-06-03T04:25:42.192045Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5e467623-bb1f-42f4-a55d-6e525e11384b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5e467623-bb1f-42f4-a55d-6e525e11384b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Billing Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to billing data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Billing/*/read\",\r\n \"Microsoft.Commerce/*/read\",\r\n \"Microsoft.Consumption/*/read\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.CostManagement/*/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-25T02:13:38.9054151Z\",\r\n \"updatedOn\": \"2018-09-26T17:45:09.2227236Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage backup services, except removal of backup, vault creation and giving access to others\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/backup/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/write\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/write\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/write\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/inquire/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\r\n \"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:21:11.894764Z\",\r\n \"updatedOn\": \"2019-06-03T04:26:42.4271091Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"00c29273-979b-4161-815c-10b084fb9324\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view backup services, but can't make changes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupconfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:18:41.3893065Z\",\r\n \"updatedOn\": \"2019-06-03T04:27:36.450298Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a795c7a0-d4a2-40c1-ae25-d81f01202912\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blockchain Member Node Access (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for access to Blockchain Member nodes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Blockchain/blockchainMembers/transactionNodes/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Blockchain/blockchainMembers/transactionNodes/connect/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T10:33:01.9604839Z\",\r\n \"updatedOn\": \"2018-12-21T10:33:58.0042162Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/31a002a1-acaf-453e-8a5b-297c9ca1ea24\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"BizTalk Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage BizTalk services, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.BizTalkServices/BizTalk/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:18.897821Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5e3c6656-6cfa-4708-81fe-0de47ac73342\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Endpoint Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage CDN endpoints, but can’t grant access to other users.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/endpoints/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:52.6231539Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Endpoint Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view CDN endpoints, but can’t make changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/endpoints/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:53.1585846Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Profile Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage CDN profiles and their endpoints, but can’t grant access to other users.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:53.7051278Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ec156ff8-a8d1-4d15-830c-5b80698ca432\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ec156ff8-a8d1-4d15-830c-5b80698ca432\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Profile Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view CDN profiles and their endpoints, but can’t make changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:54.2283001Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8f96442b-4075-438f-813d-ad51ab4019af\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8f96442b-4075-438f-813d-ad51ab4019af\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Network Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic networks, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicNetwork/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:39.7576926Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b34d265f-36f7-4a0d-a4d4-e158ca92e90f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Storage Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic storage accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:30.8964641Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/86e8f5dc-a6e9-4c67-9d15-de283e8eac25\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Storage Account Key Operator Service Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Classic Storage Account Key Operators are allowed to list and regenerate keys on Classic Storage Accounts\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listkeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-13T18:22:52.14611Z\",\r\n \"updatedOn\": \"2017-04-13T20:54:03.0505986Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/985d6b00-f706-48f5-a6fe-d0ca12fb668d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"ClearDB MySQL DB Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage ClearDB MySQL databases, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"successbricks.cleardb/databases/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:23.2893077Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9106cda0-8a86-4e81-b686-29a22c54effe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9106cda0-8a86-4e81-b686-29a22c54effe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Virtual Machine Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic virtual machines, but not access to them, and not the virtual network or storage account they’re connected to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicCompute/domainNames/*\",\r\n \"Microsoft.ClassicCompute/virtualMachines/*\",\r\n \"Microsoft.ClassicNetwork/networkSecurityGroups/join/action\",\r\n \"Microsoft.ClassicNetwork/reservedIps/link/action\",\r\n \"Microsoft.ClassicNetwork/reservedIps/read\",\r\n \"Microsoft.ClassicNetwork/virtualNetworks/join/action\",\r\n \"Microsoft.ClassicNetwork/virtualNetworks/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/disks/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/images/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-04-25T00:37:56.5416086Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:43.0770473Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and list keys of Cognitive Services.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.CognitiveServices/*/read\",\r\n \"Microsoft.CognitiveServices/accounts/listkeys/action\",\r\n \"Microsoft.Insights/alertRules/read\",\r\n \"Microsoft.Insights/diagnosticSettings/read\",\r\n \"Microsoft.Insights/logDefinitions/read\",\r\n \"Microsoft.Insights/metricdefinitions/read\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.CognitiveServices/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-08T23:23:43.7701274Z\",\r\n \"updatedOn\": \"2019-02-13T19:53:56.7209248Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a97b65f3-24c7-4388-baec-2e87135dc908\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services Data Reader (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read Cognitive Services data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.CognitiveServices/*/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-13T20:02:12.6849986Z\",\r\n \"updatedOn\": \"2019-02-13T22:53:55.167529Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b59867f0-fa02-499b-be73-45a86b5b3e1c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b59867f0-fa02-499b-be73-45a86b5b3e1c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create, read, update, delete and manage keys of Cognitive Services.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.CognitiveServices/*\",\r\n \"Microsoft.Features/features/read\",\r\n \"Microsoft.Features/providers/features/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Insights/logDefinitions/read\",\r\n \"Microsoft.Insights/metricdefinitions/read\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-08T23:18:39.2257848Z\",\r\n \"updatedOn\": \"2018-09-14T00:53:37.7546808Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CosmosBackupOperator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can submit restore request for a Cosmos DB database or a container for an account\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.DocumentDB/databaseAccounts/backup/action\",\r\n \"Microsoft.DocumentDB/databaseAccounts/restore/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-07T19:47:14.965156Z\",\r\n \"updatedOn\": \"2018-12-07T19:52:21.9969834Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/db7b14f2-5adf-42da-9f96-f2ee17bab5cb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything except access to resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Authorization/*/Delete\",\r\n \"Microsoft.Authorization/*/Write\",\r\n \"Microsoft.Authorization/elevateAccess/Action\",\r\n \"Microsoft.Blueprint/blueprintAssignments/write\",\r\n \"Microsoft.Blueprint/blueprintAssignments/delete\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:38.458061Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cosmos DB Account Reader Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read Azure Cosmos DB Accounts data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DocumentDB/*/read\",\r\n \"Microsoft.DocumentDB/databaseAccounts/readonlykeys/action\",\r\n \"Microsoft.Insights/MetricDefinitions/read\",\r\n \"Microsoft.Insights/Metrics/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-10-30T17:53:54.6005577Z\",\r\n \"updatedOn\": \"2018-02-21T01:36:59.6186231Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cost Management Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view costs and manage cost configuration (e.g. budgets, exports)\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Consumption/*\",\r\n \"Microsoft.CostManagement/*\",\r\n \"Microsoft.Billing/billingPeriods/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Advisor/configurations/read\",\r\n \"Microsoft.Advisor/recommendations/read\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-14T16:09:22.8834827Z\",\r\n \"updatedOn\": \"2019-06-25T21:25:06.8686379Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/434105ed-43f6-45c7-a02f-909b2ba83430\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"434105ed-43f6-45c7-a02f-909b2ba83430\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cost Management Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view cost data and configuration (e.g. budgets, exports)\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Consumption/*/read\",\r\n \"Microsoft.CostManagement/*/read\",\r\n \"Microsoft.Billing/billingPeriods/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Advisor/configurations/read\",\r\n \"Microsoft.Advisor/recommendations/read\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-14T16:09:22.8834827Z\",\r\n \"updatedOn\": \"2019-06-25T20:59:11.5762937Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/72fafb9e-0641-4937-9268-a91bfd8191a3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"72fafb9e-0641-4937-9268-a91bfd8191a3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Box Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything under Data Box Service except giving access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Databox/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T08:28:42.714021Z\",\r\n \"updatedOn\": \"2018-07-27T08:36:56.3827309Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/add466c9-e687-43fc-8d98-dfcf8d720be5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"add466c9-e687-43fc-8d98-dfcf8d720be5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Box Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Data Box Service except creating order or editing order details and giving access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Databox/*/read\",\r\n \"Microsoft.Databox/jobs/listsecrets/action\",\r\n \"Microsoft.Databox/jobs/listcredentials/action\",\r\n \"Microsoft.Databox/locations/availableSkus/action\",\r\n \"Microsoft.Databox/locations/validateAddress/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T08:26:21.9284772Z\",\r\n \"updatedOn\": \"2019-04-29T07:30:10.4407109Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Factory Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and manage data factories, as well as child resources within them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DataFactory/dataFactories/*\",\r\n \"Microsoft.DataFactory/factories/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:24.1715226Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/673868aa-7521-48a0-acc6-0f60742d39f5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"673868aa-7521-48a0-acc6-0f60742d39f5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Purger\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can purge analytics data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/components/*/read\",\r\n \"Microsoft.Insights/components/purge/action\",\r\n \"Microsoft.OperationalInsights/workspaces/*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/purge/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-04-30T22:39:49.61677Z\",\r\n \"updatedOn\": \"2018-04-30T22:44:15.1171162Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/150f5e0c-0603-4f03-8c7f-cf70034c4e90\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Lake Analytics Developer\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you submit, monitor, and manage your own jobs but not create or delete Data Lake Analytics accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.BigAnalytics/accounts/*\",\r\n \"Microsoft.DataLakeAnalytics/accounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.BigAnalytics/accounts/Delete\",\r\n \"Microsoft.BigAnalytics/accounts/TakeOwnership/action\",\r\n \"Microsoft.BigAnalytics/accounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/TakeOwnership/action\",\r\n \"Microsoft.DataLakeAnalytics/accounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/firewallRules/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/firewallRules/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/computePolicies/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/computePolicies/Delete\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-20T00:33:29.3115234Z\",\r\n \"updatedOn\": \"2017-08-18T00:00:17.0411642Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/47b7735b-770e-4598-a7da-8b91488b4c88\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"47b7735b-770e-4598-a7da-8b91488b4c88\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DevTest Labs User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you connect, start, restart, and shutdown your virtual machines in your Azure DevTest Labs.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/availabilitySets/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\",\r\n \"Microsoft.Compute/virtualMachines/deallocate/action\",\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Compute/virtualMachines/restart/action\",\r\n \"Microsoft.Compute/virtualMachines/start/action\",\r\n \"Microsoft.DevTestLab/*/read\",\r\n \"Microsoft.DevTestLab/labs/claimAnyVm/action\",\r\n \"Microsoft.DevTestLab/labs/createEnvironment/action\",\r\n \"Microsoft.DevTestLab/labs/ensureCurrentUserProfile/action\",\r\n \"Microsoft.DevTestLab/labs/formulas/delete\",\r\n \"Microsoft.DevTestLab/labs/formulas/read\",\r\n \"Microsoft.DevTestLab/labs/formulas/write\",\r\n \"Microsoft.DevTestLab/labs/policySets/evaluatePolicies/action\",\r\n \"Microsoft.DevTestLab/labs/virtualMachines/claim/action\",\r\n \"Microsoft.DevTestLab/labs/virtualmachines/listApplicableSchedules/action\",\r\n \"Microsoft.DevTestLab/labs/virtualMachines/getRdpFileContents/action\",\r\n \"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\r\n \"Microsoft.Network/networkInterfaces/*/read\",\r\n \"Microsoft.Network/networkInterfaces/join/action\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/publicIPAddresses/*/read\",\r\n \"Microsoft.Network/publicIPAddresses/join/action\",\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/deployments/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Compute/virtualMachines/vmSizes/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-08T21:52:45.0657582Z\",\r\n \"updatedOn\": \"2019-05-08T11:27:34.8855476Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/76283e04-6283-4c54-8f91-bcf1374a3c64\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"76283e04-6283-4c54-8f91-bcf1374a3c64\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DocumentDB Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage DocumentDB accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DocumentDb/databaseAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:22.596481Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5bd9cd88-fe45-4216-938b-f97437e15450\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5bd9cd88-fe45-4216-938b-f97437e15450\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DNS Zone Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage DNS zones and record sets in Azure DNS, but does not let you control who has access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/dnsZones/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-15T23:33:25.9730842Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:40.3710365Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/befefa01-2a29-4197-83a8-272ff33ce314\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"befefa01-2a29-4197-83a8-272ff33ce314\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"EventGrid EventSubscription Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage EventGrid event subscription operations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.EventGrid/eventSubscriptions/*\",\r\n \"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-08T23:27:28.3130743Z\",\r\n \"updatedOn\": \"2019-01-08T00:06:34.3543171Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/428e0ff0-5e57-4d9c-a221-2c70d0e0a443\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"EventGrid EventSubscription Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read EventGrid event subscriptions.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.EventGrid/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-09T17:29:28.1417894Z\",\r\n \"updatedOn\": \"2019-01-08T00:05:40.2884365Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2414bbcf-6497-4faf-8c65-045460748405\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2414bbcf-6497-4faf-8c65-045460748405\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Graph Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and manage all aspects of the Enterprise Graph - Ontology, Schema mapping, Conflation and Conversational AI and Ingestions\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/conflation/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/conflation/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ontology/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ontology/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/delete\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/operations/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-23T21:07:22.5844236Z\",\r\n \"updatedOn\": \"2019-02-28T20:21:18.9318073Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b60367af-1334-4454-b71e-769d9a4f83d9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b60367af-1334-4454-b71e-769d9a4f83d9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"HDInsight Domain Services Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can Read, Create, Modify and Delete Domain Services related operations needed for HDInsight Enterprise Security Package\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.AAD/*/read\",\r\n \"Microsoft.AAD/domainServices/*/read\",\r\n \"Microsoft.AAD/domainServices/oucontainer/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-09-12T22:42:51.7451109Z\",\r\n \"updatedOn\": \"2018-09-12T23:06:45.7641599Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8d8d5a11-05d3-4bda-a417-a08778121c7c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8d8d5a11-05d3-4bda-a417-a08778121c7c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Intelligent Systems Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Intelligent Systems accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.IntelligentSystems/accounts/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:32:00.9996357Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/03a6d094-3444-4b3d-88af-7477090a9e5e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"03a6d094-3444-4b3d-88af-7477090a9e5e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Key Vault Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage key vaults, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.KeyVault/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.KeyVault/locations/deletedVaults/purge/action\",\r\n \"Microsoft.KeyVault/hsmPools/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-02-25T17:08:28.5184971Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:49.5373075Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f25e0fa2-a7c8-4377-a976-54943a77a395\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Knowledge Consumer\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Knowledge Read permission to consume Enterprise Graph Knowledge using entity search and graph query\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-23T21:23:31.4037552Z\",\r\n \"updatedOn\": \"2019-02-28T20:25:00.7369384Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ee361c5d-f7b5-4119-b4b6-892157c8f64c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Lab Creator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create, manage, delete your managed labs under your Azure Lab Accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.LabServices/labAccounts/*/read\",\r\n \"Microsoft.LabServices/labAccounts/createLab/action\",\r\n \"Microsoft.LabServices/labAccounts/sizes/getRegionalAvailability/action\",\r\n \"Microsoft.LabServices/labAccounts/getRegionalAvailability/action\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-01-18T23:38:58.1036141Z\",\r\n \"updatedOn\": \"2018-09-05T19:52:12.4859631Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Log Analytics Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Log Analytics Reader can view and search all monitoring data as well as and view monitoring settings, including viewing the configuration of Azure diagnostics on all Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.OperationalInsights/workspaces/sharedKeys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-02T00:20:28.1449012Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:26.0438523Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"73c42c96-874c-492b-b04d-ab87d138a893\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Log Analytics Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Log Analytics Contributor can read all monitoring data and edit monitoring settings. Editing monitoring settings includes adding the VM extension to VMs; reading storage account keys to be able to configure collection of logs from Azure Storage; creating and configuring Automation accounts; adding solutions; and configuring Azure diagnostics on all Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Automation/automationAccounts/*\",\r\n \"Microsoft.ClassicCompute/virtualMachines/extensions/*\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Compute/virtualMachines/extensions/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.OperationalInsights/*\",\r\n \"Microsoft.OperationsManagement/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-25T21:51:45.3174711Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:26.6376126Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Logic App Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read, enable and disable logic app.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*/read\",\r\n \"Microsoft.Insights/metricAlerts/*/read\",\r\n \"Microsoft.Insights/diagnosticSettings/*/read\",\r\n \"Microsoft.Insights/metricDefinitions/*/read\",\r\n \"Microsoft.Logic/*/read\",\r\n \"Microsoft.Logic/workflows/disable/action\",\r\n \"Microsoft.Logic/workflows/enable/action\",\r\n \"Microsoft.Logic/workflows/validate/action\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/connectionGateways/*/read\",\r\n \"Microsoft.Web/connections/*/read\",\r\n \"Microsoft.Web/customApis/*/read\",\r\n \"Microsoft.Web/serverFarms/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-04-28T21:33:30.4656007Z\",\r\n \"updatedOn\": \"2019-10-15T04:28:56.3265986Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Logic App Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage logic app, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/metricAlerts/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Insights/logdefinitions/*\",\r\n \"Microsoft.Insights/metricDefinitions/*\",\r\n \"Microsoft.Logic/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/connectionGateways/*\",\r\n \"Microsoft.Web/connections/*\",\r\n \"Microsoft.Web/customApis/*\",\r\n \"Microsoft.Web/serverFarms/join/action\",\r\n \"Microsoft.Web/serverFarms/read\",\r\n \"Microsoft.Web/sites/functions/listSecrets/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-04-28T21:33:30.4656007Z\",\r\n \"updatedOn\": \"2019-10-15T04:31:27.7685427Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/87a39d53-fc1b-424a-814c-f7e04687dc9e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"87a39d53-fc1b-424a-814c-f7e04687dc9e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Application Operator Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and perform actions on Managed Application resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Solutions/applications/read\",\r\n \"Microsoft.Solutions/*/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T00:59:33.7988813Z\",\r\n \"updatedOn\": \"2019-02-20T01:09:55.1593079Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c7393b34-138c-406f-901b-d8cf2b17e6ae\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c7393b34-138c-406f-901b-d8cf2b17e6ae\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Applications Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read resources in a managed app and request JIT access.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Solutions/jitRequests/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-09-06T00:33:58.3651522Z\",\r\n \"updatedOn\": \"2018-09-06T00:33:58.3651522Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b9331d33-8a36-4f8c-b097-4f54124fdb44\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b9331d33-8a36-4f8c-b097-4f54124fdb44\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Identity Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read and Assign User Assigned Identity\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/*/read\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-14T19:52:04.3924594Z\",\r\n \"updatedOn\": \"2017-12-14T22:16:00.1483256Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f1a07417-d97a-45cb-824c-7a7467783830\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f1a07417-d97a-45cb-824c-7a7467783830\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Identity Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create, Read, Update, and Delete User Assigned Identity\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/read\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/write\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/delete\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-14T19:53:42.8804692Z\",\r\n \"updatedOn\": \"2019-06-20T21:51:27.0850433Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Management Group Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Management Group Contributor Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Management/managementGroups/delete\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.Management/managementGroups/subscriptions/delete\",\r\n \"Microsoft.Management/managementGroups/subscriptions/write\",\r\n \"Microsoft.Management/managementGroups/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-06-22T00:28:29.0523964Z\",\r\n \"updatedOn\": \"2018-07-10T20:51:26.6132189Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Management Group Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Management Group Reader Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-06-22T00:31:03.4295347Z\",\r\n \"updatedOn\": \"2018-07-10T20:49:42.563034Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ac63b705-f282-497d-ac71-919bf39d939d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ac63b705-f282-497d-ac71-919bf39d939d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Metrics Publisher\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Enables publishing metrics against Azure resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/Register/Action\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Insights/Metrics/Write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-14T00:36:16.5610279Z\",\r\n \"updatedOn\": \"2018-08-14T00:37:18.1465065Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"3913510d-42f4-4e42-8a64-420c390055eb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read all monitoring data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-09-21T19:19:52.4939376Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:27.262625Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Network Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage networks, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2016-05-31T23:14:00.3326359Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4d97b98b-1d4f-4787-a291-c67834d212e7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read all monitoring data and update monitoring settings.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.AlertsManagement/alerts/*\",\r\n \"Microsoft.AlertsManagement/alertsSummary/*\",\r\n \"Microsoft.Insights/actiongroups/*\",\r\n \"Microsoft.Insights/activityLogAlerts/*\",\r\n \"Microsoft.Insights/AlertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.Insights/DiagnosticSettings/*\",\r\n \"Microsoft.Insights/eventtypes/*\",\r\n \"Microsoft.Insights/LogDefinitions/*\",\r\n \"Microsoft.Insights/metricalerts/*\",\r\n \"Microsoft.Insights/MetricDefinitions/*\",\r\n \"Microsoft.Insights/Metrics/*\",\r\n \"Microsoft.Insights/Register/Action\",\r\n \"Microsoft.Insights/scheduledqueryrules/*\",\r\n \"Microsoft.Insights/webtests/*\",\r\n \"Microsoft.Insights/workbooks/*\",\r\n \"Microsoft.OperationalInsights/workspaces/intelligencepacks/*\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.OperationalInsights/workspaces/sharedKeys/action\",\r\n \"Microsoft.OperationalInsights/workspaces/storageinsightconfigs/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.WorkloadMonitor/monitors/*\",\r\n \"Microsoft.WorkloadMonitor/notificationSettings/*\",\r\n \"Microsoft.AlertsManagement/smartDetectorAlertRules/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-09-21T19:21:08.4345976Z\",\r\n \"updatedOn\": \"2019-08-16T20:02:57.4597886Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"New Relic APM Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage New Relic Application Performance Management accounts and applications, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"NewRelic.APM/accounts/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:16.2033878Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d28c62d-5b37-4476-8438-e587778df237\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d28c62d-5b37-4476-8438-e587778df237\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything, including access to resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:32.2101122Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view everything, but not make any changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:35.7424745Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Redis Cache Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Redis caches, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cache/redis/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:48.2353169Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e0f68234-74aa-48ed-b826-c38b57376e17\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e0f68234-74aa-48ed-b826-c38b57376e17\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Reader and Data Access\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view everything but will not let you delete or create a storage account or contained resource. It will also allow read/write access to all data contained in a storage account via access to storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Storage/storageAccounts/ListAccountSas/action\",\r\n \"Microsoft.Storage/storageAccounts/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-27T23:20:46.1498906Z\",\r\n \"updatedOn\": \"2019-04-04T23:41:26.1056261Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c12c1c16-33a1-487b-954d-41c89c60f349\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c12c1c16-33a1-487b-954d-41c89c60f349\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Resource Policy Contributor (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"(Preview) Backfilled users from EA, with rights to create/modify resource policy, create support ticket and read resources/hierarchy.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Authorization/policyassignments/*\",\r\n \"Microsoft.Authorization/policydefinitions/*\",\r\n \"Microsoft.Authorization/policysetdefinitions/*\",\r\n \"Microsoft.PolicyInsights/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-08-25T19:08:01.3861639Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:27.8272264Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"36243c78-bf99-498c-9df9-86d9f8d28608\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Scheduler Job Collections Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Scheduler job collections, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Scheduler/jobcollections/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:24.8360756Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/188a0f2f-5c9e-469b-ae67-2aa5ce574b94\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Search Service Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Search services, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Search/searchServices/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:21.8687229Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7ca78c08-252a-4471-8644-bb5ff32d4ba0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Admin\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Security Admin Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Authorization/policyAssignments/*\",\r\n \"Microsoft.Authorization/policyDefinitions/*\",\r\n \"Microsoft.Authorization/policySetDefinitions/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.operationalInsights/workspaces/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-03T07:51:23.0917487Z\",\r\n \"updatedOn\": \"2019-03-12T21:12:48.635016Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fb1c8493-542b-48eb-b624-b4c8fea62acd\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Manager (Legacy)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"This is a legacy role. Please use Security Administrator instead\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicCompute/*/read\",\r\n \"Microsoft.ClassicCompute/virtualMachines/*/write\",\r\n \"Microsoft.ClassicNetwork/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-22T17:45:15.8986455Z\",\r\n \"updatedOn\": \"2018-03-08T18:18:48.618362Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e3d13bf0-dd5a-482e-ba6b-9b8433878d10\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Security Reader Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.operationalInsights/workspaces/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-03T07:48:49.0516559Z\",\r\n \"updatedOn\": \"2018-06-28T17:27:23.106561Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/39bc4728-0917-49c7-9d2c-d95423bc2eb4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage spatial anchors in your account, but not delete them\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:41.1420864Z\",\r\n \"updatedOn\": \"2019-02-13T06:13:39.8686435Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Site Recovery service except vault creation and role assignment\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/locations/allocateStamp/action\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/write\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/*\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:46:17.4592776Z\",\r\n \"updatedOn\": \"2017-06-29T05:31:19.7240473Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6670b86e-a3f7-4917-ac9b-5d6ab1be4567\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you failover and failback but not perform other Site Recovery management operations\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/locations/allocateStamp/action\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/checkConsistency/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/reassociateGateway/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/renewcertificate/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/applyRecoveryPoint/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/failoverCommit/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/plannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/repairReplication/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/reProtect/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/switchprotection/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailoverCleanup/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/unplannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/updateMobilityService/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/refreshProvider/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/failoverCommit/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/plannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/reProtect/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailoverCleanup/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/unplannedFailover/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:47:50.1341148Z\",\r\n \"updatedOn\": \"2019-08-28T12:00:57.4472826Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/494ae006-db33-4328-bf46-533a6560a3ca\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"494ae006-db33-4328-bf46-533a6560a3ca\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you locate and read properties of spatial anchors in your account\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:42.9271004Z\",\r\n \"updatedOn\": \"2019-02-13T06:16:15.3170663Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d51204f-eb77-4b1c-b86a-2ec626c49413\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d51204f-eb77-4b1c-b86a-2ec626c49413\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view Site Recovery status but not perform other management operations\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:35:40.0093634Z\",\r\n \"updatedOn\": \"2017-05-26T19:54:51.393325Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/dbaa88c4-0c30-4179-9fb3-46319faa6149\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"dbaa88c4-0c30-4179-9fb3-46319faa6149\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage spatial anchors in your account, including deleting them\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/delete\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:43.5489832Z\",\r\n \"updatedOn\": \"2019-02-13T06:15:31.8572222Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/70bbe301-9835-447d-afdd-19eb3167307c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"70bbe301-9835-447d-afdd-19eb3167307c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Managed Instance Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL Managed Instances and required network configuration, but can’t give access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Network/networkSecurityGroups/*\",\r\n \"Microsoft.Network/routeTables/*\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/managedInstances/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/*\",\r\n \"Microsoft.Network/virtualNetworks/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-10T22:57:14.2937983Z\",\r\n \"updatedOn\": \"2019-04-25T17:59:01.7432149Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL DB Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL databases, but not access to them. Also, you can't manage their security-related policies or their parent SQL servers.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/servers/databases/*\",\r\n \"Microsoft.Sql/servers/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-28T22:44:35.864967Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Security Manager\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage the security-related policies of SQL servers and databases, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/transparentDataEncryption/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/extendedAuditingSettings/read\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/read\",\r\n \"Microsoft.Sql/servers/databases/read\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/read\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/read\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/read\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/transparentDataEncryption/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/firewallRules/*\",\r\n \"Microsoft.Sql/servers/read\",\r\n \"Microsoft.Sql/servers/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-16T18:44:40.4607572Z\",\r\n \"updatedOn\": \"2019-08-08T22:58:22.2532171Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"yaiyun\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage storage accounts, including accessing storage account keys which provide full access to storage account data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2019-05-29T20:56:33.9582501Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"17d1049b-9a84-46fb-8f53-869881c3d3ab\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Server Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL servers and databases, but not access to them, and not their security -related policies.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/servers/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-28T22:44:36.5466043Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Account Key Operator Service Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Storage Account Key Operators are allowed to list and regenerate keys on Storage Accounts\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-13T18:26:11.577057Z\",\r\n \"updatedOn\": \"2017-04-13T20:57:14.5990198Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"81a9662b-bebf-436f-a333-f67b29880f12\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write and delete access to Azure Storage blob containers and data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-07-16T17:39:31.7303676Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Storage blob containers and data, including assigning POSIX access control.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/*\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-04T07:02:58.2775257Z\",\r\n \"updatedOn\": \"2019-07-16T21:30:33.7002563Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure Storage blob containers and data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-07-15T22:01:25.5409721Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, and delete access to Azure Storage queues and queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/delete\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-03-05T21:58:02.7367128Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Message Processor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for peek, receive, and delete access to Azure Storage queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-01-28T22:27:04.8947111Z\",\r\n \"updatedOn\": \"2019-03-05T22:05:46.1259125Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8a0f0c08-91a1-4084-bc3d-661d67233fed\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Message Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for sending of Azure Storage queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-01-28T22:28:34.7459724Z\",\r\n \"updatedOn\": \"2019-03-05T22:11:49.6383892Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure Storage queues and queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-03-05T22:17:32.1779262Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"19e7f393-937e-4f77-808e-94535e297925\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Support Request Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create and manage Support requests\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-06-22T22:25:37.8053068Z\",\r\n \"updatedOn\": \"2017-06-23T01:06:24.2399631Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Traffic Manager Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Traffic Manager profiles, but does not let you control who has access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/trafficManagerProfiles/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-15T23:33:25.9730842Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:44.1458854Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine Administrator Login\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"View Virtual Machines in the portal and login as administrator\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Compute/virtualMachines/login/action\",\r\n \"Microsoft.Compute/virtualMachines/loginAsAdmin/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-09T18:36:13.3315744Z\",\r\n \"updatedOn\": \"2018-05-09T22:17:57.0514548Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"1c0163c0-47e6-4577-8991-ea5c82e286e4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"User Access Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage user access to Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Authorization/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:12.6807454Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine User Login\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"View Virtual Machines in the portal and login as a regular user.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Compute/virtualMachines/login/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-09T18:36:13.3315744Z\",\r\n \"updatedOn\": \"2018-05-09T22:18:52.2780979Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fb879df8-f326-4884-b1cf-06f3ad86be52\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage virtual machines, but not access to them, and not the virtual network or storage account they're connected to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/locations/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Compute/virtualMachineScaleSets/*\",\r\n \"Microsoft.DevTestLab/schedules/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/applicationGateways/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\r\n \"Microsoft.Network/loadBalancers/probes/join/action\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/locations/*\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/read\",\r\n \"Microsoft.Network/publicIPAddresses/join/action\",\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.RecoveryServices/locations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/write\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/write\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.SqlVirtualMachine/*\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2018-10-16T16:16:51.7928187Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Web Plan Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage the web plans for websites, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/serverFarms/*\",\r\n \"Microsoft.Web/hostingEnvironments/Join/Action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-03-26T18:17:34.5018645Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Website Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage websites (not web plans), but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/certificates/*\",\r\n \"Microsoft.Web/listSitesAssignedToHostName/read\",\r\n \"Microsoft.Web/serverFarms/join/action\",\r\n \"Microsoft.Web/serverFarms/read\",\r\n \"Microsoft.Web/sites/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-05-12T23:10:23.6193952Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:46.9407288Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"de139f84-1756-47ae-9be6-808fbbe84772\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-16T21:33:36.7445745Z\",\r\n \"updatedOn\": \"2019-08-21T22:47:11.3982905Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"090c5cfd-751d-490a-894a-3ce6f1109419\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-16T21:34:29.8656362Z\",\r\n \"updatedOn\": \"2019-08-21T22:58:57.7584645Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f526a384-b230-433a-b45c-95f59c4a2dec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Attestation Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read write or delete the attestation provider instance\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Attestation/attestationProviders/attestation/read\",\r\n \"Microsoft.Attestation/attestationProviders/attestation/write\",\r\n \"Microsoft.Attestation/attestationProviders/attestation/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-19T00:24:09.3354177Z\",\r\n \"updatedOn\": \"2019-05-10T17:59:06.3448436Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"HDInsight Cluster Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and modify HDInsight cluster configurations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HDInsight/*/read\",\r\n \"Microsoft.HDInsight/clusters/getGatewaySettings/action\",\r\n \"Microsoft.HDInsight/clusters/updateGatewaySettings/action\",\r\n \"Microsoft.HDInsight/clusters/configurations/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-20T00:03:01.7110732Z\",\r\n \"updatedOn\": \"2019-04-28T02:34:17.4679314Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"61ed4efc-fab3-44fd-b111-e24485cc132a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cosmos DB Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.DocumentDb/databaseAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/regenerateKey/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/listKeys/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-26T17:01:17.0169383Z\",\r\n \"updatedOn\": \"2019-04-26T19:26:46.6326968Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"230815da-be43-4aae-9cb4-875f7bd000aa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Hybrid Server Resource Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read, write, delete, and re-onboard Hybrid servers to the Hybrid Resource Provider.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/*\",\r\n \"Microsoft.HybridCompute/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-29T21:39:32.3132923Z\",\r\n \"updatedOn\": \"2019-05-06T20:08:25.3180258Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Hybrid Server Onboarding\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can onboard new Hybrid servers to the Hybrid Resource Provider.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-29T22:36:28.1873756Z\",\r\n \"updatedOn\": \"2019-05-06T20:09:17.9364269Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Receiver\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows receive access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*/eventhubs/consumergroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*/receive/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:25:21.1056666Z\",\r\n \"updatedOn\": \"2019-08-21T23:00:32.6225396Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows send access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*/eventhubs/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*/send/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:26:12.4673714Z\",\r\n \"updatedOn\": \"2019-08-21T23:02:26.6155679Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2b629674-e913-4c01-ae53-ef4638d8f975\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Receiver\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for receive access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*/queues/read\",\r\n \"Microsoft.ServiceBus/*/topics/read\",\r\n \"Microsoft.ServiceBus/*/topics/subscriptions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*/receive/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:43:01.6343849Z\",\r\n \"updatedOn\": \"2019-08-21T22:55:24.3423558Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for send access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*/queues/read\",\r\n \"Microsoft.ServiceBus/*/topics/read\",\r\n \"Microsoft.ServiceBus/*/topics/subscriptions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*/send/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:43:46.7046934Z\",\r\n \"updatedOn\": \"2019-08-21T22:57:12.2555683Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure File Share over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-01T20:19:31.8620471Z\",\r\n \"updatedOn\": \"2019-08-07T01:00:41.9223409Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"aba4ae5f-2193-4029-9191-0cb91df5e314\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, and delete access in Azure Storage file shares over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-01T20:54:35.483431Z\",\r\n \"updatedOn\": \"2019-08-07T01:05:24.4309872Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Private DNS Zone Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage private DNS zone resources, but not the virtual networks they are linked to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Network/privateDnsZones/*\",\r\n \"Microsoft.Network/privateDnsOperationResults/*\",\r\n \"Microsoft.Network/privateDnsOperationStatuses/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/join/action\",\r\n \"Microsoft.Authorization/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-10T19:31:15.5645518Z\",\r\n \"updatedOn\": \"2019-07-11T21:12:01.7260648Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Delegator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for generation of a user delegation key which can be used to sign SAS tokens\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-23T00:51:16.3376761Z\",\r\n \"updatedOn\": \"2019-07-23T01:14:31.8778475Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Desktop Virtualization User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows user to use the applications in an application group.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.DesktopVirtualization/applicationGroups/useApplications/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-07T00:29:03.8727621Z\",\r\n \"updatedOn\": \"2019-08-07T00:29:03.8727621Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Elevated Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, delete and modify NTFS permission access in Azure Storage file shares over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-07T01:35:36.9935457Z\",\r\n \"updatedOn\": \"2019-08-07T01:35:36.9935457Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a7264617-510b-434b-a828-9731dc254ea7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blueprint Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage blueprint definitions, but not assign them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Blueprint/blueprints/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-14T21:55:16.9683949Z\",\r\n \"updatedOn\": \"2019-08-17T00:10:55.7494677Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"41077137-e803-4205-871c-5a86e6a753b4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blueprint Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can assign existing published blueprints, but cannot create new blueprints. NOTE: this only works if the assignment is done with a user-assigned managed identity.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Blueprint/blueprintAssignments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-14T21:56:48.7897875Z\",\r\n \"updatedOn\": \"2019-08-17T00:06:02.6509737Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"437d2ced-4a38-4302-8479-ed2bcb43d090\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Contributor\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:39:03.8725173Z\",\r\n \"updatedOn\": \"2019-09-16T10:21:42.8502958Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ab8e14d6-4a74-4a29-9ba8-549422addade\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ab8e14d6-4a74-4a29-9ba8-549422addade\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Responder\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Responder\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*/read\",\r\n \"Microsoft.SecurityInsights/cases/*\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:54:07.6467264Z\",\r\n \"updatedOn\": \"2019-09-16T07:31:20.1685284Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/3e150937-b8fe-4cfb-8069-0eaf05ecd056\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Reader\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:58:50.1132117Z\",\r\n \"updatedOn\": \"2019-09-16T07:36:26.5341326Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8d289c81-5878-46d4-8554-54e1e3d8b5cb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Workbook Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read workbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"microsoft.insights/workbooks/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T20:56:17.680814Z\",\r\n \"updatedOn\": \"2019-08-28T21:43:05.0202124Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b279062a-9be3-42a0-92ae-8b3cf002ec4d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Workbook Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can save shared workbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/workbooks/write\",\r\n \"Microsoft.Insights/workbooks/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T20:59:42.4820277Z\",\r\n \"updatedOn\": \"2019-08-28T21:43:55.5802704Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e8ddcd69-c73f-4f9f-9844-4100522f16ad\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Policy Insights Data Writer (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to resource policies and write access to resource component policy events.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/policyassignments/read\",\r\n \"Microsoft.Authorization/policydefinitions/read\",\r\n \"Microsoft.Authorization/policysetdefinitions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.PolicyInsights/checkDataPolicyCompliance/action\",\r\n \"Microsoft.PolicyInsights/policyEvents/logDataEvents/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-19T19:35:20.9504127Z\",\r\n \"updatedOn\": \"2019-09-19T19:37:02.5331596Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/66bb4e9e-b016-4a94-8249-4c0511c2be84\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"66bb4e9e-b016-4a94-8249-4c0511c2be84\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SignalR AccessKey Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read SignalR Service Access Keys\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SignalRService/*/read\",\r\n \"Microsoft.SignalRService/SignalR/listkeys/action\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-20T09:33:19.6236874Z\",\r\n \"updatedOn\": \"2019-09-20T09:33:19.6236874Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/04165923-9d83-45d5-8227-78b77b0a687e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"04165923-9d83-45d5-8227-78b77b0a687e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SignalR Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create, Read, Update, and Delete SignalR service resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SignalRService/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-20T09:58:09.0009662Z\",\r\n \"updatedOn\": \"2019-09-20T09:58:09.0009662Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Connected Machine Onboarding\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can onboard Azure Connected Machines.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T20:15:07.137287Z\",\r\n \"updatedOn\": \"2019-10-24T19:00:04.3288557Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Connected Machine Resource Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read, write, delete and re-onboard Azure Connected Machines.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\",\r\n \"Microsoft.HybridCompute/machines/delete\",\r\n \"Microsoft.HybridCompute/machines/reconnect/action\",\r\n \"Microsoft.HybridCompute/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T20:24:59.1474607Z\",\r\n \"updatedOn\": \"2019-10-24T18:57:01.0320416Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cd570a14-e51a-42ad-bac8-bafd67325302\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Services Registration assignment Delete Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Managed Services Registration Assignment Delete Role allows the managing tenant users to delete the registration assignment assigned to their tenant.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedServices/registrationAssignments/read\",\r\n \"Microsoft.ManagedServices/registrationAssignments/delete\",\r\n \"Microsoft.ManagedServices/operationStatuses/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T22:33:33.1183469Z\",\r\n \"updatedOn\": \"2019-10-24T21:49:09.3875276Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"91c1777a-f3dc-4fae-b103-61d183457e46\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"App Configuration Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows full access to App Configuration data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.AppConfiguration/configurationStores/*/read\",\r\n \"Microsoft.AppConfiguration/configurationStores/*/write\",\r\n \"Microsoft.AppConfiguration/configurationStores/*/delete\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-25T18:41:40.1185063Z\",\r\n \"updatedOn\": \"2019-10-25T18:41:40.1185063Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"App Configuration Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to App Configuration data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.AppConfiguration/configurationStores/*/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-25T18:45:33.7975332Z\",\r\n \"updatedOn\": \"2019-10-25T18:45:33.7975332Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"516239f1-63e1-4d78-a4de-a74fb236a071\"\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "//subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/providers/Microsoft.Authorization/roleAssignments/7a586c37-2cf5-4fcc-868e-c871b77246f9?api-version=2018-09-01-preview", + "EncodedRequestUri": "Ly9zdWJzY3JpcHRpb25zLzhjMzlkNzk3LWQ1NGEtNGE0MS05YWRlLTJlZWE3Yzg4ZjU0OS9yZXNvdXJjZUdyb3Vwcy9ocGMxMTAyeGE5NmE5MjAyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvaHBjMTEwMnhhOTZhOTIwMmNyZS9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZUFzc2lnbm1lbnRzLzdhNTg2YzM3LTJjZjUtNGZjYy04NjhlLWM4NzFiNzcyNDZmOT9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"roleDefinitionId\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"principalId\": \"7fa8cc7f-62da-4e68-881c-678e89799a30\",\r\n \"canDelegate\": false\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4e3d0674-1600-4574-b037-e2d3dada7c8a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Authorization.AuthorizationManagementClient/2.11.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "281" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-charge": [ + "1" + ], + "x-ms-request-id": [ + "1fc81cb9-ae0f-401a-bb6b-1b65b8936cce" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Set-Cookie": [ + "x-ms-gateway-slice=Production; path=/; secure; HttpOnly" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-correlation-request-id": [ + "34ec5da3-f034-45a0-bdac-cabf73250891" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184247Z:34ec5da3-f034-45a0-bdac-cabf73250891" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:47 GMT" + ], + "Content-Length": [ + "913" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"roleDefinitionId\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"principalId\": \"7fa8cc7f-62da-4e68-881c-678e89799a30\",\r\n \"principalType\": \"ServicePrincipal\",\r\n \"scope\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre\",\r\n \"createdOn\": \"2019-11-02T18:42:45.9866953Z\",\r\n \"updatedOn\": \"2019-11-02T18:42:45.9866953Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"20c5b867-147a-4973-b21c-bbf6e4d3da3b\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/providers/Microsoft.Authorization/roleAssignments/7a586c37-2cf5-4fcc-868e-c871b77246f9\",\r\n \"type\": \"Microsoft.Authorization/roleAssignments\",\r\n \"name\": \"7a586c37-2cf5-4fcc-868e-c871b77246f9\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAyY3JlL2Jsb2JTZXJ2aWNlcy9kZWZhdWx0L2NvbnRhaW5lcnMvaHBjMTEwMnhhOTZhOTIwMmNyZT9hcGktdmVyc2lvbj0yMDE5LTA0LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "04612466-e549-4251-aa8c-6e5ce0709ac3" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "56" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D75FC474FFC222\"" + ], + "x-ms-request-id": [ + "ad32d552-7fd7-4a65-bc23-547989745382" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "f0a24976-8215-40a3-ada9-4a7071cc9309" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184247Z:f0a24976-8215-40a3-ada9-4a7071cc9309" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:47 GMT" + ], + "Content-Length": [ + "392" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre\",\r\n \"name\": \"hpc1102xa96a9202cre\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\",\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmNyZT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctioncre\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "411" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/locations/eastus/ascOperations/09539acd-8be5-46e5-91bf-93c4914a31eb?api-version=2019-11-01" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "09539acd-8be5-46e5-91bf-93c4914a31eb" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "a20a0b9e-ac9c-455c-a0b2-05949cf9e2c7" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184248Z:a20a0b9e-ac9c-455c-a0b2-05949cf9e2c7" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:47 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctioncre\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre\",\r\n \"name\": \"hpc1102xa96a9202cre\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmNyZT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "194bf93b-1d23-4b40-944b-e1959efa1d5b" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "d9d41a8e-36cc-4c75-ab38-3a156e9bc3f2" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184248Z:d9d41a8e-36cc-4c75-ab38-3a156e9bc3f2" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:47 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctioncre\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre\",\r\n \"name\": \"hpc1102xa96a9202cre\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmNyZT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "e24fdf01-4d6a-4505-a0c3-92a2ede6710c" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-correlation-request-id": [ + "e33f6bfd-c3df-4e47-9398-0a01d1c77af4" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184348Z:e33f6bfd-c3df-4e47-9398-0a01d1c77af4" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:43:48 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctioncre\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre\",\r\n \"name\": \"hpc1102xa96a9202cre\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmNyZT9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "78c8ae81-134d-4b41-9d75-85860409865b" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-correlation-request-id": [ + "b7795677-36ae-4f23-b93b-fb0442f33d5e" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184450Z:b7795677-36ae-4f23-b93b-fb0442f33d5e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:44:49 GMT" + ], + "Content-Length": [ + "789" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctioncre\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202cre/blobServices/default/containers/hpc1102xa96a9202cre\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202cre\",\r\n \"name\": \"hpc1102xa96a9202cre\"\r\n}", + "StatusCode": 200 + } + ], + "Names": { + "AddStorageAccountAccessRules": [ + "7a586c37-2cf5-4fcc-868e-c871b77246f9" + ] + }, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestDeleteClfsStorageTarget.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestDeleteClfsStorageTarget.json new file mode 100644 index 000000000000..9e90a8edf55a --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestDeleteClfsStorageTarget.json @@ -0,0 +1,1102 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "2b68cf2b-17af-46b2-b732-ce5e3df14274" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-request-id": [ + "d94eeb7c-e7bb-45b2-9b60-d4fe55c8428f" + ], + "x-ms-correlation-request-id": [ + "d94eeb7c-e7bb-45b2-9b60-d4fe55c8428f" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183320Z:d94eeb7c-e7bb-45b2-9b60-d4fe55c8428f" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:20 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5adfde72-f9b9-43aa-8a27-ae6ab324fd06" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "d96ce1a4-8aa7-45c0-9119-e2ec4a404baf" + ], + "x-ms-correlation-request-id": [ + "d96ce1a4-8aa7-45c0-9119-e2ec4a404baf" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183321Z:d96ce1a4-8aa7-45c0-9119-e2ec4a404baf" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:20 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAyZGVsP2FwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "385d799b-a062-4f72-bac0-c83d84f38374" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "98" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/b994d188-860d-4621-8d6f-82045cc2ded8?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "b994d188-860d-4621-8d6f-82045cc2ded8" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "75fd12dd-e78c-4b1b-a764-741596b96bb9" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183322Z:75fd12dd-e78c-4b1b-a764-741596b96bb9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:21 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/b994d188-860d-4621-8d6f-82045cc2ded8?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzL2FzeW5jb3BlcmF0aW9ucy9iOTk0ZDE4OC04NjBkLTQ2MjEtOGQ2Zi04MjA0NWNjMmRlZDg/bW9uaXRvcj10cnVlJmFwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "8a6f26d9-cc58-4b24-874c-d63f08fc7cec" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11998" + ], + "x-ms-correlation-request-id": [ + "0fda17b3-1af4-467d-97f8-2f318b48c723" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183339Z:0fda17b3-1af4-467d-97f8-2f318b48c723" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:38 GMT" + ], + "Content-Length": [ + "1220" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:33:21.9148703Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:33:21.9148703Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-02T18:33:21.8523142Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://hpc1102xa96a9202del.dfs.core.windows.net/\",\r\n \"web\": \"https://hpc1102xa96a9202del.z13.web.core.windows.net/\",\r\n \"blob\": \"https://hpc1102xa96a9202del.blob.core.windows.net/\",\r\n \"queue\": \"https://hpc1102xa96a9202del.queue.core.windows.net/\",\r\n \"table\": \"https://hpc1102xa96a9202del.table.core.windows.net/\",\r\n \"file\": \"https://hpc1102xa96a9202del.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "//subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview", + "EncodedRequestUri": "Ly9zdWJzY3JpcHRpb25zLzhjMzlkNzk3LWQ1NGEtNGE0MS05YWRlLTJlZWE3Yzg4ZjU0OS9yZXNvdXJjZUdyb3Vwcy9ocGMxMTAyeGE5NmE5MjAyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvaHBjMTEwMnhhOTZhOTIwMmRlbC9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zP2FwaS12ZXJzaW9uPTIwMTgtMDEtMDEtcHJldmlldw==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7744dd0f-a273-406f-b95a-fc027da5e900" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Authorization.AuthorizationManagementClient/2.11.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-charge": [ + "1" + ], + "x-ms-request-id": [ + "8c34ec0d-d230-4f4d-8838-43d98fc64e6e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Set-Cookie": [ + "x-ms-gateway-slice=Production; path=/; SameSite=None; secure; HttpOnly" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "71d53c71-010c-40af-835e-8bcaaa28708b" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183339Z:71d53c71-010c-40af-835e-8bcaaa28708b" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:39 GMT" + ], + "Content-Length": [ + "168812" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Cluster Create\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Avere cluster create role used by the Avere controller to create a vFXT cluster.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.Authorization/roleDefinitions/*\",\r\n \"Microsoft.Compute/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Network/*/read\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\r\n \"Microsoft.Storage/*/read\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-11-29T18:46:55.0492387Z\",\r\n \"updatedOn\": \"2018-11-29T18:46:55.0492387Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Cluster Runtime Operator\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Avere cluster runtime role used by Avere clusters running in subscriptions, for the purpose of failing over IP addresses, accessing BLOB storage, etc\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Network/routeTables/read\",\r\n \"Microsoft.Network/routeTables/routes/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-26T00:41:26.2170858Z\",\r\n \"updatedOn\": \"2018-08-26T00:41:26.2170858Z\",\r\n \"createdBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\r\n \"updatedBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e078ab98-ef3a-4c9a-aba7-12f5172b45d0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Deploy Release Management Contributor\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Contributor role for services deploying through Azure Service Deploy.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Authorization/*/Delete\",\r\n \"Microsoft.Authorization/*/Write\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-02-04T02:26:31.5413362Z\",\r\n \"updatedOn\": \"2018-01-08T20:20:16.3660174Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/21d96096-b162-414a-8302-d8354f9d91b2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"21d96096-b162-414a-8302-d8354f9d91b2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CAL-Custom-Role\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Lets SAP Cloud Appliance Library application manage Network and Compute services, manage Resource Groups and Management locks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/locks/*\",\r\n \"Microsoft.Authorization/roleDefinitions/*\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.Compute/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.Resources/*\",\r\n \"Microsoft.Storage/*\",\r\n \"Microsoft.ContainerService/*\",\r\n \"Microsoft.ContainerRegistry/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-05-14T19:30:51.0664585Z\",\r\n \"updatedOn\": \"2019-02-19T19:11:57.5963229Z\",\r\n \"createdBy\": \"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7b266cd7-0bba-4ae2-8423-90ede5e1e898\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Dsms Role (deprecated)\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom role used by Dsms to perform operations. Can list and regnerate storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-17T18:02:11.1225951Z\",\r\n \"updatedOn\": \"2018-01-13T00:21:52.7211696Z\",\r\n \"createdBy\": \"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\",\r\n \"updatedBy\": \"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Dsms Role (do not use)\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom role used by Dsms to perform operations. Can list and regnerate storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-01T07:56:12.5880222Z\",\r\n \"updatedOn\": \"2018-08-09T17:53:48.5432297Z\",\r\n \"createdBy\": \"becb4b6b-fe16-413b-a5c3-90355e0b2982\",\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7aff565e-6c55-448d-83db-ccf482c6da2f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7aff565e-6c55-448d-83db-ccf482c6da2f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"ExpressRoute Administrator\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Can create, delete and manage ExpressRoutes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/locks/*\",\r\n \"Microsoft.Authorization/policyAssignments/*\",\r\n \"Microsoft.Authorization/policyDefinitions/*\",\r\n \"Microsoft.Authorization/roleAssignments/*\",\r\n \"Microsoft.ClassicNetwork/*\",\r\n \"Microsoft.EventGrid/*\",\r\n \"Microsoft.Insights/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.Resources/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-31T03:51:32.2843055Z\",\r\n \"updatedOn\": \"2019-03-20T22:55:18.8222085Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a48d7896-14b4-4889-afef-fbb65a96e5a2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a48d7896-14b4-4889-afef-fbb65a96e5a2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"GenevaWarmPathResourceContributor\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Can manage service bus and storage accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/namespaces/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/*\",\r\n \"Microsoft.ServiceBus/namespaces/*\",\r\n \"Microsoft.Storage/storageAccounts/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-03-14T22:30:10.1999436Z\",\r\n \"updatedOn\": \"2017-03-14T22:30:10.1999436Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"masterreader\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Lets you view everything, but not make any changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-11-14T23:38:05.3353858Z\",\r\n \"updatedOn\": \"2017-11-14T23:38:05.3353858Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a48d7796-14b4-4889-afef-fbb65a93e5a2\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a48d7796-14b4-4889-afef-fbb65a93e5a2\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Microsoft OneAsset Reader\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"This role is for Microsoft OneAsset team (CSEO) to track internal security compliance and resource utilization.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-27T23:51:08.6333052Z\",\r\n \"updatedOn\": \"2019-04-02T20:35:43.3396263Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fd1bb084-1503-4bd2-99c0-630220046786\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fd1bb084-1503-4bd2-99c0-630220046786\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Office DevOps\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Custom access for developers to operations but not secrets.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachineScaleSets/restart/action\",\r\n \"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/delete\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/failover/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/forceFailoverAllowDataLoss/action\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/operationResults/read\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/read\",\r\n \"Microsoft.Sql/servers/databases/replicationLinks/unlink/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-10-07T08:11:46.1639398Z\",\r\n \"updatedOn\": \"2017-03-16T18:43:08.3234306Z\",\r\n \"createdBy\": \"25aea6be-b605-4347-a92d-33e178e412ec\",\r\n \"updatedBy\": \"25aea6be-b605-4347-a92d-33e178e412ec\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7fd64851-3279-459b-b614-e2b2ba760f5b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7fd64851-3279-459b-b614-e2b2ba760f5b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AZSC 1st Party Testmirror\",\r\n \"type\": \"CustomRole\",\r\n \"description\": \"Describes first-party access for AZSC in test.\",\r\n \"assignableScopes\": [\r\n \"/subscriptions/e85a6c81-7b89-42c5-8d87-aca71e5113cc\",\r\n \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549\",\r\n \"/subscriptions/863c722a-2299-40dc-a2b0-f4717918a6f4\",\r\n \"/subscriptions/6d777ac4-9ba5-42c4-9306-d12ea818d8ff\",\r\n \"/subscriptions/46841c0e-69c8-4b17-af46-6626ecb15fc2\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/loadBalancers/write\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/loadBalancers/delete\",\r\n \"Microsoft.Network/loadbalancers/backendaddresspools/join/action\",\r\n \"Microsoft.Network/loadbalancers/backendconfigurations/*\",\r\n \"Microsoft.Network/loadbalancers/frontendconfigurations/*\",\r\n \"Microsoft.Network/loadbalancers/inboundnatpools/join/action\",\r\n \"Microsoft.Network/loadbalancers/inboundnatrules/*\",\r\n \"Microsoft.Network/loadbalancers/inboundnatrules/join/action\",\r\n \"Microsoft.Network/loadbalancers/loadbalancingrules/*\",\r\n \"Microsoft.Network/loadbalancers/probes/*\",\r\n \"Microsoft.Network/locations/operationresults/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/delete\",\r\n \"Microsoft.Network/networkInterfaces/join/action\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/checkIpAddressAvailability/read\",\r\n \"Microsoft.Network/applicationSecurityGroups/joinIpConfiguration/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-06-21T14:30:02.8871253Z\",\r\n \"updatedOn\": \"2019-06-21T15:30:15.5762832Z\",\r\n \"createdBy\": \"7dcef84f-48d0-499f-906d-fd2d4aaccc93\",\r\n \"updatedBy\": \"7dcef84f-48d0-499f-906d-fd2d4aaccc93\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cd9f9694-5029-4901-9a51-4034e7b028ad\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cd9f9694-5029-4901-9a51-4034e7b028ad\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrPush\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr push\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/pull/read\",\r\n \"Microsoft.ContainerRegistry/registries/push/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-29T17:52:32.5201177Z\",\r\n \"updatedOn\": \"2018-11-13T23:26:19.9749249Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8311e382-0749-4cb8-b61a-304f252e45ec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage service and the APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8650193Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:17.7502607Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"312a565d-c81f-4fd8-895a-4e21e48d571c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrPull\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr pull\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/pull/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-22T19:01:56.8227182Z\",\r\n \"updatedOn\": \"2018-11-13T23:22:03.2302457Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7f951dda-4ed3-4680-a7ca-43fe172d538d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrImageSigner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr image signer\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/sign/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-15T23:23:08.4038322Z\",\r\n \"updatedOn\": \"2018-10-29T19:06:24.9004422Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6cef56e8-d556-48e5-a04f-b8e64114680f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrDelete\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr delete\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/artifacts/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-11T20:19:31.6682804Z\",\r\n \"updatedOn\": \"2019-03-11T20:24:38.9845104Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrQuarantineReader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr quarantine data reader\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/quarantine/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-16T00:27:39.9596835Z\",\r\n \"updatedOn\": \"2019-10-22T00:12:39.702093Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cdda3590-29a3-44f6-95f2-9f980659eb04\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"AcrQuarantineWriter\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"acr quarantine data writer\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerRegistry/registries/quarantine/read\",\r\n \"Microsoft.ContainerRegistry/registries/quarantine/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-16T00:26:37.587182Z\",\r\n \"updatedOn\": \"2019-10-22T00:10:29.8202164Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Operator Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage service but not the APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*/read\",\r\n \"Microsoft.ApiManagement/service/backup/action\",\r\n \"Microsoft.ApiManagement/service/delete\",\r\n \"Microsoft.ApiManagement/service/managedeployments/action\",\r\n \"Microsoft.ApiManagement/service/read\",\r\n \"Microsoft.ApiManagement/service/restore/action\",\r\n \"Microsoft.ApiManagement/service/updatecertificate/action\",\r\n \"Microsoft.ApiManagement/service/updatehostname/action\",\r\n \"Microsoft.ApiManagement/service/write\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.ApiManagement/service/users/keys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-11-09T00:03:42.1194019Z\",\r\n \"updatedOn\": \"2016-11-18T23:56:25.4682649Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"API Management Service Reader Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read-only access to service and APIs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ApiManagement/service/*/read\",\r\n \"Microsoft.ApiManagement/service/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.ApiManagement/service/users/keys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-11-09T00:26:45.1540473Z\",\r\n \"updatedOn\": \"2017-01-23T23:10:34.8876776Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"71522526-b88f-4d52-b57f-d31fc3546d0d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Application Insights Component Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage Application Insights components\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.Insights/webtests/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:37.1625138Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ae349356-3a1b-4a5e-921d-050484c6347e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Application Insights Snapshot Debugger\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Gives user permission to use Application Insights Snapshot Debugger features\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T21:25:12.3728747Z\",\r\n \"updatedOn\": \"2017-04-19T23:34:59.9511581Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Attestation Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read the attestation provider properties\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Attestation/attestationProviders/attestation/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-25T19:42:59.157671Z\",\r\n \"updatedOn\": \"2019-05-10T17:52:38.9036953Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"SYSTEM\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Job Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and Manage Jobs using Automation Runbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/resume/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/stop/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/streams/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/write\",\r\n \"Microsoft.Automation/automationAccounts/jobs/output/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T20:52:41.0020018Z\",\r\n \"updatedOn\": \"2018-08-14T22:08:48.1147327Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4fe576fe-1146-4730-92eb-48519fa6bf9f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Runbook Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read Runbook properties - to be able to create Jobs of the runbook.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/runbooks/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-19T20:47:49.5640674Z\",\r\n \"updatedOn\": \"2017-04-25T01:00:45.6444999Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Automation Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Automation Operators are able to start, stop, suspend, and resume jobs\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/resume/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/stop/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/streams/read\",\r\n \"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\r\n \"Microsoft.Automation/automationAccounts/jobs/write\",\r\n \"Microsoft.Automation/automationAccounts/jobSchedules/read\",\r\n \"Microsoft.Automation/automationAccounts/jobSchedules/write\",\r\n \"Microsoft.Automation/automationAccounts/linkedWorkspace/read\",\r\n \"Microsoft.Automation/automationAccounts/read\",\r\n \"Microsoft.Automation/automationAccounts/runbooks/read\",\r\n \"Microsoft.Automation/automationAccounts/schedules/read\",\r\n \"Microsoft.Automation/automationAccounts/schedules/write\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Automation/automationAccounts/jobs/output/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-08-18T01:05:03.391613Z\",\r\n \"updatedOn\": \"2018-05-10T20:12:39.69782Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"d3881f73-407a-4167-8283-e981cbba0404\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can create and manage an Avere vFXT cluster.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Compute/disks/*\",\r\n \"Microsoft.Network/*/read\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/*/read\",\r\n \"Microsoft.Storage/storageAccounts/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-18T20:00:58.9207889Z\",\r\n \"updatedOn\": \"2019-03-29T00:35:59.8924565Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Avere Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Used by the Avere vFXT cluster to manage the cluster\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-03-18T20:02:38.3399857Z\",\r\n \"updatedOn\": \"2019-03-29T00:26:37.9205875Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Kubernetes Service Cluster Admin Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"List cluster admin credential action.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-15T21:38:18.5953853Z\",\r\n \"updatedOn\": \"2018-08-15T21:47:19.4427524Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Kubernetes Service Cluster User Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"List cluster user credential action.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-15T22:04:53.4037241Z\",\r\n \"updatedOn\": \"2018-08-15T22:06:51.5961392Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Maps Data Reader (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Grants access to read map related data from an Azure maps account.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Maps/accounts/data/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-05T19:47:03.472307Z\",\r\n \"updatedOn\": \"2018-10-05T19:48:52.8066321Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Stack Registration Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Azure Stack registrations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.AzureStack/registrations/products/*/action\",\r\n \"Microsoft.AzureStack/registrations/products/read\",\r\n \"Microsoft.AzureStack/registrations/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-11-13T23:42:06.2161827Z\",\r\n \"updatedOn\": \"2019-08-01T18:44:52.5331479Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6f12a6df-dd06-4f3e-bcb1-ce8be600526a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage backup service,but can't create vaults and give access to others\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupSecurityPIN/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/*\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\r\n \"Microsoft.RecoveryServices/Vaults/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\r\n \"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:12:15.7321344Z\",\r\n \"updatedOn\": \"2019-06-03T04:25:42.192045Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5e467623-bb1f-42f4-a55d-6e525e11384b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5e467623-bb1f-42f4-a55d-6e525e11384b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Billing Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to billing data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Billing/*/read\",\r\n \"Microsoft.Commerce/*/read\",\r\n \"Microsoft.Consumption/*/read\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.CostManagement/*/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-25T02:13:38.9054151Z\",\r\n \"updatedOn\": \"2018-09-26T17:45:09.2227236Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage backup services, except removal of backup, vault creation and giving access to others\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/backup/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/write\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/write\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/write\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/inquire/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\r\n \"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:21:11.894764Z\",\r\n \"updatedOn\": \"2019-06-03T04:26:42.4271091Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"00c29273-979b-4161-815c-10b084fb9324\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Backup Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view backup services, but can't make changes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobs/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\r\n \"Microsoft.RecoveryServices/Vaults/backupManagementMetaData/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupstorageconfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupconfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\r\n \"Microsoft.RecoveryServices/locations/backupStatus/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\r\n \"Microsoft.RecoveryServices/operations/read\",\r\n \"Microsoft.RecoveryServices/locations/operationStatus/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-01-03T13:18:41.3893065Z\",\r\n \"updatedOn\": \"2019-06-03T04:27:36.450298Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a795c7a0-d4a2-40c1-ae25-d81f01202912\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blockchain Member Node Access (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for access to Blockchain Member nodes\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Blockchain/blockchainMembers/transactionNodes/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Blockchain/blockchainMembers/transactionNodes/connect/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T10:33:01.9604839Z\",\r\n \"updatedOn\": \"2018-12-21T10:33:58.0042162Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/31a002a1-acaf-453e-8a5b-297c9ca1ea24\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"BizTalk Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage BizTalk services, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.BizTalkServices/BizTalk/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:18.897821Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5e3c6656-6cfa-4708-81fe-0de47ac73342\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Endpoint Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage CDN endpoints, but can’t grant access to other users.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/endpoints/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:52.6231539Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Endpoint Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view CDN endpoints, but can’t make changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/endpoints/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:53.1585846Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Profile Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage CDN profiles and their endpoints, but can’t grant access to other users.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:53.7051278Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ec156ff8-a8d1-4d15-830c-5b80698ca432\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ec156ff8-a8d1-4d15-830c-5b80698ca432\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CDN Profile Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view CDN profiles and their endpoints, but can’t make changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cdn/edgenodes/read\",\r\n \"Microsoft.Cdn/operationresults/*\",\r\n \"Microsoft.Cdn/profiles/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-01-23T02:48:46.4996252Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:54.2283001Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8f96442b-4075-438f-813d-ad51ab4019af\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8f96442b-4075-438f-813d-ad51ab4019af\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Network Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic networks, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicNetwork/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:39.7576926Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b34d265f-36f7-4a0d-a4d4-e158ca92e90f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Storage Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic storage accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:30.8964641Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/86e8f5dc-a6e9-4c67-9d15-de283e8eac25\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Storage Account Key Operator Service Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Classic Storage Account Key Operators are allowed to list and regenerate keys on Classic Storage Accounts\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ClassicStorage/storageAccounts/listkeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-13T18:22:52.14611Z\",\r\n \"updatedOn\": \"2017-04-13T20:54:03.0505986Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/985d6b00-f706-48f5-a6fe-d0ca12fb668d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"ClearDB MySQL DB Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage ClearDB MySQL databases, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"successbricks.cleardb/databases/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:23.2893077Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9106cda0-8a86-4e81-b686-29a22c54effe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9106cda0-8a86-4e81-b686-29a22c54effe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Classic Virtual Machine Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage classic virtual machines, but not access to them, and not the virtual network or storage account they’re connected to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicCompute/domainNames/*\",\r\n \"Microsoft.ClassicCompute/virtualMachines/*\",\r\n \"Microsoft.ClassicNetwork/networkSecurityGroups/join/action\",\r\n \"Microsoft.ClassicNetwork/reservedIps/link/action\",\r\n \"Microsoft.ClassicNetwork/reservedIps/read\",\r\n \"Microsoft.ClassicNetwork/virtualNetworks/join/action\",\r\n \"Microsoft.ClassicNetwork/virtualNetworks/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/disks/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/images/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-04-25T00:37:56.5416086Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:43.0770473Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and list keys of Cognitive Services.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.CognitiveServices/*/read\",\r\n \"Microsoft.CognitiveServices/accounts/listkeys/action\",\r\n \"Microsoft.Insights/alertRules/read\",\r\n \"Microsoft.Insights/diagnosticSettings/read\",\r\n \"Microsoft.Insights/logDefinitions/read\",\r\n \"Microsoft.Insights/metricdefinitions/read\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.CognitiveServices/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-08T23:23:43.7701274Z\",\r\n \"updatedOn\": \"2019-02-13T19:53:56.7209248Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a97b65f3-24c7-4388-baec-2e87135dc908\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services Data Reader (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read Cognitive Services data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.CognitiveServices/*/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-13T20:02:12.6849986Z\",\r\n \"updatedOn\": \"2019-02-13T22:53:55.167529Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b59867f0-fa02-499b-be73-45a86b5b3e1c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b59867f0-fa02-499b-be73-45a86b5b3e1c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cognitive Services Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create, read, update, delete and manage keys of Cognitive Services.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.CognitiveServices/*\",\r\n \"Microsoft.Features/features/read\",\r\n \"Microsoft.Features/providers/features/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Insights/logDefinitions/read\",\r\n \"Microsoft.Insights/metricdefinitions/read\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-08T23:18:39.2257848Z\",\r\n \"updatedOn\": \"2018-09-14T00:53:37.7546808Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"CosmosBackupOperator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can submit restore request for a Cosmos DB database or a container for an account\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.DocumentDB/databaseAccounts/backup/action\",\r\n \"Microsoft.DocumentDB/databaseAccounts/restore/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-07T19:47:14.965156Z\",\r\n \"updatedOn\": \"2018-12-07T19:52:21.9969834Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/db7b14f2-5adf-42da-9f96-f2ee17bab5cb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything except access to resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Authorization/*/Delete\",\r\n \"Microsoft.Authorization/*/Write\",\r\n \"Microsoft.Authorization/elevateAccess/Action\",\r\n \"Microsoft.Blueprint/blueprintAssignments/write\",\r\n \"Microsoft.Blueprint/blueprintAssignments/delete\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:38.458061Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b24988ac-6180-42a0-ab88-20f7382dd24c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cosmos DB Account Reader Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read Azure Cosmos DB Accounts data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DocumentDB/*/read\",\r\n \"Microsoft.DocumentDB/databaseAccounts/readonlykeys/action\",\r\n \"Microsoft.Insights/MetricDefinitions/read\",\r\n \"Microsoft.Insights/Metrics/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-10-30T17:53:54.6005577Z\",\r\n \"updatedOn\": \"2018-02-21T01:36:59.6186231Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cost Management Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view costs and manage cost configuration (e.g. budgets, exports)\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Consumption/*\",\r\n \"Microsoft.CostManagement/*\",\r\n \"Microsoft.Billing/billingPeriods/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Advisor/configurations/read\",\r\n \"Microsoft.Advisor/recommendations/read\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-14T16:09:22.8834827Z\",\r\n \"updatedOn\": \"2019-06-25T21:25:06.8686379Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/434105ed-43f6-45c7-a02f-909b2ba83430\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"434105ed-43f6-45c7-a02f-909b2ba83430\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cost Management Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can view cost data and configuration (e.g. budgets, exports)\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Consumption/*/read\",\r\n \"Microsoft.CostManagement/*/read\",\r\n \"Microsoft.Billing/billingPeriods/read\",\r\n \"Microsoft.Resources/subscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Advisor/configurations/read\",\r\n \"Microsoft.Advisor/recommendations/read\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-14T16:09:22.8834827Z\",\r\n \"updatedOn\": \"2019-06-25T20:59:11.5762937Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/72fafb9e-0641-4937-9268-a91bfd8191a3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"72fafb9e-0641-4937-9268-a91bfd8191a3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Box Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything under Data Box Service except giving access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Databox/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T08:28:42.714021Z\",\r\n \"updatedOn\": \"2018-07-27T08:36:56.3827309Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/add466c9-e687-43fc-8d98-dfcf8d720be5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"add466c9-e687-43fc-8d98-dfcf8d720be5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Box Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Data Box Service except creating order or editing order details and giving access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Databox/*/read\",\r\n \"Microsoft.Databox/jobs/listsecrets/action\",\r\n \"Microsoft.Databox/jobs/listcredentials/action\",\r\n \"Microsoft.Databox/locations/availableSkus/action\",\r\n \"Microsoft.Databox/locations/validateAddress/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T08:26:21.9284772Z\",\r\n \"updatedOn\": \"2019-04-29T07:30:10.4407109Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Factory Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and manage data factories, as well as child resources within them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DataFactory/dataFactories/*\",\r\n \"Microsoft.DataFactory/factories/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:24.1715226Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/673868aa-7521-48a0-acc6-0f60742d39f5\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"673868aa-7521-48a0-acc6-0f60742d39f5\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Purger\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can purge analytics data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/components/*/read\",\r\n \"Microsoft.Insights/components/purge/action\",\r\n \"Microsoft.OperationalInsights/workspaces/*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/purge/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-04-30T22:39:49.61677Z\",\r\n \"updatedOn\": \"2018-04-30T22:44:15.1171162Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/150f5e0c-0603-4f03-8c7f-cf70034c4e90\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Data Lake Analytics Developer\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you submit, monitor, and manage your own jobs but not create or delete Data Lake Analytics accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.BigAnalytics/accounts/*\",\r\n \"Microsoft.DataLakeAnalytics/accounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.BigAnalytics/accounts/Delete\",\r\n \"Microsoft.BigAnalytics/accounts/TakeOwnership/action\",\r\n \"Microsoft.BigAnalytics/accounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/TakeOwnership/action\",\r\n \"Microsoft.DataLakeAnalytics/accounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/firewallRules/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/firewallRules/Delete\",\r\n \"Microsoft.DataLakeAnalytics/accounts/computePolicies/Write\",\r\n \"Microsoft.DataLakeAnalytics/accounts/computePolicies/Delete\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-20T00:33:29.3115234Z\",\r\n \"updatedOn\": \"2017-08-18T00:00:17.0411642Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/47b7735b-770e-4598-a7da-8b91488b4c88\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"47b7735b-770e-4598-a7da-8b91488b4c88\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DevTest Labs User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you connect, start, restart, and shutdown your virtual machines in your Azure DevTest Labs.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/availabilitySets/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\",\r\n \"Microsoft.Compute/virtualMachines/deallocate/action\",\r\n \"Microsoft.Compute/virtualMachines/read\",\r\n \"Microsoft.Compute/virtualMachines/restart/action\",\r\n \"Microsoft.Compute/virtualMachines/start/action\",\r\n \"Microsoft.DevTestLab/*/read\",\r\n \"Microsoft.DevTestLab/labs/claimAnyVm/action\",\r\n \"Microsoft.DevTestLab/labs/createEnvironment/action\",\r\n \"Microsoft.DevTestLab/labs/ensureCurrentUserProfile/action\",\r\n \"Microsoft.DevTestLab/labs/formulas/delete\",\r\n \"Microsoft.DevTestLab/labs/formulas/read\",\r\n \"Microsoft.DevTestLab/labs/formulas/write\",\r\n \"Microsoft.DevTestLab/labs/policySets/evaluatePolicies/action\",\r\n \"Microsoft.DevTestLab/labs/virtualMachines/claim/action\",\r\n \"Microsoft.DevTestLab/labs/virtualmachines/listApplicableSchedules/action\",\r\n \"Microsoft.DevTestLab/labs/virtualMachines/getRdpFileContents/action\",\r\n \"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\r\n \"Microsoft.Network/networkInterfaces/*/read\",\r\n \"Microsoft.Network/networkInterfaces/join/action\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Network/networkInterfaces/write\",\r\n \"Microsoft.Network/publicIPAddresses/*/read\",\r\n \"Microsoft.Network/publicIPAddresses/join/action\",\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/deployments/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Compute/virtualMachines/vmSizes/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-08T21:52:45.0657582Z\",\r\n \"updatedOn\": \"2019-05-08T11:27:34.8855476Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/76283e04-6283-4c54-8f91-bcf1374a3c64\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"76283e04-6283-4c54-8f91-bcf1374a3c64\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DocumentDB Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage DocumentDB accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.DocumentDb/databaseAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:22.596481Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5bd9cd88-fe45-4216-938b-f97437e15450\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5bd9cd88-fe45-4216-938b-f97437e15450\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"DNS Zone Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage DNS zones and record sets in Azure DNS, but does not let you control who has access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/dnsZones/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-15T23:33:25.9730842Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:40.3710365Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/befefa01-2a29-4197-83a8-272ff33ce314\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"befefa01-2a29-4197-83a8-272ff33ce314\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"EventGrid EventSubscription Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage EventGrid event subscription operations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.EventGrid/eventSubscriptions/*\",\r\n \"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-08T23:27:28.3130743Z\",\r\n \"updatedOn\": \"2019-01-08T00:06:34.3543171Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/428e0ff0-5e57-4d9c-a221-2c70d0e0a443\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"EventGrid EventSubscription Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read EventGrid event subscriptions.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.EventGrid/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/eventSubscriptions/read\",\r\n \"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-10-09T17:29:28.1417894Z\",\r\n \"updatedOn\": \"2019-01-08T00:05:40.2884365Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2414bbcf-6497-4faf-8c65-045460748405\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2414bbcf-6497-4faf-8c65-045460748405\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Graph Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create and manage all aspects of the Enterprise Graph - Ontology, Schema mapping, Conflation and Conversational AI and Ingestions\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/conflation/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/conflation/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ontology/read\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/ontology/write\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/delete\",\r\n \"Microsoft.EnterpriseKnowledgeGraph/operations/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-23T21:07:22.5844236Z\",\r\n \"updatedOn\": \"2019-02-28T20:21:18.9318073Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b60367af-1334-4454-b71e-769d9a4f83d9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b60367af-1334-4454-b71e-769d9a4f83d9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"HDInsight Domain Services Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can Read, Create, Modify and Delete Domain Services related operations needed for HDInsight Enterprise Security Package\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.AAD/*/read\",\r\n \"Microsoft.AAD/domainServices/*/read\",\r\n \"Microsoft.AAD/domainServices/oucontainer/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-09-12T22:42:51.7451109Z\",\r\n \"updatedOn\": \"2018-09-12T23:06:45.7641599Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8d8d5a11-05d3-4bda-a417-a08778121c7c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8d8d5a11-05d3-4bda-a417-a08778121c7c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Intelligent Systems Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Intelligent Systems accounts, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.IntelligentSystems/accounts/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:32:00.9996357Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/03a6d094-3444-4b3d-88af-7477090a9e5e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"03a6d094-3444-4b3d-88af-7477090a9e5e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Key Vault Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage key vaults, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.KeyVault/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.KeyVault/locations/deletedVaults/purge/action\",\r\n \"Microsoft.KeyVault/hsmPools/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-02-25T17:08:28.5184971Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:49.5373075Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f25e0fa2-a7c8-4377-a976-54943a77a395\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Knowledge Consumer\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Knowledge Read permission to consume Enterprise Graph Knowledge using entity search and graph query\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-02-23T21:23:31.4037552Z\",\r\n \"updatedOn\": \"2019-02-28T20:25:00.7369384Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ee361c5d-f7b5-4119-b4b6-892157c8f64c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Lab Creator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create, manage, delete your managed labs under your Azure Lab Accounts.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.LabServices/labAccounts/*/read\",\r\n \"Microsoft.LabServices/labAccounts/createLab/action\",\r\n \"Microsoft.LabServices/labAccounts/sizes/getRegionalAvailability/action\",\r\n \"Microsoft.LabServices/labAccounts/getRegionalAvailability/action\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-01-18T23:38:58.1036141Z\",\r\n \"updatedOn\": \"2018-09-05T19:52:12.4859631Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Log Analytics Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Log Analytics Reader can view and search all monitoring data as well as and view monitoring settings, including viewing the configuration of Azure diagnostics on all Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.OperationalInsights/workspaces/sharedKeys/read\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-02T00:20:28.1449012Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:26.0438523Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"73c42c96-874c-492b-b04d-ab87d138a893\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Log Analytics Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Log Analytics Contributor can read all monitoring data and edit monitoring settings. Editing monitoring settings includes adding the VM extension to VMs; reading storage account keys to be able to configure collection of logs from Azure Storage; creating and configuring Automation accounts; adding solutions; and configuring Azure diagnostics on all Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Automation/automationAccounts/*\",\r\n \"Microsoft.ClassicCompute/virtualMachines/extensions/*\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Compute/virtualMachines/extensions/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.OperationalInsights/*\",\r\n \"Microsoft.OperationsManagement/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-25T21:51:45.3174711Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:26.6376126Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Logic App Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read, enable and disable logic app.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*/read\",\r\n \"Microsoft.Insights/metricAlerts/*/read\",\r\n \"Microsoft.Insights/diagnosticSettings/*/read\",\r\n \"Microsoft.Insights/metricDefinitions/*/read\",\r\n \"Microsoft.Logic/*/read\",\r\n \"Microsoft.Logic/workflows/disable/action\",\r\n \"Microsoft.Logic/workflows/enable/action\",\r\n \"Microsoft.Logic/workflows/validate/action\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/connectionGateways/*/read\",\r\n \"Microsoft.Web/connections/*/read\",\r\n \"Microsoft.Web/customApis/*/read\",\r\n \"Microsoft.Web/serverFarms/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-04-28T21:33:30.4656007Z\",\r\n \"updatedOn\": \"2019-10-15T04:28:56.3265986Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Logic App Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage logic app, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\r\n \"Microsoft.ClassicStorage/storageAccounts/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/metricAlerts/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Insights/logdefinitions/*\",\r\n \"Microsoft.Insights/metricDefinitions/*\",\r\n \"Microsoft.Logic/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/operationresults/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/connectionGateways/*\",\r\n \"Microsoft.Web/connections/*\",\r\n \"Microsoft.Web/customApis/*\",\r\n \"Microsoft.Web/serverFarms/join/action\",\r\n \"Microsoft.Web/serverFarms/read\",\r\n \"Microsoft.Web/sites/functions/listSecrets/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-04-28T21:33:30.4656007Z\",\r\n \"updatedOn\": \"2019-10-15T04:31:27.7685427Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/87a39d53-fc1b-424a-814c-f7e04687dc9e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"87a39d53-fc1b-424a-814c-f7e04687dc9e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Application Operator Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and perform actions on Managed Application resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Solutions/applications/read\",\r\n \"Microsoft.Solutions/*/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-07-27T00:59:33.7988813Z\",\r\n \"updatedOn\": \"2019-02-20T01:09:55.1593079Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c7393b34-138c-406f-901b-d8cf2b17e6ae\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c7393b34-138c-406f-901b-d8cf2b17e6ae\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Applications Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read resources in a managed app and request JIT access.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Solutions/jitRequests/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-09-06T00:33:58.3651522Z\",\r\n \"updatedOn\": \"2018-09-06T00:33:58.3651522Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b9331d33-8a36-4f8c-b097-4f54124fdb44\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b9331d33-8a36-4f8c-b097-4f54124fdb44\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Identity Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read and Assign User Assigned Identity\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/*/read\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-14T19:52:04.3924594Z\",\r\n \"updatedOn\": \"2017-12-14T22:16:00.1483256Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f1a07417-d97a-45cb-824c-7a7467783830\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f1a07417-d97a-45cb-824c-7a7467783830\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Identity Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create, Read, Update, and Delete User Assigned Identity\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/read\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/write\",\r\n \"Microsoft.ManagedIdentity/userAssignedIdentities/delete\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-14T19:53:42.8804692Z\",\r\n \"updatedOn\": \"2019-06-20T21:51:27.0850433Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Management Group Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Management Group Contributor Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Management/managementGroups/delete\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.Management/managementGroups/subscriptions/delete\",\r\n \"Microsoft.Management/managementGroups/subscriptions/write\",\r\n \"Microsoft.Management/managementGroups/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-06-22T00:28:29.0523964Z\",\r\n \"updatedOn\": \"2018-07-10T20:51:26.6132189Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Management Group Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Management Group Reader Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-06-22T00:31:03.4295347Z\",\r\n \"updatedOn\": \"2018-07-10T20:49:42.563034Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ac63b705-f282-497d-ac71-919bf39d939d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ac63b705-f282-497d-ac71-919bf39d939d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Metrics Publisher\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Enables publishing metrics against Azure resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/Register/Action\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Insights/Metrics/Write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-08-14T00:36:16.5610279Z\",\r\n \"updatedOn\": \"2018-08-14T00:37:18.1465065Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"3913510d-42f4-4e42-8a64-420c390055eb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read all monitoring data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-09-21T19:19:52.4939376Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:27.262625Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Network Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage networks, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2016-05-31T23:14:00.3326359Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4d97b98b-1d4f-4787-a291-c67834d212e7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Monitoring Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read all monitoring data and update monitoring settings.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.AlertsManagement/alerts/*\",\r\n \"Microsoft.AlertsManagement/alertsSummary/*\",\r\n \"Microsoft.Insights/actiongroups/*\",\r\n \"Microsoft.Insights/activityLogAlerts/*\",\r\n \"Microsoft.Insights/AlertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.Insights/DiagnosticSettings/*\",\r\n \"Microsoft.Insights/eventtypes/*\",\r\n \"Microsoft.Insights/LogDefinitions/*\",\r\n \"Microsoft.Insights/metricalerts/*\",\r\n \"Microsoft.Insights/MetricDefinitions/*\",\r\n \"Microsoft.Insights/Metrics/*\",\r\n \"Microsoft.Insights/Register/Action\",\r\n \"Microsoft.Insights/scheduledqueryrules/*\",\r\n \"Microsoft.Insights/webtests/*\",\r\n \"Microsoft.Insights/workbooks/*\",\r\n \"Microsoft.OperationalInsights/workspaces/intelligencepacks/*\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\r\n \"Microsoft.OperationalInsights/workspaces/search/action\",\r\n \"Microsoft.OperationalInsights/workspaces/sharedKeys/action\",\r\n \"Microsoft.OperationalInsights/workspaces/storageinsightconfigs/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.WorkloadMonitor/monitors/*\",\r\n \"Microsoft.WorkloadMonitor/notificationSettings/*\",\r\n \"Microsoft.AlertsManagement/smartDetectorAlertRules/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2016-09-21T19:21:08.4345976Z\",\r\n \"updatedOn\": \"2019-08-16T20:02:57.4597886Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"New Relic APM Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage New Relic Application Performance Management accounts and applications, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"NewRelic.APM/accounts/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:16.2033878Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d28c62d-5b37-4476-8438-e587778df237\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d28c62d-5b37-4476-8438-e587778df237\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage everything, including access to resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:32.2101122Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view everything, but not make any changes.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:35.7424745Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Redis Cache Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Redis caches, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Cache/redis/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:48.2353169Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e0f68234-74aa-48ed-b826-c38b57376e17\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e0f68234-74aa-48ed-b826-c38b57376e17\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Reader and Data Access\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view everything but will not let you delete or create a storage account or contained resource. It will also allow read/write access to all data contained in a storage account via access to storage account keys.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Storage/storageAccounts/ListAccountSas/action\",\r\n \"Microsoft.Storage/storageAccounts/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-03-27T23:20:46.1498906Z\",\r\n \"updatedOn\": \"2019-04-04T23:41:26.1056261Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c12c1c16-33a1-487b-954d-41c89c60f349\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c12c1c16-33a1-487b-954d-41c89c60f349\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Resource Policy Contributor (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"(Preview) Backfilled users from EA, with rights to create/modify resource policy, create support ticket and read resources/hierarchy.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Authorization/policyassignments/*\",\r\n \"Microsoft.Authorization/policydefinitions/*\",\r\n \"Microsoft.Authorization/policysetdefinitions/*\",\r\n \"Microsoft.PolicyInsights/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-08-25T19:08:01.3861639Z\",\r\n \"updatedOn\": \"2018-01-30T18:08:27.8272264Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"36243c78-bf99-498c-9df9-86d9f8d28608\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Scheduler Job Collections Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Scheduler job collections, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Scheduler/jobcollections/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:24.8360756Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/188a0f2f-5c9e-469b-ae67-2aa5ce574b94\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Search Service Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Search services, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Search/searchServices/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T20:42:21.8687229Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/7ca78c08-252a-4471-8644-bb5ff32d4ba0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Admin\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Security Admin Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Authorization/policyAssignments/*\",\r\n \"Microsoft.Authorization/policyDefinitions/*\",\r\n \"Microsoft.Authorization/policySetDefinitions/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Management/managementGroups/read\",\r\n \"Microsoft.operationalInsights/workspaces/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-03T07:51:23.0917487Z\",\r\n \"updatedOn\": \"2019-03-12T21:12:48.635016Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fb1c8493-542b-48eb-b624-b4c8fea62acd\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Manager (Legacy)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"This is a legacy role. Please use Security Administrator instead\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ClassicCompute/*/read\",\r\n \"Microsoft.ClassicCompute/virtualMachines/*/write\",\r\n \"Microsoft.ClassicNetwork/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-22T17:45:15.8986455Z\",\r\n \"updatedOn\": \"2018-03-08T18:18:48.618362Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e3d13bf0-dd5a-482e-ba6b-9b8433878d10\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Security Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Security Reader Role\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.operationalInsights/workspaces/*/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Security/*/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Management/managementGroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-03T07:48:49.0516559Z\",\r\n \"updatedOn\": \"2018-06-28T17:27:23.106561Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/39bc4728-0917-49c7-9d2c-d95423bc2eb4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage spatial anchors in your account, but not delete them\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:41.1420864Z\",\r\n \"updatedOn\": \"2019-02-13T06:13:39.8686435Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Site Recovery service except vault creation and role assignment\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/locations/allocateStamp/action\",\r\n \"Microsoft.RecoveryServices/Vaults/certificates/write\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/*\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/*\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:46:17.4592776Z\",\r\n \"updatedOn\": \"2017-06-29T05:31:19.7240473Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6670b86e-a3f7-4917-ac9b-5d6ab1be4567\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you failover and failback but not perform other Site Recovery management operations\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/locations/allocateStamp/action\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/checkConsistency/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/reassociateGateway/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/renewcertificate/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/applyRecoveryPoint/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/failoverCommit/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/plannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/repairReplication/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/reProtect/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/switchprotection/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailoverCleanup/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/unplannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/updateMobilityService/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/refreshProvider/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/failoverCommit/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/plannedFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/reProtect/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailover/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailoverCleanup/action\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/unplannedFailover/action\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:47:50.1341148Z\",\r\n \"updatedOn\": \"2019-08-28T12:00:57.4472826Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/494ae006-db33-4328-bf46-533a6560a3ca\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"494ae006-db33-4328-bf46-533a6560a3ca\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you locate and read properties of spatial anchors in your account\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:42.9271004Z\",\r\n \"updatedOn\": \"2019-02-13T06:16:15.3170663Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d51204f-eb77-4b1c-b86a-2ec626c49413\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d51204f-eb77-4b1c-b86a-2ec626c49413\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Site Recovery Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you view Site Recovery status but not perform other management operations\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\r\n \"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\r\n \"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationJobs/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationPolicies/read\",\r\n \"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\r\n \"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\r\n \"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-05-19T13:35:40.0093634Z\",\r\n \"updatedOn\": \"2017-05-26T19:54:51.393325Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/dbaa88c4-0c30-4179-9fb3-46319faa6149\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"dbaa88c4-0c30-4179-9fb3-46319faa6149\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Spatial Anchors Account Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage spatial anchors in your account, including deleting them\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/delete\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\r\n \"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-21T17:57:43.5489832Z\",\r\n \"updatedOn\": \"2019-02-13T06:15:31.8572222Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/70bbe301-9835-447d-afdd-19eb3167307c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"70bbe301-9835-447d-afdd-19eb3167307c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Managed Instance Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL Managed Instances and required network configuration, but can’t give access to others.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Network/networkSecurityGroups/*\",\r\n \"Microsoft.Network/routeTables/*\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/managedInstances/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/*\",\r\n \"Microsoft.Network/virtualNetworks/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-10T22:57:14.2937983Z\",\r\n \"updatedOn\": \"2019-04-25T17:59:01.7432149Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL DB Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL databases, but not access to them. Also, you can't manage their security-related policies or their parent SQL servers.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/servers/databases/*\",\r\n \"Microsoft.Sql/servers/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-28T22:44:35.864967Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Security Manager\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage the security-related policies of SQL servers and databases, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/transparentDataEncryption/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/extendedAuditingSettings/read\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/read\",\r\n \"Microsoft.Sql/servers/databases/read\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/read\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/read\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/read\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/transparentDataEncryption/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/firewallRules/*\",\r\n \"Microsoft.Sql/servers/read\",\r\n \"Microsoft.Sql/servers/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-16T18:44:40.4607572Z\",\r\n \"updatedOn\": \"2019-08-08T22:58:22.2532171Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"yaiyun\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Account Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage storage accounts, including accessing storage account keys which provide full access to storage account data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/diagnosticSettings/*\",\r\n \"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Storage/storageAccounts/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2019-05-29T20:56:33.9582501Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"17d1049b-9a84-46fb-8f53-869881c3d3ab\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SQL Server Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage SQL servers and databases, but not access to them, and not their security -related policies.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Sql/locations/*/read\",\r\n \"Microsoft.Sql/servers/*\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Insights/metrics/read\",\r\n \"Microsoft.Insights/metricDefinitions/read\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/auditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/auditRecords/read\",\r\n \"Microsoft.Sql/servers/databases/connectionPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/databases/securityMetrics/*\",\r\n \"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\r\n \"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\",\r\n \"Microsoft.Sql/servers/extendedAuditingSettings/*\",\r\n \"Microsoft.Sql/servers/securityAlertPolicies/*\",\r\n \"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-28T22:44:36.5466043Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Account Key Operator Service Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Storage Account Key Operators are allowed to list and regenerate keys on Storage Accounts\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/listkeys/action\",\r\n \"Microsoft.Storage/storageAccounts/regeneratekey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-04-13T18:26:11.577057Z\",\r\n \"updatedOn\": \"2017-04-13T20:57:14.5990198Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"81a9662b-bebf-436f-a333-f67b29880f12\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write and delete access to Azure Storage blob containers and data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/write\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-07-16T17:39:31.7303676Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Storage blob containers and data, including assigning POSIX access control.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/*\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-12-04T07:02:58.2775257Z\",\r\n \"updatedOn\": \"2019-07-16T21:30:33.7002563Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure Storage blob containers and data\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-07-15T22:01:25.5409721Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, and delete access to Azure Storage queues and queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/delete\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/write\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-03-05T21:58:02.7367128Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Message Processor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for peek, receive, and delete access to Azure Storage queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-01-28T22:27:04.8947111Z\",\r\n \"updatedOn\": \"2019-03-05T22:05:46.1259125Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8a0f0c08-91a1-4084-bc3d-661d67233fed\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Message Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for sending of Azure Storage queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-01-28T22:28:34.7459724Z\",\r\n \"updatedOn\": \"2019-03-05T22:11:49.6383892Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Queue Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure Storage queues and queue messages\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-12-21T00:01:24.7972312Z\",\r\n \"updatedOn\": \"2019-03-05T22:17:32.1779262Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"19e7f393-937e-4f77-808e-94535e297925\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Support Request Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you create and manage Support requests\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2017-06-22T22:25:37.8053068Z\",\r\n \"updatedOn\": \"2017-06-23T01:06:24.2399631Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Traffic Manager Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Traffic Manager profiles, but does not let you control who has access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/trafficManagerProfiles/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-10-15T23:33:25.9730842Z\",\r\n \"updatedOn\": \"2016-05-31T23:13:44.1458854Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine Administrator Login\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"View Virtual Machines in the portal and login as administrator\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Compute/virtualMachines/login/action\",\r\n \"Microsoft.Compute/virtualMachines/loginAsAdmin/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-09T18:36:13.3315744Z\",\r\n \"updatedOn\": \"2018-05-09T22:17:57.0514548Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"1c0163c0-47e6-4577-8991-ea5c82e286e4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"User Access Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage user access to Azure resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"*/read\",\r\n \"Microsoft.Authorization/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:12.6807454Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine User Login\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"View Virtual Machines in the portal and login as a regular user.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/networkInterfaces/read\",\r\n \"Microsoft.Compute/virtualMachines/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Compute/virtualMachines/login/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2018-02-09T18:36:13.3315744Z\",\r\n \"updatedOn\": \"2018-05-09T22:18:52.2780979Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"fb879df8-f326-4884-b1cf-06f3ad86be52\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Virtual Machine Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage virtual machines, but not access to them, and not the virtual network or storage account they're connected to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Compute/availabilitySets/*\",\r\n \"Microsoft.Compute/locations/*\",\r\n \"Microsoft.Compute/virtualMachines/*\",\r\n \"Microsoft.Compute/virtualMachineScaleSets/*\",\r\n \"Microsoft.DevTestLab/schedules/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Network/applicationGateways/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatPools/join/action\",\r\n \"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\r\n \"Microsoft.Network/loadBalancers/probes/join/action\",\r\n \"Microsoft.Network/loadBalancers/read\",\r\n \"Microsoft.Network/locations/*\",\r\n \"Microsoft.Network/networkInterfaces/*\",\r\n \"Microsoft.Network/networkSecurityGroups/join/action\",\r\n \"Microsoft.Network/networkSecurityGroups/read\",\r\n \"Microsoft.Network/publicIPAddresses/join/action\",\r\n \"Microsoft.Network/publicIPAddresses/read\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\r\n \"Microsoft.RecoveryServices/locations/*\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\r\n \"Microsoft.RecoveryServices/Vaults/backupPolicies/write\",\r\n \"Microsoft.RecoveryServices/Vaults/read\",\r\n \"Microsoft.RecoveryServices/Vaults/usages/read\",\r\n \"Microsoft.RecoveryServices/Vaults/write\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.SqlVirtualMachine/*\",\r\n \"Microsoft.Storage/storageAccounts/listKeys/action\",\r\n \"Microsoft.Storage/storageAccounts/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-06-02T00:18:27.3542698Z\",\r\n \"updatedOn\": \"2018-10-16T16:16:51.7928187Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Web Plan Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage the web plans for websites, but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/serverFarms/*\",\r\n \"Microsoft.Web/hostingEnvironments/Join/Action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-02-02T21:55:09.8806423Z\",\r\n \"updatedOn\": \"2019-03-26T18:17:34.5018645Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Website Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage websites (not web plans), but not access to them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Insights/components/*\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Web/certificates/*\",\r\n \"Microsoft.Web/listSitesAssignedToHostName/read\",\r\n \"Microsoft.Web/serverFarms/join/action\",\r\n \"Microsoft.Web/serverFarms/read\",\r\n \"Microsoft.Web/sites/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2015-05-12T23:10:23.6193952Z\",\r\n \"updatedOn\": \"2019-02-05T21:24:46.9407288Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"de139f84-1756-47ae-9be6-808fbbe84772\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-16T21:33:36.7445745Z\",\r\n \"updatedOn\": \"2019-08-21T22:47:11.3982905Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"090c5cfd-751d-490a-894a-3ce6f1109419\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for full access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-16T21:34:29.8656362Z\",\r\n \"updatedOn\": \"2019-08-21T22:58:57.7584645Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"f526a384-b230-433a-b45c-95f59c4a2dec\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Attestation Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read write or delete the attestation provider instance\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Attestation/attestationProviders/attestation/read\",\r\n \"Microsoft.Attestation/attestationProviders/attestation/write\",\r\n \"Microsoft.Attestation/attestationProviders/attestation/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-19T00:24:09.3354177Z\",\r\n \"updatedOn\": \"2019-05-10T17:59:06.3448436Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"HDInsight Cluster Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you read and modify HDInsight cluster configurations.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HDInsight/*/read\",\r\n \"Microsoft.HDInsight/clusters/getGatewaySettings/action\",\r\n \"Microsoft.HDInsight/clusters/updateGatewaySettings/action\",\r\n \"Microsoft.HDInsight/clusters/configurations/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/operations/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-20T00:03:01.7110732Z\",\r\n \"updatedOn\": \"2019-04-28T02:34:17.4679314Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"61ed4efc-fab3-44fd-b111-e24485cc132a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Cosmos DB Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.DocumentDb/databaseAccounts/*\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.ResourceHealth/availabilityStatuses/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [\r\n \"Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/regenerateKey/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/listKeys/*\",\r\n \"Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*\"\r\n ],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-26T17:01:17.0169383Z\",\r\n \"updatedOn\": \"2019-04-26T19:26:46.6326968Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"230815da-be43-4aae-9cb4-875f7bd000aa\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Hybrid Server Resource Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read, write, delete, and re-onboard Hybrid servers to the Hybrid Resource Provider.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/*\",\r\n \"Microsoft.HybridCompute/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-29T21:39:32.3132923Z\",\r\n \"updatedOn\": \"2019-05-06T20:08:25.3180258Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Hybrid Server Onboarding\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can onboard new Hybrid servers to the Hybrid Resource Provider.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-04-29T22:36:28.1873756Z\",\r\n \"updatedOn\": \"2019-05-06T20:09:17.9364269Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Receiver\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows receive access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*/eventhubs/consumergroups/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*/receive/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:25:21.1056666Z\",\r\n \"updatedOn\": \"2019-08-21T23:00:32.6225396Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Event Hubs Data Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows send access to Azure Event Hubs resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.EventHub/*/eventhubs/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.EventHub/*/send/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:26:12.4673714Z\",\r\n \"updatedOn\": \"2019-08-21T23:02:26.6155679Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"2b629674-e913-4c01-ae53-ef4638d8f975\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Receiver\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for receive access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*/queues/read\",\r\n \"Microsoft.ServiceBus/*/topics/read\",\r\n \"Microsoft.ServiceBus/*/topics/subscriptions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*/receive/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:43:01.6343849Z\",\r\n \"updatedOn\": \"2019-08-21T22:55:24.3423558Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Service Bus Data Sender\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for send access to Azure Service Bus resources.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ServiceBus/*/queues/read\",\r\n \"Microsoft.ServiceBus/*/topics/read\",\r\n \"Microsoft.ServiceBus/*/topics/subscriptions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.ServiceBus/*/send/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-05-10T06:43:46.7046934Z\",\r\n \"updatedOn\": \"2019-08-21T22:57:12.2555683Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read access to Azure File Share over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-01T20:19:31.8620471Z\",\r\n \"updatedOn\": \"2019-08-07T01:00:41.9223409Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"aba4ae5f-2193-4029-9191-0cb91df5e314\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, and delete access in Azure Storage file shares over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-01T20:54:35.483431Z\",\r\n \"updatedOn\": \"2019-08-07T01:05:24.4309872Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Private DNS Zone Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Lets you manage private DNS zone resources, but not the virtual networks they are linked to.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\",\r\n \"Microsoft.Network/privateDnsZones/*\",\r\n \"Microsoft.Network/privateDnsOperationResults/*\",\r\n \"Microsoft.Network/privateDnsOperationStatuses/*\",\r\n \"Microsoft.Network/virtualNetworks/read\",\r\n \"Microsoft.Network/virtualNetworks/join/action\",\r\n \"Microsoft.Authorization/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-10T19:31:15.5645518Z\",\r\n \"updatedOn\": \"2019-07-11T21:12:01.7260648Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage Blob Delegator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for generation of a user delegation key which can be used to sign SAS tokens\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-07-23T00:51:16.3376761Z\",\r\n \"updatedOn\": \"2019-07-23T01:14:31.8778475Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Desktop Virtualization User\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows user to use the applications in an application group.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.DesktopVirtualization/applicationGroups/useApplications/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-07T00:29:03.8727621Z\",\r\n \"updatedOn\": \"2019-08-07T00:29:03.8727621Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Storage File Data SMB Share Elevated Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows for read, write, delete and modify NTFS permission access in Azure Storage file shares over SMB\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\",\r\n \"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-07T01:35:36.9935457Z\",\r\n \"updatedOn\": \"2019-08-07T01:35:36.9935457Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"a7264617-510b-434b-a828-9731dc254ea7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blueprint Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can manage blueprint definitions, but not assign them.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Blueprint/blueprints/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-14T21:55:16.9683949Z\",\r\n \"updatedOn\": \"2019-08-17T00:10:55.7494677Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"41077137-e803-4205-871c-5a86e6a753b4\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Blueprint Operator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can assign existing published blueprints, but cannot create new blueprints. NOTE: this only works if the assignment is done with a user-assigned managed identity.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Blueprint/blueprintAssignments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-14T21:56:48.7897875Z\",\r\n \"updatedOn\": \"2019-08-17T00:06:02.6509737Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"437d2ced-4a38-4302-8479-ed2bcb43d090\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Contributor\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:39:03.8725173Z\",\r\n \"updatedOn\": \"2019-09-16T10:21:42.8502958Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/ab8e14d6-4a74-4a29-9ba8-549422addade\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"ab8e14d6-4a74-4a29-9ba8-549422addade\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Responder\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Responder\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*/read\",\r\n \"Microsoft.SecurityInsights/cases/*\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:54:07.6467264Z\",\r\n \"updatedOn\": \"2019-09-16T07:31:20.1685284Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/3e150937-b8fe-4cfb-8069-0eaf05ecd056\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Sentinel Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Azure Sentinel Reader\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SecurityInsights/*/read\",\r\n \"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\r\n \"Microsoft.OperationalInsights/workspaces/read\",\r\n \"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\r\n \"Microsoft.OperationsManagement/solutions/read\",\r\n \"Microsoft.OperationalInsights/workspaces/query/read\",\r\n \"Microsoft.OperationalInsights/workspaces/dataSources/read\",\r\n \"Microsoft.Insights/workbooks/read\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T16:58:50.1132117Z\",\r\n \"updatedOn\": \"2019-09-16T07:36:26.5341326Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8d289c81-5878-46d4-8554-54e1e3d8b5cb\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Workbook Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read workbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"microsoft.insights/workbooks/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T20:56:17.680814Z\",\r\n \"updatedOn\": \"2019-08-28T21:43:05.0202124Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b279062a-9be3-42a0-92ae-8b3cf002ec4d\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Workbook Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can save shared workbooks.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Insights/workbooks/write\",\r\n \"Microsoft.Insights/workbooks/delete\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-08-28T20:59:42.4820277Z\",\r\n \"updatedOn\": \"2019-08-28T21:43:55.5802704Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/e8ddcd69-c73f-4f9f-9844-4100522f16ad\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Policy Insights Data Writer (Preview)\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to resource policies and write access to resource component policy events.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.Authorization/policyassignments/read\",\r\n \"Microsoft.Authorization/policydefinitions/read\",\r\n \"Microsoft.Authorization/policysetdefinitions/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.PolicyInsights/checkDataPolicyCompliance/action\",\r\n \"Microsoft.PolicyInsights/policyEvents/logDataEvents/action\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-19T19:35:20.9504127Z\",\r\n \"updatedOn\": \"2019-09-19T19:37:02.5331596Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/66bb4e9e-b016-4a94-8249-4c0511c2be84\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"66bb4e9e-b016-4a94-8249-4c0511c2be84\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SignalR AccessKey Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Read SignalR Service Access Keys\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SignalRService/*/read\",\r\n \"Microsoft.SignalRService/SignalR/listkeys/action\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-20T09:33:19.6236874Z\",\r\n \"updatedOn\": \"2019-09-20T09:33:19.6236874Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/04165923-9d83-45d5-8227-78b77b0a687e\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"04165923-9d83-45d5-8227-78b77b0a687e\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"SignalR Contributor\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Create, Read, Update, and Delete SignalR service resources\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.SignalRService/*\",\r\n \"Microsoft.Authorization/*/read\",\r\n \"Microsoft.Insights/alertRules/*\",\r\n \"Microsoft.Resources/subscriptions/resourceGroups/read\",\r\n \"Microsoft.Resources/deployments/*\",\r\n \"Microsoft.Support/*\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-09-20T09:58:09.0009662Z\",\r\n \"updatedOn\": \"2019-09-20T09:58:09.0009662Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Connected Machine Onboarding\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can onboard Azure Connected Machines.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T20:15:07.137287Z\",\r\n \"updatedOn\": \"2019-10-24T19:00:04.3288557Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Azure Connected Machine Resource Administrator\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Can read, write, delete and re-onboard Azure Connected Machines.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.HybridCompute/machines/read\",\r\n \"Microsoft.HybridCompute/machines/write\",\r\n \"Microsoft.HybridCompute/machines/delete\",\r\n \"Microsoft.HybridCompute/machines/reconnect/action\",\r\n \"Microsoft.HybridCompute/*/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T20:24:59.1474607Z\",\r\n \"updatedOn\": \"2019-10-24T18:57:01.0320416Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"cd570a14-e51a-42ad-bac8-bafd67325302\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"Managed Services Registration assignment Delete Role\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Managed Services Registration Assignment Delete Role allows the managing tenant users to delete the registration assignment assigned to their tenant.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [\r\n \"Microsoft.ManagedServices/registrationAssignments/read\",\r\n \"Microsoft.ManagedServices/registrationAssignments/delete\",\r\n \"Microsoft.ManagedServices/operationStatuses/read\"\r\n ],\r\n \"notActions\": [],\r\n \"dataActions\": [],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-23T22:33:33.1183469Z\",\r\n \"updatedOn\": \"2019-10-24T21:49:09.3875276Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"91c1777a-f3dc-4fae-b103-61d183457e46\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"App Configuration Data Owner\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows full access to App Configuration data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.AppConfiguration/configurationStores/*/read\",\r\n \"Microsoft.AppConfiguration/configurationStores/*/write\",\r\n \"Microsoft.AppConfiguration/configurationStores/*/delete\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-25T18:41:40.1185063Z\",\r\n \"updatedOn\": \"2019-10-25T18:41:40.1185063Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\r\n },\r\n {\r\n \"properties\": {\r\n \"roleName\": \"App Configuration Data Reader\",\r\n \"type\": \"BuiltInRole\",\r\n \"description\": \"Allows read access to App Configuration data.\",\r\n \"assignableScopes\": [\r\n \"/\"\r\n ],\r\n \"permissions\": [\r\n {\r\n \"actions\": [],\r\n \"notActions\": [],\r\n \"dataActions\": [\r\n \"Microsoft.AppConfiguration/configurationStores/*/read\"\r\n ],\r\n \"notDataActions\": []\r\n }\r\n ],\r\n \"createdOn\": \"2019-10-25T18:45:33.7975332Z\",\r\n \"updatedOn\": \"2019-10-25T18:45:33.7975332Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": null\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071\",\r\n \"type\": \"Microsoft.Authorization/roleDefinitions\",\r\n \"name\": \"516239f1-63e1-4d78-a4de-a74fb236a071\"\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "//subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/providers/Microsoft.Authorization/roleAssignments/0f77d002-02d4-4947-9ebd-9a3d7a894b40?api-version=2018-09-01-preview", + "EncodedRequestUri": "Ly9zdWJzY3JpcHRpb25zLzhjMzlkNzk3LWQ1NGEtNGE0MS05YWRlLTJlZWE3Yzg4ZjU0OS9yZXNvdXJjZUdyb3Vwcy9ocGMxMTAyeGE5NmE5MjAyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvaHBjMTEwMnhhOTZhOTIwMmRlbC9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZUFzc2lnbm1lbnRzLzBmNzdkMDAyLTAyZDQtNDk0Ny05ZWJkLTlhM2Q3YTg5NGI0MD9hcGktdmVyc2lvbj0yMDE4LTA5LTAxLXByZXZpZXc=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"roleDefinitionId\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"principalId\": \"7fa8cc7f-62da-4e68-881c-678e89799a30\",\r\n \"canDelegate\": false\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c7ac8c24-8f29-4f9a-a310-4fc75a46a109" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Authorization.AuthorizationManagementClient/2.11.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "281" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-charge": [ + "1" + ], + "x-ms-request-id": [ + "c67106e2-7774-41d6-ada2-b65a9fc4ca8e" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Set-Cookie": [ + "x-ms-gateway-slice=Production; path=/; secure; HttpOnly" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "e4bbdf60-ece7-40ed-a8d4-921b6aa6f2f4" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183341Z:e4bbdf60-ece7-40ed-a8d4-921b6aa6f2f4" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:41 GMT" + ], + "Content-Length": [ + "913" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"roleDefinitionId\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\",\r\n \"principalId\": \"7fa8cc7f-62da-4e68-881c-678e89799a30\",\r\n \"principalType\": \"ServicePrincipal\",\r\n \"scope\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del\",\r\n \"createdOn\": \"2019-11-02T18:33:40.3043242Z\",\r\n \"updatedOn\": \"2019-11-02T18:33:40.3043242Z\",\r\n \"createdBy\": null,\r\n \"updatedBy\": \"20c5b867-147a-4973-b21c-bbf6e4d3da3b\"\r\n },\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/providers/Microsoft.Authorization/roleAssignments/0f77d002-02d4-4947-9ebd-9a3d7a894b40\",\r\n \"type\": \"Microsoft.Authorization/roleAssignments\",\r\n \"name\": \"0f77d002-02d4-4947-9ebd-9a3d7a894b40\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAyZGVsL2Jsb2JTZXJ2aWNlcy9kZWZhdWx0L2NvbnRhaW5lcnMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTA0LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "7c433358-9f10-4d6c-80cf-9b81ca3c3317" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "56" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D75FC32FDFB0A0\"" + ], + "x-ms-request-id": [ + "4ec73ab6-2707-4d90-8d36-94cb94aeddca" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "e22d1e03-690f-4e13-a34c-3270fe5d3e84" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183342Z:e22d1e03-690f-4e13-a34c-3270fe5d3e84" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:41 GMT" + ], + "Content-Length": [ + "392" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\",\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "411" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "fef72510-4e72-4dde-9b0f-18362e4cb135" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "0a2c6d0d-bd31-48a4-a877-845d83904f68" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183342Z:0a2c6d0d-bd31-48a4-a877-845d83904f68" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:33:41 GMT" + ], + "Content-Length": [ + "203" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.clfs.target\",\r\n \"message\": \"Target storage account or container does not exist or hasn't sufficient permissions.\"\r\n }\r\n}", + "StatusCode": 400 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "411" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/locations/eastus/ascOperations/4c58114c-9aa1-4ff2-83ba-e3eced6a8392?api-version=2019-11-01" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "4c58114c-9aa1-4ff2-83ba-e3eced6a8392" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "7359bd0b-b25a-42fa-8d52-9e14dcd67923" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183443Z:7359bd0b-b25a-42fa-8d52-9e14dcd67923" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:34:43 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\"\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "d6e99da2-e40e-419d-b54e-8834b7b78b48" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "822d3c2d-f01f-4a50-94a3-a2e7006f23d5" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183443Z:822d3c2d-f01f-4a50-94a3-a2e7006f23d5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:34:43 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "e7ce382a-d033-4501-b386-efe8370addf2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "d8b6ca49-88a6-4890-80fd-18421ca736b1" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183543Z:d8b6ca49-88a6-4890-80fd-18421ca736b1" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:35:43 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "4c0a1e8b-53fb-48e4-a492-bb59cc60fcb9" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11995" + ], + "x-ms-correlation-request-id": [ + "9e839730-1151-468d-9383-cdf3eb71d105" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183644Z:9e839730-1151-468d-9383-cdf3eb71d105" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:36:44 GMT" + ], + "Content-Length": [ + "789" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "c01238a4-f9aa-422b-ad97-6a196488a4dc" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "2acc2384-90f7-4494-b300-75a00e3afbf6" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183844Z:2acc2384-90f7-4494-b300-75a00e3afbf6" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:38:44 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Deleting\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "418f17ae-edd7-466e-8f33-1fd85d58983c" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-correlation-request-id": [ + "69df7197-623f-4b88-b80e-73408440e249" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183945Z:69df7197-623f-4b88-b80e-73408440e249" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:39:44 GMT" + ], + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Deleting\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctiondel\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202del/blobServices/default/containers/hpc1102xa96a9202del\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del\",\r\n \"name\": \"hpc1102xa96a9202del\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "40757889-434a-4e86-841c-82e0792d8966" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11992" + ], + "x-ms-correlation-request-id": [ + "8402fe0b-2306-4237-a21f-c57961d01330" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184045Z:8402fe0b-2306-4237-a21f-c57961d01330" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:40:45 GMT" + ], + "Content-Length": [ + "92" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"NotFound\",\r\n \"message\": \"The entity was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "1fc047ac-a333-4676-aa64-de0ebbffbdd5" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11991" + ], + "x-ms-correlation-request-id": [ + "d68faa9c-80d5-4bb8-98c1-52c6dee5f902" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184145Z:d68faa9c-80d5-4bb8-98c1-52c6dee5f902" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:45 GMT" + ], + "Content-Length": [ + "92" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"NotFound\",\r\n \"message\": \"The entity was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202del?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMmRlbD9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/locations/eastus/ascOperations/49c6f7af-0e13-4774-b1aa-80f827a83647?monitor=true&api-version=2019-11-01" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/locations/eastus/ascOperations/49c6f7af-0e13-4774-b1aa-80f827a83647?api-version=2019-11-01" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "49c6f7af-0e13-4774-b1aa-80f827a83647" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-deletes": [ + "14999" + ], + "x-ms-correlation-request-id": [ + "742abb7e-2203-4b1e-b026-b58bf0e5098d" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T183844Z:742abb7e-2203-4b1e-b026-b58bf0e5098d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:38:44 GMT" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + } + ], + "Names": { + "AddStorageAccountAccessRules": [ + "0f77d002-02d4-4947-9ebd-9a3d7a894b40" + ] + }, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestGetClfsStorageTarget.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestGetClfsStorageTarget.json new file mode 100644 index 000000000000..976d1d5d2c70 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestGetClfsStorageTarget.json @@ -0,0 +1,320 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "06ad7d96-8c5d-4aeb-85c9-710f86618c53" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" + ], + "x-ms-request-id": [ + "84aa0124-7fc9-405a-bce5-d186276b4df0" + ], + "x-ms-correlation-request-id": [ + "84aa0124-7fc9-405a-bce5-d186276b4df0" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184153Z:84aa0124-7fc9-405a-bce5-d186276b4df0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:53 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "dbecc0cf-f73e-4ae2-9cf1-37b02b286d6a" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "a269420a-52db-4bf6-aada-8babceec2fa1" + ], + "x-ms-correlation-request-id": [ + "a269420a-52db-4bf6-aada-8babceec2fa1" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184154Z:a269420a-52db-4bf6-aada-8babceec2fa1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:53 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "2a011fd1-fda7-481e-bbd1-a87a123142fb" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11990" + ], + "x-ms-correlation-request-id": [ + "38420230-0b07-41b8-8cfc-50b0a29716ea" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184154Z:38420230-0b07-41b8-8cfc-50b0a29716ea" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:53 GMT" + ], + "Content-Length": [ + "92" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"NotFound\",\r\n \"message\": \"The entity was not found.\"\r\n }\r\n}", + "StatusCode": 404 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "99493a93-07b6-4854-bce9-7afed4c8837a" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11989" + ], + "x-ms-correlation-request-id": [ + "6954ac2b-27bd-42ff-8684-bf8d9c2dda7f" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184154Z:6954ac2b-27bd-42ff-8684-bf8d9c2dda7f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:54 GMT" + ], + "Content-Length": [ + "773" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "402" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/locations/eastus/ascOperations/5a38d4f8-2765-4786-a78b-0e7c71919e2f?api-version=2019-11-01" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "5a38d4f8-2765-4786-a78b-0e7c71919e2f" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-correlation-request-id": [ + "2dd30070-32be-48d7-9cf0-5e4bfd028bad" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184154Z:2dd30070-32be-48d7-9cf0-5e4bfd028bad" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:54 GMT" + ], + "Content-Length": [ + "773" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Creating\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\"\r\n}", + "StatusCode": 201 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestListStorageTargetByCache.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestListStorageTargetByCache.json new file mode 100644 index 000000000000..940a67ce1ef3 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestListStorageTargetByCache.json @@ -0,0 +1,250 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "6a2ef09d-ef11-4eaa-91b4-beb615fadbf1" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "4bc3f854-1c69-4009-a2dc-f226d7042179" + ], + "x-ms-correlation-request-id": [ + "4bc3f854-1c69-4009-a2dc-f226d7042179" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184200Z:4bc3f854-1c69-4009-a2dc-f226d7042179" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:59 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a34de7ba-689c-4dac-99d4-e39f0307403b" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11993" + ], + "x-ms-request-id": [ + "563c1412-3de3-4a18-bc47-8606651f41be" + ], + "x-ms-correlation-request-id": [ + "563c1412-3de3-4a18-bc47-8606651f41be" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184200Z:563c1412-3de3-4a18-bc47-8606651f41be" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:41:59 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMj9hcGktdmVyc2lvbj0yMDE5LTExLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "81c67d39-3f4a-4e48-95d4-a80e4ba8698f" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-correlation-request-id": [ + "4cca38ee-9255-496f-8b50-a44631047ae5" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184200Z:4cca38ee-9255-496f-8b50-a44631047ae5" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:00 GMT" + ], + "Content-Length": [ + "773" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Deleting\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHM/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "223f6f1c-92c6-4367-b721-b3ca3f8be1f8" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "b0052c14-170e-4d02-ab13-cae9efa5c812" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184200Z:b0052c14-170e-4d02-ab13-cae9efa5c812" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:00 GMT" + ], + "Content-Length": [ + "878" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"targetType\": \"clfs\",\r\n \"provisioningState\": \"Deleting\",\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junction\",\r\n \"nfsExport\": \"/\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202/blobServices/default/containers/hpc1102xa96a9202\"\r\n }\r\n },\r\n \"type\": \"Microsoft.StorageCache/caches/storageTargets\",\r\n \"location\": \"eastus\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/HPC1102XA96A9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202\",\r\n \"name\": \"hpc1102xa96a9202\"\r\n }\r\n ]\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestStorageAccountPermission.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestStorageAccountPermission.json new file mode 100644 index 000000000000..58cf2b088049 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestStorageAccountPermission.json @@ -0,0 +1,399 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "978ce582-b058-4432-af9c-c754215bc4b8" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" + ], + "x-ms-request-id": [ + "ed548f9c-9977-4348-8f65-fbfcfb06e3dc" + ], + "x-ms-correlation-request-id": [ + "ed548f9c-9977-4348-8f65-fbfcfb06e3dc" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184204Z:ed548f9c-9977-4348-8f65-fbfcfb06e3dc" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:04 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "93c0c9db-96bc-437c-a1e2-ff51e5eb095c" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-request-id": [ + "f37ba5dc-dce1-4f3c-a0d0-0dad7a245cbd" + ], + "x-ms-correlation-request-id": [ + "f37ba5dc-dce1-4f3c-a0d0-0dad7a245cbd" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184204Z:f37ba5dc-dce1-4f3c-a0d0-0dad7a245cbd" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:04 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202perm?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAycGVybT9hcGktdmVyc2lvbj0yMDE5LTA0LTAx", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"location\": \"eastus\"\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b658ff12-f251-4025-a5ea-7b9cc3c1a9b9" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "98" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Location": [ + "https://management.azure.com/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/8744d3c2-dac6-4eb4-9363-29caa3dd74d2?monitor=true&api-version=2019-04-01" + ], + "Retry-After": [ + "17" + ], + "x-ms-request-id": [ + "8744d3c2-dac6-4eb4-9363-29caa3dd74d2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "e8b22cbf-649a-4633-b23a-8eda4b7f575b" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184206Z:e8b22cbf-649a-4633-b23a-8eda4b7f575b" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:05 GMT" + ], + "Content-Type": [ + "text/plain; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "0" + ] + }, + "ResponseBody": "", + "StatusCode": 202 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.Storage/locations/eastus/asyncoperations/8744d3c2-dac6-4eb4-9363-29caa3dd74d2?monitor=true&api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9sb2NhdGlvbnMvZWFzdHVzL2FzeW5jb3BlcmF0aW9ucy84NzQ0ZDNjMi1kYWM2LTRlYjQtOTM2My0yOWNhYTNkZDc0ZDI/bW9uaXRvcj10cnVlJmFwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "d4b68529-f266-4f74-87e2-23b52c3c3589" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11994" + ], + "x-ms-correlation-request-id": [ + "d2b6d33d-4bd6-4411-8aec-442e652c5351" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184223Z:d2b6d33d-4bd6-4411-8aec-442e652c5351" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:22 GMT" + ], + "Content-Length": [ + "1228" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"sku\": {\r\n \"name\": \"Standard_LRS\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"kind\": \"StorageV2\",\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202perm\",\r\n \"name\": \"hpc1102xa96a9202perm\",\r\n \"type\": \"Microsoft.Storage/storageAccounts\",\r\n \"location\": \"eastus\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"networkAcls\": {\r\n \"bypass\": \"AzureServices\",\r\n \"virtualNetworkRules\": [],\r\n \"ipRules\": [],\r\n \"defaultAction\": \"Allow\"\r\n },\r\n \"supportsHttpsTrafficOnly\": true,\r\n \"encryption\": {\r\n \"services\": {\r\n \"file\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:42:05.7799377Z\"\r\n },\r\n \"blob\": {\r\n \"enabled\": true,\r\n \"lastEnabledTime\": \"2019-11-02T18:42:05.7799377Z\"\r\n }\r\n },\r\n \"keySource\": \"Microsoft.Storage\"\r\n },\r\n \"accessTier\": \"Hot\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"creationTime\": \"2019-11-02T18:42:05.7018388Z\",\r\n \"primaryEndpoints\": {\r\n \"dfs\": \"https://hpc1102xa96a9202perm.dfs.core.windows.net/\",\r\n \"web\": \"https://hpc1102xa96a9202perm.z13.web.core.windows.net/\",\r\n \"blob\": \"https://hpc1102xa96a9202perm.blob.core.windows.net/\",\r\n \"queue\": \"https://hpc1102xa96a9202perm.queue.core.windows.net/\",\r\n \"table\": \"https://hpc1102xa96a9202perm.table.core.windows.net/\",\r\n \"file\": \"https://hpc1102xa96a9202perm.file.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\"\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202perm/blobServices/default/containers/hpc1102xa96a9202perm?api-version=2019-04-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlR3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ocGMxMTAyeGE5NmE5MjAycGVybS9ibG9iU2VydmljZXMvZGVmYXVsdC9jb250YWluZXJzL2hwYzExMDJ4YTk2YTkyMDJwZXJtP2FwaS12ZXJzaW9uPTIwMTktMDQtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\"\r\n }\r\n}", + "RequestHeaders": { + "x-ms-client-request-id": [ + "163b2612-15e9-43f2-9461-b3c76e847ce4" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Storage.StorageManagementClient/13.2.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "56" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D75FC466B14EB2\"" + ], + "x-ms-request-id": [ + "6cd20eae-7215-4d9e-9931-139893f6f58c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1195" + ], + "x-ms-correlation-request-id": [ + "793986bb-0b21-449a-8223-43f960bf8e29" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184223Z:793986bb-0b21-449a-8223-43f960bf8e29" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:23 GMT" + ], + "Content-Length": [ + "395" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202perm/blobServices/default/containers/hpc1102xa96a9202perm\",\r\n \"name\": \"hpc1102xa96a9202perm\",\r\n \"type\": \"Microsoft.Storage/storageAccounts/blobServices/containers\",\r\n \"properties\": {\r\n \"publicAccess\": \"Blob\",\r\n \"hasImmutabilityPolicy\": false,\r\n \"hasLegalHold\": false\r\n }\r\n}", + "StatusCode": 201 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/hpc1102xa96a9202perm?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaHBjMTEwMnhhOTZhOTIwMnBlcm0/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"/junctionperm\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"clfs\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/hpc1102xa96a9202perm/blobServices/default/containers/hpc1102xa96a9202perm\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "414" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "f9bf77f1-6d37-4971-b28e-e20c950af64d" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-correlation-request-id": [ + "c631e454-8962-42b1-aca2-60f17f45671a" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184224Z:c631e454-8962-42b1-aca2-60f17f45671a" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:42:24 GMT" + ], + "Content-Length": [ + "203" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.clfs.target\",\r\n \"message\": \"Target storage account or container does not exist or hasn't sufficient permissions.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestStorageTargetInvalidTargetType.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestStorageTargetInvalidTargetType.json new file mode 100644 index 000000000000..257cf860fc28 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/StorageTargetTests/TestStorageTargetInvalidTargetType.json @@ -0,0 +1,195 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "873195cb-0efa-4752-bc84-fb5abf9f57e8" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "743eb954-95bb-454a-af7f-9de3fc8cc6aa" + ], + "x-ms-correlation-request-id": [ + "743eb954-95bb-454a-af7f-9de3fc8cc6aa" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182246Z:743eb954-95bb-454a-af7f-9de3fc8cc6aa" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:45 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0c5d5052-d5a7-4595-8532-da643c63f315" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "b0398e51-0b27-4e5d-b7cf-827ab0d96d3c" + ], + "x-ms-correlation-request-id": [ + "b0398e51-0b27-4e5d-b7cf-827ab0d96d3c" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182246Z:b0398e51-0b27-4e5d-b7cf-827ab0d96d3c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:45 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourcegroups/hpc1102xa96a9202/providers/Microsoft.StorageCache/caches/Cache-hpc1102xa96a9202/storageTargets/invalidst?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Jlc291cmNlZ3JvdXBzL2hwYzExMDJ4YTk2YTkyMDIvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlQ2FjaGUvY2FjaGVzL0NhY2hlLWhwYzExMDJ4YTk2YTkyMDIvc3RvcmFnZVRhcmdldHMvaW52YWxpZHN0P2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"properties\": {\r\n \"junctions\": [\r\n {\r\n \"namespacePath\": \"junction\",\r\n \"targetPath\": \"/\"\r\n }\r\n ],\r\n \"targetType\": \"invalid\",\r\n \"clfs\": {\r\n \"target\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/resourceGroups/hpc1102xa96a9202/providers/Microsoft.Storage/storageAccounts/storageAccount/blobServices/default/containers/blobContainer\"\r\n }\r\n }\r\n}", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "399" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396,dd1c0d98-d162-4ad5-ae73-6f518050efe2_132162261223809396" + ], + "x-ms-request-id": [ + "ee03f951-35ee-4c63-bf55-dd7f7becc9e8" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1196" + ], + "x-ms-correlation-request-id": [ + "1ebb4032-102e-4c49-a377-21a4d83cc8b1" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T182246Z:1ebb4032-102e-4c49-a377-21a4d83cc8b1" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:22:45 GMT" + ], + "Content-Length": [ + "182" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"InvalidParameter\",\r\n \"target\": \"storageTarget.targetType\",\r\n \"message\": \"storageTarget.targetType: Invalid Storage Target type 'invalid'.\"\r\n }\r\n}", + "StatusCode": 400 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/UsageModelTests/TestGetSKUList.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/UsageModelTests/TestGetSKUList.json new file mode 100644 index 000000000000..fe0be513a037 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/UsageModelTests/TestGetSKUList.json @@ -0,0 +1,182 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "3979471a-713e-46aa-9b8f-86cbc1007187" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "ef8b29cc-34cf-488b-b9e3-4f9ec9a49764" + ], + "x-ms-correlation-request-id": [ + "ef8b29cc-34cf-488b-b9e3-4f9ec9a49764" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184556Z:ef8b29cc-34cf-488b-b9e3-4f9ec9a49764" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:45:55 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "88af4da8-dd05-4652-a2e4-fd3f79be625f" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "99d10a44-5fe0-4181-92ed-af2d0339db4c" + ], + "x-ms-correlation-request-id": [ + "99d10a44-5fe0-4181-92ed-af2d0339db4c" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184556Z:99d10a44-5fe0-4181-92ed-af2d0339db4c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:45:55 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/skus?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3NrdXM/YXBpLXZlcnNpb249MjAxOS0xMS0wMQ==", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11997" + ], + "x-ms-request-id": [ + "b5616950-258c-4325-89d6-7f71ec415de1" + ], + "x-ms-correlation-request-id": [ + "b5616950-258c-4325-89d6-7f71ec415de1" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184556Z:b5616950-258c-4325-89d6-7f71ec415de1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:45:56 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "7391" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"westeurope\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westeurope\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"westeurope\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westeurope\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"westeurope\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westeurope\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"northeurope\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"northeurope\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"northeurope\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"northeurope\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"northeurope\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"northeurope\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"EastUS2EUAP\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"EastUS2EUAP\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"EastUS2EUAP\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"EastUS2EUAP\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"EastUS2EUAP\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"EastUS2EUAP\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"eastus\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"eastus\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"eastus\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"eastus\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"eastus\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"eastus\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"westus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"westus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"westus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"westus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"westus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"westus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"westus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"eastus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"eastus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"eastus2\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"eastus2\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_2G\",\r\n \"locations\": [\r\n \"southeastasia\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"southeastasia\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"2\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"3072,6144,12288\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_4G\",\r\n \"locations\": [\r\n \"southeastasia\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"southeastasia\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"4\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"6144,12288,24576\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"name\": \"Standard_8G\",\r\n \"locations\": [\r\n \"southeastasia\"\r\n ],\r\n \"locationInfo\": [\r\n {\r\n \"location\": \"southeastasia\",\r\n \"zones\": [],\r\n \"zoneDetails\": []\r\n }\r\n ],\r\n \"capabilities\": [\r\n {\r\n \"name\": \"throughput (GB/s)\",\r\n \"value\": \"8\"\r\n },\r\n {\r\n \"name\": \"cache sizes (GB)\",\r\n \"value\": \"12288,24576,49152\"\r\n }\r\n ],\r\n \"restrictions\": []\r\n }\r\n ]\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/UsageModelTests/TestGetUsageModels.json b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/UsageModelTests/TestGetUsageModels.json new file mode 100644 index 000000000000..d6ec42d57d1f --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/SessionRecords/UsageModelTests/TestGetUsageModels.json @@ -0,0 +1,189 @@ +{ + "Entries": [ + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/register?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3JlZ2lzdGVyP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b4466f90-eabd-4d39-a9d5-5acf4bcf7f38" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "x-ms-request-id": [ + "35ca5bbc-56fe-471d-a027-649d98291b97" + ], + "x-ms-correlation-request-id": [ + "35ca5bbc-56fe-471d-a027-649d98291b97" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184553Z:35ca5bbc-56fe-471d-a027-649d98291b97" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:45:52 GMT" + ], + "Content-Length": [ + "1390" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache?api-version=2015-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlP2FwaS12ZXJzaW9uPTIwMTUtMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "d05fcd76-93fd-431d-9f65-467a131e38e0" + ], + "Accept-Language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.Resources.ResourceManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11999" + ], + "x-ms-request-id": [ + "7a71a3c6-2f53-4760-a273-23f7a6bdc414" + ], + "x-ms-correlation-request-id": [ + "7a71a3c6-2f53-4760-a273-23f7a6bdc414" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184553Z:7a71a3c6-2f53-4760-a273-23f7a6bdc414" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:45:52 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Content-Length": [ + "1390" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache\",\r\n \"namespace\": \"Microsoft.StorageCache\",\r\n \"authorizations\": [\r\n {\r\n \"applicationId\": \"4392ab71-2ce2-4b0d-8770-b352745c73f5\",\r\n \"roleDefinitionId\": \"e27430df-bd6b-4f3a-bd6d-d52ad1a7d075\"\r\n }\r\n ],\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"caches\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ],\r\n \"capabilities\": \"None\"\r\n },\r\n {\r\n \"resourceType\": \"caches/storageTargets\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"usageModels\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/ascoperations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"North Europe\",\r\n \"East US 2 EUAP\",\r\n \"East US\",\r\n \"West US 2\",\r\n \"East US 2\",\r\n \"Southeast Asia\"\r\n ],\r\n \"apiVersions\": [\r\n \"2019-11-01\",\r\n \"2019-08-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/8c39d797-d54a-4a41-9ade-2eea7c88f549/providers/Microsoft.StorageCache/usageModels?api-version=2019-11-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOGMzOWQ3OTctZDU0YS00YTQxLTlhZGUtMmVlYTdjODhmNTQ5L3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZUNhY2hlL3VzYWdlTW9kZWxzP2FwaS12ZXJzaW9uPTIwMTktMTEtMDE=", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "User-Agent": [ + "FxVersion/4.6.28008.01", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.18362.", + "Microsoft.Azure.Management.StorageCache.StorageCacheManagementClient/1.0.0.0" + ] + }, + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "x-ms-served-by": [ + "f1ea2c42-6cb8-4bca-8081-052d27d1ddad_132115757675971631,f1ea2c42-6cb8-4bca-8081-052d27d1ddad_132115757675971631" + ], + "x-ms-request-id": [ + "b5faa6ff-e085-4eda-95a2-e10dd9938b8d" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "11996" + ], + "x-ms-correlation-request-id": [ + "c6560353-b504-4bde-a932-3272884e6d81" + ], + "x-ms-routing-request-id": [ + "CANADACENTRAL:20191102T184554Z:c6560353-b504-4bde-a932-3272884e6d81" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Date": [ + "Sat, 02 Nov 2019 18:45:53 GMT" + ], + "Content-Length": [ + "540" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"display\": {\r\n \"description\": \"Read heavy, infrequent writes\"\r\n },\r\n \"modelName\": \"READ_HEAVY_INFREQ\",\r\n \"targetType\": \"Nfs\"\r\n },\r\n {\r\n \"display\": {\r\n \"description\": \"Greater than 15% writes\"\r\n },\r\n \"modelName\": \"WRITE_WORKLOAD_15\",\r\n \"targetType\": \"Nfs\"\r\n },\r\n {\r\n \"display\": {\r\n \"description\": \"Clients write to the NFS target bypassing the cache\"\r\n },\r\n \"modelName\": \"WRITE_AROUND\",\r\n \"targetType\": \"Nfs\"\r\n }\r\n ]\r\n}", + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "SubscriptionId": "8c39d797-d54a-4a41-9ade-2eea7c88f549" + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/StorageCacheTest.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/StorageCacheTest.cs new file mode 100644 index 000000000000..eeadc25fef0a --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/StorageCacheTest.cs @@ -0,0 +1,225 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests +{ + using System; + using System.Collections.Generic; + using Microsoft.Azure.Management.Storage; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Management.StorageCache.Tests.Fixtures; + using Microsoft.Azure.Management.StorageCache.Tests.Utilities; + using Microsoft.Azure.Test.HttpRecorder; + using Xunit; + using Xunit.Abstractions; + + /// + /// Defines the . + /// + [Collection("StorageCacheCollection")] + public class StorageCacheTest + { + /// + /// Defines the testOutputHelper. + /// + private readonly ITestOutputHelper testOutputHelper; + + /// + /// Defines the Fixture. + /// + private readonly StorageCacheTestFixture fixture; + + /// + /// Initializes a new instance of the class. + /// + /// The testOutputHelper. + /// The Fixture. + public StorageCacheTest(ITestOutputHelper testOutputHelper, StorageCacheTestFixture fixture) + { + this.fixture = fixture; + this.testOutputHelper = testOutputHelper; + } + + /// + /// The TestGetStorageCache. + /// + [Fact] + public void TestGetStorageCache() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + Cache response = this.fixture.CacheHelper.Get(this.fixture.Cache.Name); + Assert.Equal(this.fixture.Cache.Name, response.Name); + Assert.Equal(this.fixture.Cache.CacheSizeGB, response.CacheSizeGB); + Assert.Equal(this.fixture.Cache.Location, response.Location); + Assert.Equal(this.fixture.Cache.Subnet, response.Subnet); + Assert.Equal(this.fixture.Cache.Sku.Name, response.Sku.Name); + Assert.Equal(this.fixture.Cache.Id, response.Id); + } + } + + /// + /// List storage cache under subscription. + /// + [Fact] + public void TestListStorageCache() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + IList cacheListResponse = client.Caches.List().Value; + Assert.True(cacheListResponse.Count >= 1); + bool found = false; + foreach (Cache response in cacheListResponse) + { + if (string.Equals(response.Name, this.fixture.Cache.Name)) + { + found = true; + Assert.Equal(this.fixture.Cache.Id, response.Id, ignoreCase: true); + Assert.Equal(this.fixture.Cache.Name, response.Name); + Assert.Equal(this.fixture.Cache.CacheSizeGB, response.CacheSizeGB); + Assert.Equal(this.fixture.Cache.Location, response.Location); + Assert.Equal(this.fixture.Cache.Subnet, response.Subnet); + Assert.Equal(this.fixture.Cache.Sku.Name, response.Sku.Name); + } + } + + Assert.True(found, string.Format("Cache {0} not found in the list response.", this.fixture.Cache.Name)); + } + } + + /// + /// List storage cache under resource group. + /// + [Fact] + public void TestListStorageCacheByResourceGroup() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.testOutputHelper.WriteLine("Looking for cache in resource group {0}.", this.fixture.ResourceGroup.Name); + IList cacheListResponse = client.Caches.ListByResourceGroup(this.fixture.ResourceGroup.Name).Value; + Assert.True(cacheListResponse.Count >= 1); + bool found = false; + foreach (Cache response in cacheListResponse) + { + if (string.Equals(response.Name, this.fixture.Cache.Name)) + { + found = true; + Assert.Equal(this.fixture.Cache.Id, response.Id, ignoreCase: true); + Assert.Equal(this.fixture.Cache.Name, response.Name); + Assert.Equal(this.fixture.Cache.CacheSizeGB, response.CacheSizeGB); + Assert.Equal(this.fixture.Cache.Location, response.Location); + Assert.Equal(this.fixture.Cache.Subnet, response.Subnet); + Assert.Equal(this.fixture.Cache.Sku.Name, response.Sku.Name); + } + } + + Assert.True(found, "Cache {this.fixture.Cache.Name} not found in the list response."); + } + } + + /// + /// Verify flush cache with no storage target attached. + /// + [Fact] + public void TestFlushCacheWithoutStorageTarget() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + client.Caches.Flush(this.fixture.ResourceGroup.Name, this.fixture.Cache.Name); + this.fixture.CacheHelper.StoragecacheManagementClient = client; + if (HttpMockServer.Mode == HttpRecorderMode.Record) + { + this.fixture.CacheHelper.WaitForCacheState( + this.fixture.CacheHelper.GetCacheHealthState, + this.fixture.Cache.Name, + "Flushing", + timeout: 120, polling_delay: 5).GetAwaiter().GetResult(); + this.fixture.CacheHelper.WaitForCacheState( + this.fixture.CacheHelper.GetCacheHealthState, + this.fixture.Cache.Name, + "Healthy", + polling_delay: 5).GetAwaiter().GetResult(); + } + } + } + + /// + /// The test invalid cache size. + /// + [Fact] + public void TestInvalidCacheSize() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.Create("InvalidCache", this.fixture.Cache.Sku.Name, 10)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + Assert.Equal("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("cacheSizeGB", ex.Body.Error.Target); + } + } + + /// + /// The test invalid sku. + /// + [Fact] + public void TestInvalidSku() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.Create("InvalidCacheSku", "InvalidSku", 3072)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + Assert.Equal("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("sku", ex.Body.Error.Target); + } + } + + /// + /// The test invalid subscription. + /// + [Fact] + public void TestInvalidSubscription() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + client.SubscriptionId = "4525f627-2e14-411c-96b9-7df2be6eeb93"; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.Create("InvalidSubscriptionId", this.fixture.Cache.Sku.Name, 3072, true)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + Assert.Equal("SubscriptionNotFound", ex.Body.Error.Code); + client.SubscriptionId = this.fixture.SubscriptionID; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + } + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/StorageTargetTests.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/StorageTargetTests.cs new file mode 100644 index 000000000000..f1670bdf4c7a --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/StorageTargetTests.cs @@ -0,0 +1,474 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests +{ + using System; + using System.Collections.Generic; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Management.StorageCache.Tests.Fixtures; + using Microsoft.Azure.Management.StorageCache.Tests.Utilities; + using Microsoft.Azure.Test.HttpRecorder; + using Microsoft.Rest.ClientRuntime.Azure.TestFramework; + using Xunit; + using Xunit.Abstractions; + + /// + /// Defines the . + /// + [Collection("StorageCacheCollection")] + public class StorageTargetTests : IClassFixture + { + /// + /// Defines the testOutputHelper. + /// + private readonly ITestOutputHelper testOutputHelper; + + /// + /// Defines the Fixture. + /// + private readonly StorageCacheTestFixture fixture; + + private readonly StorageAccountsFixture storageAccountsFixture; + + /// + /// Initializes a new instance of the class. + /// + /// The testOutputHelper. + /// The Fixture. + /// Storage account fixture. + public StorageTargetTests(ITestOutputHelper testOutputHelper, StorageCacheTestFixture fixture, StorageAccountsFixture storageAccountsFixture) + { + this.fixture = fixture; + this.testOutputHelper = testOutputHelper; + this.storageAccountsFixture = storageAccountsFixture; + } + + /// + /// The TestCreateClfsStorageTarget. + /// + [Fact] + public void TestCreateClfsStorageTarget() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + StorageTarget storageTarget; + var suffix = "cre"; + storageTarget = this.storageAccountsFixture.AddClfsStorageAccount(context, suffix: suffix, waitForPermissions: false, testOutputHelper: this.testOutputHelper); + string id = + $"/subscriptions/{this.fixture.SubscriptionID}" + + $"/resourceGroups/{this.fixture.ResourceGroup.Name}" + + $"/providers/Microsoft.StorageCache/caches/{this.fixture.Cache.Name}" + + $"/storageTargets/{this.fixture.ResourceGroup.Name + suffix}"; + + string clfsTarget = + $"/subscriptions/{this.fixture.SubscriptionID}" + + $"/resourceGroups/{this.fixture.ResourceGroup.Name}" + + $"/providers/Microsoft.Storage/storageAccounts/{this.fixture.ResourceGroup.Name + suffix}" + + $"/blobServices/default/containers/{this.fixture.ResourceGroup.Name + suffix}"; + Assert.Equal(this.fixture.ResourceGroup.Name + suffix, storageTarget.Name); + Assert.Equal(id, storageTarget.Id, ignoreCase: true); + Assert.Equal("clfs", storageTarget.TargetType); + Assert.Equal(clfsTarget, storageTarget.Clfs.Target); + Assert.Equal("/junction" + suffix, storageTarget.Junctions[0].NamespacePath); + Assert.Equal("/", storageTarget.Junctions[0].TargetPath); + } + } + + /// + /// The list storage target by cache. + /// + [Fact] + public void TestListStorageTargetByCache() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + StorageTarget storageTarget; + try + { + storageTarget = this.fixture.CacheHelper.GetStorageTarget(this.fixture.Cache.Name, this.fixture.ResourceGroup.Name); + } + catch (CloudErrorException) + { + storageTarget = this.storageAccountsFixture.AddClfsStorageAccount(context, waitForStorageTarget: false, waitForPermissions: false); + } + + IList storageTargetListResponse = this.fixture.CacheHelper.StoragecacheManagementClient.StorageTargets.ListByCache(this.fixture.ResourceGroup.Name, this.fixture.Cache.Name).Value; + Assert.True(storageTargetListResponse.Count >= 1); + bool found = false; + foreach (StorageTarget response in storageTargetListResponse) + { + if (string.Equals(response.Name, storageTarget.Name)) + { + found = true; + Assert.Equal(storageTarget.Id, response.Id, ignoreCase: true); + Assert.Equal(storageTarget.Clfs.Target, response.Clfs.Target); + Assert.Equal(storageTarget.Type, response.Type); + Assert.Equal(storageTarget.Junctions[0].NamespacePath, response.Junctions[0].NamespacePath); + Assert.Equal(storageTarget.Junctions[0].TargetPath, response.Junctions[0].TargetPath); + } + } + + Assert.True(found, string.Format("Storage target {0} not found in the list response.", storageTarget.Name)); + } + } + + /// + /// The TestGetClfsStorageTarget. + /// + [Fact] + public void TestGetClfsStorageTarget() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + StorageTarget storageTarget; + try + { + storageTarget = this.fixture.CacheHelper.GetStorageTarget(this.fixture.Cache.Name, this.fixture.ResourceGroup.Name); + } + catch (CloudErrorException) + { + storageTarget = this.storageAccountsFixture.AddClfsStorageAccount(context, waitForStorageTarget: false, waitForPermissions: false, testOutputHelper: this.testOutputHelper); + } + + var response = this.fixture.CacheHelper.GetStorageTarget(this.fixture.Cache.Name, storageTarget.Name); + Assert.Equal(storageTarget.Name, response.Name); + Assert.Equal(storageTarget.Id, response.Id, ignoreCase: true); + Assert.Equal(storageTarget.TargetType, response.TargetType); + Assert.Equal(storageTarget.Clfs.Target, response.Clfs.Target); + Assert.Equal(storageTarget.Name, response.Name); + } + } + + /// + /// The TestDeleteClfsStorageTarget. + /// + [Fact] + public void TestDeleteClfsStorageTarget() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + var storageTarget = this.storageAccountsFixture.AddClfsStorageAccount(context, suffix: "del", waitForPermissions: false, testOutputHelper: this.testOutputHelper); + TestUtilities.Wait(new TimeSpan(0, 0, 60)); + this.fixture.CacheHelper.DeleteStorageTarget(this.fixture.Cache.Name, storageTarget.Name, this.testOutputHelper); + TestUtilities.Wait(new TimeSpan(0, 0, 60)); + CloudErrorException ex = Assert.Throws(() => this.fixture.CacheHelper.GetStorageTarget(this.fixture.Cache.Name, storageTarget.Name, true)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + Assert.Contains("NotFound", ex.Body.Error.Code); + } + } + + /// + /// Test clfs target with invalid subscription. + /// + [Fact] + public void TestClfsTargetInvalidSubscription() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + var storageAccount = this.storageAccountsFixture.AddStorageAccount(context, this.fixture.ResourceGroup, testOutputHelper: this.testOutputHelper); + var blobContainer = this.storageAccountsFixture.AddBlobContainer(context, this.fixture.ResourceGroup, storageAccount); + + string invalidSubscription = Guid.NewGuid().ToString(); + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + storageAccount.Name, + blobContainer.Name, + "/junction", + invalidSubscription); + + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.clfs.target", ex.Body.Error.Target); + } + } + + /// + /// Test clfs target with invalid storage account. + /// + [Fact] + public void TestClfsTargetInvalidStorageAccount() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + "invalidsa", + "invalidsc", + "/junction"); + + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.clfs.target", ex.Body.Error.Target); + } + } + + /// + /// Test clfs target with invalid storage container. + /// + [Fact] + public void TestClfsTargetInvalidStorageContainer() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + var storageAccount = this.storageAccountsFixture.AddStorageAccount(context, this.fixture.ResourceGroup, testOutputHelper: this.testOutputHelper); + + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + storageAccount.Name, + "invalidsc", + "/junction"); + + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.clfs.target", ex.Body.Error.Target); + } + } + + /// + /// Test clfs target with invalid resourcegroup. + /// + [Fact] + public void TestClfsTargetInvalidResourceGroup() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + var storageAccount = this.storageAccountsFixture.AddStorageAccount(context, this.fixture.ResourceGroup, testOutputHelper: this.testOutputHelper); + var blobContainer = this.storageAccountsFixture.AddBlobContainer(context, this.fixture.ResourceGroup, storageAccount); + + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + storageAccount.Name, + blobContainer.Name, + "/junction", + resourceGroupName: "invalidrs"); + + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.clfs.target", ex.Body.Error.Target); + } + } + + /// + /// Test clfs target with empty namespace. + /// + [Fact] + public void TestClfsTargetEmptyNameSpace() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + var storageAccount = this.storageAccountsFixture.AddStorageAccount(context, this.fixture.ResourceGroup, testOutputHelper: this.testOutputHelper); + var blobContainer = this.storageAccountsFixture.AddBlobContainer(context, this.fixture.ResourceGroup, storageAccount, testOutputHelper: this.testOutputHelper); + + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + storageAccount.Name, + blobContainer.Name, + string.Empty); + storageTargetParameters.Junctions = new List() { }; + var exceptionTarget = ""; + CloudErrorException ex; + DateTimeOffset startTime = DateTimeOffset.Now; + do + { + ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + exceptionTarget = ex.Body.Error.Target; + if (DateTimeOffset.Now.Subtract(startTime).TotalSeconds > 600) + throw new TimeoutException(); + } while (exceptionTarget != "storageTarget.junctions"); + + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.junctions", ex.Body.Error.Target); + } + } + + /// + /// Test storage target with invalid target type. + /// + [Fact] + public void TestStorageTargetInvalidTargetType() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + "storageAccount", + "blobContainer", + "junction"); + storageTargetParameters.TargetType = "invalid"; + CloudErrorException ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.targetType", ex.Body.Error.Target); + } + } + + /// + /// Test clfs target with invalid namespace. + /// + [Fact] + public void TestClfsTargetInvalidNameSpace() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + var storageAccount = this.storageAccountsFixture.AddStorageAccount(context, this.fixture.ResourceGroup, testOutputHelper: this.testOutputHelper); + var blobContainer = this.storageAccountsFixture.AddBlobContainer(context, this.fixture.ResourceGroup, storageAccount, testOutputHelper: this.testOutputHelper); + + StorageTarget storageTargetParameters = this.fixture.CacheHelper.CreateClfsStorageTargetParameters( + storageAccount.Name, + blobContainer.Name, + "Invalid#$%1"); + var exceptionTarget = string.Empty; + CloudErrorException ex; + DateTimeOffset startTime = DateTimeOffset.Now; + do + { + ex = Assert.Throws( + () => + this.fixture.CacheHelper.CreateStorageTarget( + this.fixture.Cache.Name, + "invalidst", + storageTargetParameters, + this.testOutputHelper, + maxRequestTries: 0)); + exceptionTarget = ex.Body.Error.Target; + if (DateTimeOffset.Now.Subtract(startTime).TotalSeconds > 600) + throw new TimeoutException(); + } while (exceptionTarget != "storageTarget.junctions.namespacePath"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.junctions.namespacePath", ex.Body.Error.Target); + } + } + + /// + /// Test storage account permission. + /// + [Fact] + public void TestStorageAccountPermission() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + this.fixture.CacheHelper.StoragecacheManagementClient = client; + CloudErrorException ex = Assert.Throws( + () => + this.storageAccountsFixture.AddClfsStorageAccount( + context, + "perm", + waitForStorageTarget: false, + addPermissions: false, + testOutputHelper: this.testOutputHelper, + waitForPermissions: false, + maxRequestTries: 0)); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Message}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Code}"); + this.testOutputHelper.WriteLine($"{ex.Body.Error.Target}"); + Assert.Contains("InvalidParameter", ex.Body.Error.Code); + Assert.Equal("storageTarget.clfs.target", ex.Body.Error.Target); + Assert.Contains("hasn't sufficient permissions", ex.Body.Error.Message); + } + } + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/UsageModelTests.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/UsageModelTests.cs new file mode 100644 index 000000000000..e479d756eeff --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/UsageModelTests.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests +{ + using System.Collections.Generic; + using Microsoft.Azure.Management.StorageCache.Models; + using Microsoft.Azure.Management.StorageCache.Tests.Fixtures; + using Microsoft.Azure.Management.StorageCache.Tests.Utilities; + using Microsoft.Azure.Test.HttpRecorder; + using Xunit; + using Xunit.Abstractions; + + /// + /// Defines the . + /// + [Collection("StorageCacheCollection")] + public class UsageModelTests + { + /// + /// Defines the testOutputHelper. + /// + private readonly ITestOutputHelper testOutputHelper; + + /// + /// Defines the Fixture. + /// + private readonly StorageCacheTestFixture fixture; + + /// + /// Initializes a new instance of the class. + /// + /// The testOutputHelper. + /// The Fixture. + public UsageModelTests(ITestOutputHelper testOutputHelper, StorageCacheTestFixture fixture) + { + this.fixture = fixture; + this.testOutputHelper = testOutputHelper; + } + + /// + /// Verify the list of storage cache SKUs available to this subscription. + /// + [Fact] + public void TestGetSKUList() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + IList cacheSkuResponse = client.Skus.List().Value; + Assert.True(cacheSkuResponse.Count >= 1); + foreach (ResourceSku resourceSku in cacheSkuResponse) + { + if (string.Equals(resourceSku.Name, "Standard_2G")) + { + Assert.Equal("2", resourceSku.Capabilities[0].Value); + Assert.Equal("3072,6144,12288", resourceSku.Capabilities[1].Value); + } + + if (string.Equals(resourceSku.Name, "Standard_4G")) + { + Assert.Equal("4", resourceSku.Capabilities[0].Value); + Assert.Equal("6144,12288,24576", resourceSku.Capabilities[1].Value); + } + + if (string.Equals(resourceSku.Name, "Standard_8G")) + { + Assert.Equal("8", resourceSku.Capabilities[0].Value); + Assert.Equal("12288,24576,49152", resourceSku.Capabilities[1].Value); + } + } + } + } + + /// + /// Verify the list of cache usage models available to this subscription. + /// + [Fact] + public void TestGetUsageModels() + { + this.testOutputHelper.WriteLine($"Running in {HttpMockServer.GetCurrentMode()} mode."); + using (StorageCacheTestContext context = new StorageCacheTestContext(this)) + { + var client = context.GetClient(); + client.ApiVersion = Constants.DefaultAPIVersion; + IList usageModelResponse = client.UsageModels.List().Value; + Assert.True(usageModelResponse.Count >= 1); + foreach (UsageModel usageModel in usageModelResponse) + { + this.testOutputHelper.WriteLine("Usage Model display - {0}", usageModel.Display.Description); + this.testOutputHelper.WriteLine("Usage Model type - {0}", usageModel.TargetType); + this.testOutputHelper.WriteLine("Usage Model name - {0}", usageModel.ModelName); + string[] array = { "READ_HEAVY_INFREQ", "WRITE_WORKLOAD_15", "WRITE_AROUND" }; + if (string.Equals(usageModel.TargetType, "Nfs")) + { + Assert.Contains(usageModel.ModelName, array); + } + } + } + } + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/Constants.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/Constants.cs new file mode 100644 index 000000000000..09059aee7726 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/Constants.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Utilities +{ + /// + /// Contains constants for tests. + /// + public static class Constants + { + /// + /// Default region for resource group. + /// + public const string DefaultRegion = "eastus"; + + /// + /// Default API version of storage cache client. + /// + public const string DefaultAPIVersion = "2019-11-01"; + + /// + /// Default prefix for resource group name. + /// + public const string DefaultResourcePrefix = "hpc"; + + /// + /// Default size for cache. + /// + public const int DefaultCacheSize = 3072; + + /// + /// Default SKU for cache. + /// + public const string DefaultCacheSku = "Standard_2G"; + + /// + /// Default PrincipalId for Storage Cache Resource Provider. + /// + public const string StorageCacheResourceProviderPrincipalId = "831d4223-7a3c-4121-a445-1e423591e57b"; + + // If you want to use existing cache then uncomment below parameters and substitue proper values. + + /// + /// Resouce group name. + /// + //public static readonly string ResourceGroupName = "asc0903x092420i"; + + /// + /// Cache name. + /// + //public static readonly string CacheName = "sdk_Standard_4G_6144"; + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/RecordedDelegatingHandler.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/RecordedDelegatingHandler.cs new file mode 100644 index 000000000000..08eea961cea4 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/RecordedDelegatingHandler.cs @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Utilities +{ + using System; + using System.Net; + using System.Net.Http; + using System.Net.Http.Headers; + using System.Threading.Tasks; + + /// + /// Generic delegation handler. + /// + public class RecordedDelegatingHandler : DelegatingHandler + { + // Default response. + private HttpResponseMessage response; + + private int counter; + + /// + /// Initializes a new instance of the class. + /// + public RecordedDelegatingHandler() + { + this.StatusCodeToReturn = HttpStatusCode.Created; + this.SubsequentStatusCodeToReturn = this.StatusCodeToReturn; + } + + /// + /// Initializes a new instance of the class. + /// + /// Response returned in all cases. + public RecordedDelegatingHandler(HttpResponseMessage response) + { + this.StatusCodeToReturn = HttpStatusCode.Created; + this.SubsequentStatusCodeToReturn = this.StatusCodeToReturn; + this.response = response; + } + + public HttpStatusCode StatusCodeToReturn { get; set; } + + public HttpStatusCode SubsequentStatusCodeToReturn { get; set; } + + /// + /// Gets string representation of a HTTP request message. + /// + public string Request { get; private set; } + + /// + /// Gets the value of the request headers collection. + /// + public HttpRequestHeaders RequestHeaders { get; private set; } + + /// + /// Gets the value of the content headers collection. + /// + public HttpContentHeaders ContentHeaders { get; private set; } + + /// + /// Gets the a HTTP method. + /// + public HttpMethod Method { get; private set; } + + /// + /// Gets URI. + /// + public Uri Uri { get; private set; } + + public bool IsPassThrough { get; set; } + + /// + protected override async Task SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) + { + this.counter++; + + // Save request + if (request.Content == null) + { + this.Request = string.Empty; + } + else + { + this.Request = await request.Content.ReadAsStringAsync(); + } + + this.RequestHeaders = request.Headers; + if (request.Content != null) + { + this.ContentHeaders = request.Content.Headers; + } + + this.Method = request.Method; + this.Uri = request.RequestUri; + + // Prepare response + if (this.IsPassThrough) + { + return await base.SendAsync(request, cancellationToken); + } + else + { + if (this.response != null && this.counter == 1) + { + return this.response; + } + else + { + var statusCode = this.StatusCodeToReturn; + if (this.counter > 1) + { + statusCode = this.SubsequentStatusCodeToReturn; + } + + HttpResponseMessage response = new HttpResponseMessage(statusCode); + response.Content = new StringContent(string.Empty); + return response; + } + } + } + } +} diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/StorageCacheTestEnvironmentUtilities.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/StorageCacheTestEnvironmentUtilities.cs new file mode 100644 index 000000000000..0112f8e3c5a9 --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/StorageCacheTestEnvironmentUtilities.cs @@ -0,0 +1,188 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Utilities +{ + using System; + using System.Collections.Generic; + using System.Reflection; + using Microsoft.Azure.Test.HttpRecorder; + using Microsoft.Rest.ClientRuntime.Azure.TestFramework; + + /// + /// Test environment utilities. + /// + public static class StorageCacheTestEnvironmentUtilities + { + /// + /// Connection string that determines how to connect to Azure.. + /// + public const string EnvironmentVariableName = "TEST_CSM_ORGID_AUTHENTICATION"; + + /// + /// Initialize new environment. + /// + public static readonly TestEnvironment Environment = + new TestEnvironment(System.Environment.GetEnvironmentVariable(EnvironmentVariableName)); + + /// + /// Gets location. + /// + public static string Location + { + get + { + return GetValueFromEnvironment("DefaultRegion"); + } + } + + /// + /// Gets resource prefix. + /// + public static string ResourcePrefix + { + get + { + return GetValueFromEnvironment("DefaultResourcePrefix"); + } + } + + /// + /// Gets cache size. + /// + public static string CacheSize + { + get + { + return GetValueFromEnvironment("DefaultCacheSize"); + } + } + + /// + /// Gets cache SKU. + /// + public static string CacheSku + { + get + { + return GetValueFromEnvironment("DefaultCacheSku"); + } + } + + /// + /// Gets resource group name. + /// + public static string ResourceGroupName + { + get + { + try + { + return GetValueFromEnvironment("ResourceGroupName"); + } + catch (KeyNotFoundException) + { + return null; + } + } + } + + /// + /// Gets cache name. + /// + public static string CacheName + { + get + { + try + { + return GetValueFromEnvironment("CacheName"); + } + catch (KeyNotFoundException) + { + return null; + } + } + } + + /// + /// Get subscription id. + /// + /// Subscription id. + public static string SubscriptionId() + { + return GetOrAddVariable( + "SubscriptionId", + () => + { + return Environment.SubscriptionId; + }); + } + + /// + /// Gets a variable from HTTP recording (when test is in playback mode) or writes a variable to HTTP recording + /// (when test is in recording mode). + /// + /// Key that the variable value is stored under in HTTP recording file. + /// Function that generates the variable value if necessary. + /// The variable value. + private static string GetOrAddVariable(string key, Func generateValueFunc) + { + if (HttpMockServer.Mode == HttpRecorderMode.Record) + { + string value = generateValueFunc(); + HttpMockServer.Variables[key] = value; + return value; + } + else + { + return HttpMockServer.Variables[key]; + } + } + + /// + /// Get value from test environment. + /// + /// Environment variable key. + /// Environment variable. + private static string GetValueFromEnvironment(string key) + { + return GetOrAddVariable( + key, + () => + { + bool doUseDefaults; + Environment.ConnectionString.KeyValuePairs.TryGetValue("useDefaults", out string useDefaults); + if (!string.IsNullOrEmpty(useDefaults)) + { + doUseDefaults = bool.Parse(useDefaults); + } + else + { + doUseDefaults = false; + } + + Environment.ConnectionString.KeyValuePairs.TryGetValue(key, out string value); + + if (string.IsNullOrEmpty(value) && doUseDefaults) + { + if (typeof(Constants).GetField(key) != null) + { + FieldInfo field = typeof(Constants).GetField(key); + + value = field.GetValue(null).ToString(); + } + } + + if (string.IsNullOrEmpty(value)) + { + throw new KeyNotFoundException( + string.Format( + "Value for key '{0}' was not found in environment variable '{1}'.", key, EnvironmentVariableName)); + } + + return value; + }); + } + } +} \ No newline at end of file diff --git a/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/StorageCacheTestUtilities.cs b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/StorageCacheTestUtilities.cs new file mode 100644 index 000000000000..28e068fa3e2d --- /dev/null +++ b/sdk/storagecache/Microsoft.Azure.Management.StorageCache/tests/Utilities/StorageCacheTestUtilities.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +namespace Microsoft.Azure.Management.StorageCache.Tests.Utilities +{ + using System; + using System.Collections.Generic; + using System.Text; + using Microsoft.Azure.Test.HttpRecorder; + + /// + /// Helper class. + /// + public static class StorageCacheTestUtilities + { + /// + /// Generate a random prefix that can be ingested by Azure. + /// + /// The generated string. + public static string GeneratePrefix() + { + StringBuilder sb = new StringBuilder(DateTime.Now.ToString("MMdd")); + var firstFour = Guid.NewGuid().ToString().Substring(0, 4); + sb.Append(string.Format("x{0}", firstFour)); + return sb.ToString(); + } + + /// + /// The GenerateName. + /// + /// The prefix. + /// The methodName. + /// The . + public static string GenerateName( + string prefix = null, + [System.Runtime.CompilerServices.CallerMemberName] + string methodName = "GenerateName_failed") + { + prefix += GeneratePrefix(); + try + { + return HttpMockServer.GetAssetName(methodName, prefix); + } + catch (KeyNotFoundException e) + { + throw new KeyNotFoundException(string.Format("Generated name not found for calling method: {0}", methodName), e); + } + } + + /// + /// Throw expception if the given condition is satisfied. + /// + /// Condition to verify. + /// Exception message to raise. + public static void ThrowIfTrue(bool condition, string message) + { + if (condition) + { + throw new Exception(message); + } + } + } +}