/// <summary> /// Returns the API version to use for getting data for resources of the specified provider and type. /// This method always returns the latest API version that is not a preview version. /// </summary> /// <param name="client">The ARM client.</param> /// <param name="provider">The provider name.</param> /// <param name="type">The resource type.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>A <see cref="Task{TResult}"/>, returning the API version.</returns> private async Task <string> GetLatestApiVersionAsync(ResourceManagementClient client, string provider, string type, CancellationToken cancellationToken) { ProviderInner providerInformation = await this.GetProviderInformationAsync(client, provider, cancellationToken); ProviderResourceType providerResourceType = providerInformation.ResourceTypes.FirstOrDefault(resourceType => resourceType.ResourceType.Equals(type, StringComparison.CurrentCultureIgnoreCase)); if (providerResourceType == null) { throw new ArgumentException($"Provider {provider} does not support type {type}"); } return(providerResourceType.ApiVersions.Where(version => version.Contains("preview") == false).Max()); }
public async Task <string> GetApiVersion(string type) { string resourceProvider = type.Split('/')[0]; string resourceType = type.TrimStart(resourceProvider.ToCharArray()).TrimStart('/'); if (_apiVersions.ContainsKey(resourceType)) { return(_apiVersions[resourceType]); } try { ProviderInner provider = await _client.Providers.GetAsync(resourceProvider); var resourceApi = provider.ResourceTypes.Where(x => x.ResourceType == resourceType).FirstOrDefault().ApiVersions[0]; _apiVersions.Add(resourceType, resourceApi); return(resourceApi); } catch (Exception ex) { throw (ex); } }
private IProvider WrapModel(ProviderInner innerModel) { return(new ProviderImpl(innerModel)); }
private IEnumerable <KeyValuePair <string, string> > GetApiVersion(ProviderInner provider) { return(provider.ResourceTypes.Select(r => new KeyValuePair <string, string>( $"{provider.NamespaceProperty}/{r.ResourceType}", SelectApiVersion(r.ApiVersions)))); }
public async Task <IProvider> GetByNameAsync(string resourceProviderNamespace, CancellationToken cancellationToken = default(CancellationToken)) { ProviderInner inner = await client.GetAsync(resourceProviderNamespace, cancellationToken : cancellationToken); return(new ProviderImpl(inner)); }