public PsApiManagement(ApiServiceResource apiServiceResource)
: this()
{
if (apiServiceResource == null)
{
throw new ArgumentNullException("apiServiceResource");
}
Id = apiServiceResource.Id;
Name = apiServiceResource.Name;
Location = apiServiceResource.Location;
Sku = Mapper.Map<SkuType, PsApiManagementSku>(apiServiceResource.SkuProperties.SkuType);
Capacity = apiServiceResource.SkuProperties.Capacity ?? 1;
ProvisioningState = apiServiceResource.Properties.ProvisioningState;
RuntimeUrl = apiServiceResource.Properties.ProxyEndpoint;
PortalUrl = apiServiceResource.Properties.ManagementPortalEndpoint;
StaticIPs = apiServiceResource.Properties.StaticIPs.ToArray();
VpnType = Mapper.Map<VirtualNetworkType, PsApiManagementVpnType>(apiServiceResource.Properties.VpnType);
if (apiServiceResource.Properties.AdditionalRegions != null)
{
AdditionalRegions =
apiServiceResource.Properties.AdditionalRegions
.Select(region => new PsApiManagementRegion(region))
.ToList();
}
if (apiServiceResource.Properties.VirtualNetworkConfiguration != null)
{
VirtualNetwork = new PsApiManagementVirtualNetwork(apiServiceResource.Properties.VirtualNetworkConfiguration);
}
if (apiServiceResource.Properties.HostnameConfigurations != null)
{
var portalHostnameResource = apiServiceResource.Properties.HostnameConfigurations.FirstOrDefault(conf => conf.Type == HostnameType.Portal);
if (portalHostnameResource != null)
{
PortalHostnameConfiguration = new PsApiManagementHostnameConfiguration(portalHostnameResource);
}
var proxyHostnameResource = apiServiceResource.Properties.HostnameConfigurations.FirstOrDefault(conf => conf.Type == HostnameType.Proxy);
if (proxyHostnameResource != null)
{
ProxyHostnameConfiguration = new PsApiManagementHostnameConfiguration(proxyHostnameResource);
}
var managementHostnameResource = apiServiceResource.Properties.HostnameConfigurations.FirstOrDefault(conf => conf.Type == HostnameType.Management);
if (managementHostnameResource != null)
{
ManagementHostnameConfiguration = new PsApiManagementHostnameConfiguration(managementHostnameResource);
}
var scmHostnameResource = apiServiceResource.Properties.HostnameConfigurations.FirstOrDefault(conf => conf.Type == HostnameType.Kudu);
if (scmHostnameResource != null)
{
ScmHostnameConfiguration = new PsApiManagementHostnameConfiguration(scmHostnameResource);
}
}
if (apiServiceResource.Tags != null)
{
Tags = apiServiceResource.Tags;
}
}