mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-03 20:17:53 +00:00 
			
		
		
		
	Compare commits
	
		
			17 Commits
		
	
	
		
			feature/NE
			...
			testv1.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					0fcdb7410e | ||
| 
						 | 
					01fa2d3977 | ||
| 
						 | 
					f0daa18906 | ||
| 
						 | 
					d6d454bfc1 | ||
| 
						 | 
					f30b1ca02e | ||
| 
						 | 
					84f3d4ea5d | ||
| 
						 | 
					a5fb061359 | ||
| 
						 | 
					d8ff2f1a31 | ||
| 
						 | 
					1d1b5f1c42 | ||
| 
						 | 
					74587349fe | ||
| 
						 | 
					b463d6720a | ||
| 
						 | 
					036bd8ccc2 | ||
| 
						 | 
					eebdfba431 | ||
| 
						 | 
					52a5a2ac72 | ||
| 
						 | 
					44b3d5e526 | ||
| 
						 | 
					f9ece26ccf | ||
| 
						 | 
					dc8e22a1b5 | 
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
BSD 3-Clause License
 | 
					BSD 3-Clause License
 | 
				
			||||||
 | 
					#Release Testing
 | 
				
			||||||
Copyright (c) 2020, Telecom Infra Project
 | 
					Copyright (c) 2020, Telecom Infra Project
 | 
				
			||||||
All rights reserved.
 | 
					All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,21 +13,17 @@
 | 
				
			|||||||
	<name>opensync-ext-cloud</name>
 | 
						<name>opensync-ext-cloud</name>
 | 
				
			||||||
	<description>Configuration interface that provides config from the cloud services.</description>
 | 
						<description>Configuration interface that provides config from the cloud services.</description>
 | 
				
			||||||
	<dependencies>
 | 
						<dependencies>
 | 
				
			||||||
		<dependency>
 | 
					<!-- 		<dependency> -->
 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
					<!-- 			<groupId>com.telecominfraproject.wlan</groupId> -->
 | 
				
			||||||
			<artifactId>opensync-ext-interface</artifactId>
 | 
					<!-- 			<artifactId>opensync-ext-interface</artifactId> -->
 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
					<!-- 			<version>${tip-wlan-cloud.release.version}</version> -->
 | 
				
			||||||
		</dependency>
 | 
					<!-- 		</dependency> -->
 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
			<artifactId>opensync-gateway</artifactId>
 | 
								<artifactId>opensync-gateway</artifactId>
 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
		</dependency>
 | 
							</dependency>
 | 
				
			||||||
 	  <dependency>
 | 
					 	 
 | 
				
			||||||
        <artifactId>base-container</artifactId>
 | 
					 | 
				
			||||||
        <groupId>com.telecominfraproject.wlan</groupId>
 | 
					 | 
				
			||||||
        <version>${tip-wlan-cloud.release.version}</version>
 | 
					 | 
				
			||||||
      </dependency>
 | 
					 | 
				
			||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <artifactId>base-client</artifactId>
 | 
					            <artifactId>base-client</artifactId>
 | 
				
			||||||
            <groupId>com.telecominfraproject.wlan</groupId>
 | 
					            <groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -490,7 +490,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            protocolStatusData.setCloudCfgDataVersion(42L);
 | 
					            protocolStatusData.setCloudCfgDataVersion(42L);
 | 
				
			||||||
            protocolStatusData.setReportedCfgDataVersion(42L);
 | 
					            protocolStatusData.setReportedCfgDataVersion(42L);
 | 
				
			||||||
            protocolStatusData.setCountryCode("CA");
 | 
					            protocolStatusData.setCountryCode("CA");
 | 
				
			||||||
            protocolStatusData.setReportedCC(CountryCode.ca);
 | 
					            protocolStatusData.setReportedCC(CountryCode.CA);
 | 
				
			||||||
            protocolStatusData.setReportedHwVersion(connectNodeInfo.platformVersion);
 | 
					            protocolStatusData.setReportedHwVersion(connectNodeInfo.platformVersion);
 | 
				
			||||||
            if (connectNodeInfo.versionMatrix.containsKey(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)) {
 | 
					            if (connectNodeInfo.versionMatrix.containsKey(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)) {
 | 
				
			||||||
                protocolStatusData.setReportedSwVersion(
 | 
					                protocolStatusData.setReportedSwVersion(
 | 
				
			||||||
@@ -572,6 +572,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                networkAdminStatusRec = new Status();
 | 
					                networkAdminStatusRec = new Status();
 | 
				
			||||||
                networkAdminStatusRec.setCustomerId(ce.getCustomerId());
 | 
					                networkAdminStatusRec.setCustomerId(ce.getCustomerId());
 | 
				
			||||||
                networkAdminStatusRec.setEquipmentId(ce.getId());
 | 
					                networkAdminStatusRec.setEquipmentId(ce.getId());
 | 
				
			||||||
 | 
					                networkAdminStatusRec.setStatusDataType(StatusDataType.NETWORK_ADMIN);
 | 
				
			||||||
                NetworkAdminStatusData statusData = new NetworkAdminStatusData();
 | 
					                NetworkAdminStatusData statusData = new NetworkAdminStatusData();
 | 
				
			||||||
                networkAdminStatusRec.setDetails(statusData);
 | 
					                networkAdminStatusRec.setDetails(statusData);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -580,6 +581,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            netAdminStatusData.setDhcpStatus(StatusCode.normal);
 | 
					            netAdminStatusData.setDhcpStatus(StatusCode.normal);
 | 
				
			||||||
            netAdminStatusData.setCloudLinkStatus(StatusCode.normal);
 | 
					            netAdminStatusData.setCloudLinkStatus(StatusCode.normal);
 | 
				
			||||||
            netAdminStatusData.setDnsStatus(StatusCode.normal);
 | 
					            netAdminStatusData.setDnsStatus(StatusCode.normal);
 | 
				
			||||||
 | 
					            netAdminStatusData.setRadiusStatus(StatusCode.normal);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            networkAdminStatusRec.setDetails(netAdminStatusData);
 | 
					            networkAdminStatusRec.setDetails(netAdminStatusData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -826,7 +828,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid));
 | 
					                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ret.setMetricsProfiles(
 | 
					                ret.setMetricsProfiles(
 | 
				
			||||||
                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.metrics));
 | 
					                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.service_metrics_collection_config));
 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
                Set<Profile> radiusSet = new HashSet<>();
 | 
					                Set<Profile> radiusSet = new HashSet<>();
 | 
				
			||||||
                Set<Long> captiveProfileIds = new HashSet<>();
 | 
					                Set<Long> captiveProfileIds = new HashSet<>();
 | 
				
			||||||
@@ -842,7 +844,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                for (Profile ssidProfile : ret.getSsidProfile()) {
 | 
					                for (Profile ssidProfile : ret.getSsidProfile()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    hotspot20ProfileSet
 | 
					                    hotspot20ProfileSet
 | 
				
			||||||
                            .addAll(profileContainer.getChildrenOfType(ssidProfile.getId(), ProfileType.hotspot_2pt0));
 | 
					                            .addAll(profileContainer.getChildrenOfType(ssidProfile.getId(), ProfileType.passpoint));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    radiusSet
 | 
					                    radiusSet
 | 
				
			||||||
                            .addAll(profileContainer.getChildrenOfType(ret.getApProfile().getId(), ProfileType.radius));
 | 
					                            .addAll(profileContainer.getChildrenOfType(ret.getApProfile().getId(), ProfileType.radius));
 | 
				
			||||||
@@ -862,11 +864,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                if (hotspot20ProfileSet.size() > 0) {
 | 
					                if (hotspot20ProfileSet.size() > 0) {
 | 
				
			||||||
                    for (Profile hotspot20Profile : hotspot20ProfileSet) {
 | 
					                    for (Profile hotspot20Profile : hotspot20ProfileSet) {
 | 
				
			||||||
                        hotspot20OperatorSet.addAll(
 | 
					                        hotspot20OperatorSet.addAll(
 | 
				
			||||||
                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.operator));
 | 
					                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_operator));
 | 
				
			||||||
                        hotspot20VenueSet.addAll(
 | 
					                        hotspot20VenueSet.addAll(
 | 
				
			||||||
                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.venue));
 | 
					                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_venue));
 | 
				
			||||||
                        hotspot20ProviderSet.addAll(
 | 
					                        hotspot20ProviderSet.addAll(
 | 
				
			||||||
                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.id_provider));
 | 
					                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_osu_id_provider));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet);
 | 
					                    hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet);
 | 
				
			||||||
                    hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet);
 | 
					                    hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet);
 | 
				
			||||||
@@ -1132,8 +1134,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
 | 
					                protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
 | 
				
			||||||
                if (!protocolStatusData.getReportedCC()
 | 
					                if (!protocolStatusData.getReportedCC()
 | 
				
			||||||
                        .equals(CountryCode.valueOf(radioState.getCountry().toLowerCase()))) {
 | 
					                        .equals(CountryCode.getByName((radioState.getCountry())))) {
 | 
				
			||||||
                    protocolStatusData.setReportedCC(CountryCode.valueOf(radioState.getCountry().toLowerCase()));
 | 
					                    protocolStatusData.setReportedCC(CountryCode.getByName((radioState.getCountry())));
 | 
				
			||||||
                    protocolStatus.setDetails(protocolStatusData);
 | 
					                    protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,6 @@ import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
 | 
				
			|||||||
import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.utils.DecibelUtils;
 | 
					import com.telecominfraproject.wlan.core.model.utils.DecibelUtils;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
					import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
					import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
@@ -74,7 +73,9 @@ import com.telecominfraproject.wlan.status.equipment.report.models.EquipmentPerR
 | 
				
			|||||||
import com.telecominfraproject.wlan.status.equipment.report.models.OperatingSystemPerformance;
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.OperatingSystemPerformance;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.RadioUtilizationReport;
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.RadioUtilizationReport;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.models.Status;
 | 
					import com.telecominfraproject.wlan.status.models.Status;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.models.StatusCode;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
					import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.network.models.NetworkAdminStatusData;
 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
 | 
					import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
 | 
					import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
 | 
					import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
 | 
				
			||||||
@@ -147,7 +148,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
    private CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
 | 
					    private CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
 | 
					    void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
 | 
				
			||||||
        LOG.debug("Received WCStatsReport {}", wcStatsReport.toString());
 | 
					        LOG.info("Received WCStatsReport {}", wcStatsReport.toString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.info("Received report on topic {}", topic);
 | 
					        LOG.info("Received report on topic {}", topic);
 | 
				
			||||||
        int customerId = extractCustomerIdFromTopic(topic);
 | 
					        int customerId = extractCustomerIdFromTopic(topic);
 | 
				
			||||||
@@ -244,7 +245,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!metricRecordList.isEmpty()) {
 | 
					        if (!metricRecordList.isEmpty()) {
 | 
				
			||||||
            LOG.debug("Publishing Metrics {}", metricRecordList);
 | 
					            LOG.info("Publishing Metrics {}", metricRecordList);
 | 
				
			||||||
            equipmentMetricsCollectorInterface.publishMetrics(metricRecordList);
 | 
					            equipmentMetricsCollectorInterface.publishMetrics(metricRecordList);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -289,7 +290,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    void processEventReport(Report report, int customerId, long equipmentId, String apId, long locationId) {
 | 
					    void processEventReport(Report report, int customerId, long equipmentId, String apId, long locationId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        report.getEventReportList().stream().forEach(e -> {
 | 
					        report.getEventReportList().stream().forEach(e -> {
 | 
				
			||||||
@@ -442,7 +442,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                clientSessionDetails.setAssociationState(AssociationState._802_11_Associated);
 | 
					                clientSessionDetails.setAssociationState(AssociationState._802_11_Associated);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                if (clientSession.getDetails() == null) {
 | 
					                if (clientSession.getDetails() == null) {
 | 
				
			||||||
                    clientSession.setDetails(clientSessionDetails);
 | 
					                    clientSession.setDetails(clientSessionDetails);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
@@ -453,7 +452,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -509,7 +507,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
 | 
					                clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                if (clientDisconnectEvent.hasLrcvUpTsInUs()) {
 | 
					                if (clientDisconnectEvent.hasLrcvUpTsInUs()) {
 | 
				
			||||||
                    clientSessionDetails.setLastRxTimestamp(clientDisconnectEvent.getLrcvUpTsInUs());
 | 
					                    clientSessionDetails.setLastRxTimestamp(clientDisconnectEvent.getLrcvUpTsInUs());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -527,7 +524,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                clientSessionDetails.setAssociationState(AssociationState.Disconnected);
 | 
					                clientSessionDetails.setAssociationState(AssociationState.Disconnected);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                if (clientSession.getDetails() == null) {
 | 
					                if (clientSession.getDetails() == null) {
 | 
				
			||||||
                    clientSession.setDetails(clientSessionDetails);
 | 
					                    clientSession.setDetails(clientSessionDetails);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
@@ -536,7 +532,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -589,7 +584,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated);
 | 
					                    clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                if (clientSession.getDetails() == null) {
 | 
					                if (clientSession.getDetails() == null) {
 | 
				
			||||||
                    clientSession.setDetails(clientSessionDetails);
 | 
					                    clientSession.setDetails(clientSessionDetails);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
@@ -598,7 +592,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -709,7 +702,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession.setLocationId(locationId);
 | 
					                clientSession.setLocationId(locationId);
 | 
				
			||||||
                clientSession.setMacAddress(new MacAddress(clientFailureEvent.getStaMac()));
 | 
					                clientSession.setMacAddress(new MacAddress(clientFailureEvent.getStaMac()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
					                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (clientFailureEvent.hasSsid()) {
 | 
					                if (clientFailureEvent.hasSsid()) {
 | 
				
			||||||
@@ -772,10 +764,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession.setLocationId(locationId);
 | 
					                clientSession.setLocationId(locationId);
 | 
				
			||||||
                clientSession.setMacAddress(new MacAddress(clientFirstDataEvent.getStaMac()));
 | 
					                clientSession.setMacAddress(new MacAddress(clientFirstDataEvent.getStaMac()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
					                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                if (clientFirstDataEvent.hasFdataRxUpTsInUs()) {
 | 
					                if (clientFirstDataEvent.hasFdataRxUpTsInUs()) {
 | 
				
			||||||
                    clientSessionDetails.setFirstDataRcvdTimestamp(clientFirstDataEvent.getFdataRxUpTsInUs());
 | 
					                    clientSessionDetails.setFirstDataRcvdTimestamp(clientFirstDataEvent.getFdataRxUpTsInUs());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -833,12 +823,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession.setLocationId(locationId);
 | 
					                clientSession.setLocationId(locationId);
 | 
				
			||||||
                clientSession.setMacAddress(new MacAddress(clientIdEvent.getCltMac()));
 | 
					                clientSession.setMacAddress(new MacAddress(clientIdEvent.getCltMac()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
					                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
 | 
					                clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                if (clientSession.getDetails() == null) {
 | 
					                if (clientSession.getDetails() == null) {
 | 
				
			||||||
                    clientSession.setDetails(clientSessionDetails);
 | 
					                    clientSession.setDetails(clientSessionDetails);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
@@ -886,10 +874,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
					                ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
 | 
					                clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                try {
 | 
					                try {
 | 
				
			||||||
                    clientSessionDetails
 | 
					                    clientSessionDetails
 | 
				
			||||||
                            .setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray()));
 | 
					                            .setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray()));
 | 
				
			||||||
@@ -992,7 +978,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                eventTimestamp = videoVoiceReport.getTimestampMs();
 | 
					                eventTimestamp = videoVoiceReport.getTimestampMs();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("Received VideoVoiceReport {} for SIP call", videoVoiceReport);
 | 
					            LOG.info("Received VideoVoiceReport {} for SIP call", videoVoiceReport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            processRealTImeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport);
 | 
					            processRealTImeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1046,34 +1032,34 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                if (apRtpFlowStats.hasDirection()) {
 | 
					                if (apRtpFlowStats.hasDirection()) {
 | 
				
			||||||
                    switch (apRtpFlowStats.getDirection()) {
 | 
					                    switch (apRtpFlowStats.getDirection()) {
 | 
				
			||||||
                        case RTP_DOWNSTREAM:
 | 
					                    case RTP_DOWNSTREAM:
 | 
				
			||||||
                            cloudRtpStats.setDirection(
 | 
					                        cloudRtpStats.setDirection(
 | 
				
			||||||
                                    com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM);
 | 
					                                com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM);
 | 
				
			||||||
                            break;
 | 
					                        break;
 | 
				
			||||||
                        case RTP_UPSTREAM:
 | 
					                    case RTP_UPSTREAM:
 | 
				
			||||||
                            cloudRtpStats.setDirection(
 | 
					                        cloudRtpStats.setDirection(
 | 
				
			||||||
                                    com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM);
 | 
					                                com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM);
 | 
				
			||||||
                            break;
 | 
					                        break;
 | 
				
			||||||
                        default:
 | 
					                    default:
 | 
				
			||||||
                            cloudRtpStats.setDirection(
 | 
					                        cloudRtpStats.setDirection(
 | 
				
			||||||
                                    com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED);
 | 
					                                com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (apRtpFlowStats.hasRtpFlowType()) {
 | 
					                if (apRtpFlowStats.hasRtpFlowType()) {
 | 
				
			||||||
                    switch (apRtpFlowStats.getRtpFlowType()) {
 | 
					                    switch (apRtpFlowStats.getRtpFlowType()) {
 | 
				
			||||||
                        case RTP_VIDEO:
 | 
					                    case RTP_VIDEO:
 | 
				
			||||||
                            cloudRtpStats.setFlowType(
 | 
					                        cloudRtpStats.setFlowType(
 | 
				
			||||||
                                    com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO);
 | 
					                                com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO);
 | 
				
			||||||
                            break;
 | 
					                        break;
 | 
				
			||||||
                        case RTP_VOICE:
 | 
					                    case RTP_VOICE:
 | 
				
			||||||
                            cloudRtpStats.setFlowType(
 | 
					                        cloudRtpStats.setFlowType(
 | 
				
			||||||
                                    com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE);
 | 
					                                com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE);
 | 
				
			||||||
                            break;
 | 
					                        break;
 | 
				
			||||||
                        default:
 | 
					                    default:
 | 
				
			||||||
                            cloudRtpStats.setFlowType(
 | 
					                        cloudRtpStats.setFlowType(
 | 
				
			||||||
                                    com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED);
 | 
					                                com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED);
 | 
				
			||||||
                            break;
 | 
					                        break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1101,12 +1087,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    cloudRtpStats.setPacketLossPercentage(apRtpFlowStats.getPacketLossPercent());
 | 
					                    cloudRtpStats.setPacketLossPercentage(apRtpFlowStats.getPacketLossPercent());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                cloudRtpFlowStatsList.add(cloudRtpStats);
 | 
					                cloudRtpFlowStatsList.add(cloudRtpStats);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            RealTimeSipCallReportEvent cloudSipCallReportEvent = new RealTimeSipCallReportEvent(customerId, equipmentId,
 | 
					            RealTimeSipCallReportEvent cloudSipCallReportEvent = new RealTimeSipCallReportEvent(customerId, equipmentId,
 | 
				
			||||||
                    eventTimestamp);
 | 
					                    eventTimestamp);
 | 
				
			||||||
            cloudSipCallReportEvent.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac()));
 | 
					            cloudSipCallReportEvent.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac()));
 | 
				
			||||||
@@ -1167,10 +1151,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            if (apCallStop.hasCallDuration()) {
 | 
					            if (apCallStop.hasCallDuration()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                cloudSipCallStopEvent.setCallDuration(apCallStop.getCallDuration());
 | 
					                cloudSipCallStopEvent.setCallDuration(apCallStop.getCallDuration());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (apCallStop.hasClientMac()) {
 | 
					            if (apCallStop.hasClientMac()) {
 | 
				
			||||||
@@ -1182,15 +1164,15 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            if (apCallStop.hasReason()) {
 | 
					            if (apCallStop.hasReason()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                switch (apCallStop.getReason()) {
 | 
					                switch (apCallStop.getReason()) {
 | 
				
			||||||
                    case BYE_OK:
 | 
					                case BYE_OK:
 | 
				
			||||||
                        cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK);
 | 
					                    cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK);
 | 
				
			||||||
                        break;
 | 
					                    break;
 | 
				
			||||||
                    case CALL_DROPPED:
 | 
					                case CALL_DROPPED:
 | 
				
			||||||
                        cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED);
 | 
					                    cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED);
 | 
				
			||||||
                        break;
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    default:
 | 
					                default:
 | 
				
			||||||
                        cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED);
 | 
					                    cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -1208,7 +1190,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            eventsList.add(cloudSipCallStopEvent);
 | 
					            eventsList.add(cloudSipCallStopEvent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1249,7 +1230,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            eventsList.add(rtsStartEvent);
 | 
					            eventsList.add(rtsStartEvent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1339,10 +1319,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
					    void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
				
			||||||
            long locationId) {
 | 
					            long locationId) {
 | 
				
			||||||
        LOG.debug("populateApNodeMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
					        LOG.info("populateApNodeMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
        ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
 | 
					        ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
 | 
				
			||||||
        ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
 | 
					        ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1535,7 +1514,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                // we need to perform a weighted average here because the
 | 
					                // we need to perform a weighted average here because the
 | 
				
			||||||
                // samples are in percentage, and may be of different durations
 | 
					                // samples are in percentage, and may be of different durations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                busyTx += surveySample.getBusyTx() * surveySample.getDurationMs();
 | 
					                busyTx += surveySample.getBusyTx() * surveySample.getDurationMs();
 | 
				
			||||||
                busyRx += surveySample.getBusyRx() * surveySample.getDurationMs();
 | 
					                busyRx += surveySample.getBusyRx() * surveySample.getDurationMs();
 | 
				
			||||||
                busy += surveySample.getBusy() * surveySample.getDurationMs();
 | 
					                busy += surveySample.getBusy() * surveySample.getDurationMs();
 | 
				
			||||||
@@ -1543,7 +1521,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                totalDurationMs += surveySample.getDurationMs();
 | 
					                totalDurationMs += surveySample.getDurationMs();
 | 
				
			||||||
                noiseList.add(getNegativeSignedIntFrom8BitUnsigned(surveySample.getNoise()));
 | 
					                noiseList.add(getNegativeSignedIntFrom8BitUnsigned(surveySample.getNoise()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (totalDurationMs > 0) {
 | 
					            if (totalDurationMs > 0) {
 | 
				
			||||||
@@ -1593,6 +1570,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        populateNetworkProbeMetrics(report, apNodeMetrics);
 | 
					        populateNetworkProbeMetrics(report, apNodeMetrics);
 | 
				
			||||||
 | 
					        updateNetworkAdminStatusReport(customerId, equipmentId, apNodeMetrics);
 | 
				
			||||||
        RadioUtilizationReport radioUtilizationReport = new RadioUtilizationReport();
 | 
					        RadioUtilizationReport radioUtilizationReport = new RadioUtilizationReport();
 | 
				
			||||||
        radioUtilizationReport.setAvgNoiseFloor(avgNoiseFloor);
 | 
					        radioUtilizationReport.setAvgNoiseFloor(avgNoiseFloor);
 | 
				
			||||||
        radioUtilizationReport.setRadioUtilization(radioUtilizationDetailsMap);
 | 
					        radioUtilizationReport.setRadioUtilization(radioUtilizationDetailsMap);
 | 
				
			||||||
@@ -1601,9 +1579,78 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        updateDeviceStatusRadioUtilizationReport(customerId, equipmentId, radioUtilizationReport);
 | 
					        updateDeviceStatusRadioUtilizationReport(customerId, equipmentId, radioUtilizationReport);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void updateNetworkAdminStatusReport(int customerId, long equipmentId, ApNodeMetrics apNodeMetrics) {
 | 
				
			||||||
 | 
					        apNodeMetrics.getNetworkProbeMetrics().forEach(n -> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            LOG.info("Update NetworkAdminStatusReport for NetworkProbeMetrics {}", n.toString());
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            Status networkAdminStatus = statusServiceInterface.getOrNull(customerId, equipmentId,
 | 
				
			||||||
 | 
					                    StatusDataType.NETWORK_ADMIN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (networkAdminStatus == null) {
 | 
				
			||||||
 | 
					                networkAdminStatus = new Status();
 | 
				
			||||||
 | 
					                networkAdminStatus.setCustomerId(customerId);
 | 
				
			||||||
 | 
					                networkAdminStatus.setEquipmentId(equipmentId);
 | 
				
			||||||
 | 
					                networkAdminStatus.setCreatedTimestamp(System.currentTimeMillis());
 | 
				
			||||||
 | 
					                networkAdminStatus.setStatusDataType(StatusDataType.NETWORK_ADMIN);
 | 
				
			||||||
 | 
					                networkAdminStatus.setDetails(new NetworkAdminStatusData());
 | 
				
			||||||
 | 
					                networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            NetworkAdminStatusData statusData = (NetworkAdminStatusData) networkAdminStatus.getDetails();
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (n.getDnsState() == null) {
 | 
				
			||||||
 | 
					                LOG.info("No DnsState present in networkProbeMetrics, DnsState and CloudLinkStatus set to 'normal");
 | 
				
			||||||
 | 
					                statusData.setDnsStatus(StatusCode.normal);
 | 
				
			||||||
 | 
					                statusData.setCloudLinkStatus(StatusCode.normal);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                statusData.setDnsStatus(stateUpDownErrorToStatusCode(n.getDnsState()));
 | 
				
			||||||
 | 
					                statusData.setCloudLinkStatus(stateUpDownErrorToStatusCode(n.getDnsState()));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (n.getDhcpState() == null) {
 | 
				
			||||||
 | 
					                LOG.info("No DhcpState present in networkProbeMetrics, set to 'normal");
 | 
				
			||||||
 | 
					                statusData.setDhcpStatus(StatusCode.normal);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                statusData.setDhcpStatus(stateUpDownErrorToStatusCode(n.getDhcpState()));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (n.getRadiusState() == null) {
 | 
				
			||||||
 | 
					                LOG.info("No RadiusState present in networkProbeMetrics, set to 'normal");
 | 
				
			||||||
 | 
					                statusData.setRadiusStatus(StatusCode.normal);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                statusData.setRadiusStatus(stateUpDownErrorToStatusCode(n.getRadiusState()));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            networkAdminStatus.setDetails(statusData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            LOG.info("Updated NetworkAdminStatus {}", networkAdminStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static StatusCode stateUpDownErrorToStatusCode(StateUpDownError state) {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        switch (state) {
 | 
				
			||||||
 | 
					        case enabled:
 | 
				
			||||||
 | 
					            return StatusCode.normal;
 | 
				
			||||||
 | 
					        case error:
 | 
				
			||||||
 | 
					            return StatusCode.error;
 | 
				
			||||||
 | 
					        case disabled:
 | 
				
			||||||
 | 
					            return StatusCode.disabled;
 | 
				
			||||||
 | 
					        case UNSUPPORTED:
 | 
				
			||||||
 | 
					            return StatusCode.requiresAttention;
 | 
				
			||||||
 | 
					        default:
 | 
				
			||||||
 | 
					            return StatusCode.normal;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void updateDeviceStatusRadioUtilizationReport(int customerId, long equipmentId,
 | 
					    void updateDeviceStatusRadioUtilizationReport(int customerId, long equipmentId,
 | 
				
			||||||
            RadioUtilizationReport radioUtilizationReport) {
 | 
					            RadioUtilizationReport radioUtilizationReport) {
 | 
				
			||||||
        LOG.debug(
 | 
					        LOG.info(
 | 
				
			||||||
                "Processing updateDeviceStatusRadioUtilizationReport for equipmentId {} with RadioUtilizationReport {}",
 | 
					                "Processing updateDeviceStatusRadioUtilizationReport for equipmentId {} with RadioUtilizationReport {}",
 | 
				
			||||||
                equipmentId, radioUtilizationReport);
 | 
					                equipmentId, radioUtilizationReport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1611,7 +1658,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                StatusDataType.RADIO_UTILIZATION);
 | 
					                StatusDataType.RADIO_UTILIZATION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (radioUtilizationStatus == null) {
 | 
					        if (radioUtilizationStatus == null) {
 | 
				
			||||||
            LOG.debug("Create new radioUtilizationStatus");
 | 
					            LOG.info("Create new radioUtilizationStatus");
 | 
				
			||||||
            radioUtilizationStatus = new Status();
 | 
					            radioUtilizationStatus = new Status();
 | 
				
			||||||
            radioUtilizationStatus.setCustomerId(customerId);
 | 
					            radioUtilizationStatus.setCustomerId(customerId);
 | 
				
			||||||
            radioUtilizationStatus.setEquipmentId(equipmentId);
 | 
					            radioUtilizationStatus.setEquipmentId(equipmentId);
 | 
				
			||||||
@@ -1657,7 +1704,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                        ipAddress = InetAddress.getByName(dnsProbeMetricFromAp.getServerIP());
 | 
					                        ipAddress = InetAddress.getByName(dnsProbeMetricFromAp.getServerIP());
 | 
				
			||||||
                        cloudDnsProbeMetric.setDnsServerIp(ipAddress);
 | 
					                        cloudDnsProbeMetric.setDnsServerIp(ipAddress);
 | 
				
			||||||
                    } catch (UnknownHostException e) {
 | 
					                    } catch (UnknownHostException e) {
 | 
				
			||||||
                        LOG.error("Could not get DNS Server IP from network_probe metrics", e);
 | 
					                        LOG.error("Could not get DNS Server IP from network_probe service_metrics_collection_config",
 | 
				
			||||||
 | 
					                                e);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1693,7 +1741,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    StateUpDownError dhcpState = OvsdbToWlanCloudTypeMappingUtility
 | 
					                    StateUpDownError dhcpState = OvsdbToWlanCloudTypeMappingUtility
 | 
				
			||||||
                            .getCloudMetricsStateFromOpensyncStatsStateUpDown(vlanMetrics.getDhcpState());
 | 
					                            .getCloudMetricsStateFromOpensyncStatsStateUpDown(vlanMetrics.getDhcpState());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    networkProbeMetrics.setDhcpState(dhcpState);
 | 
					                    networkProbeMetrics.setDhcpState(dhcpState);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -1722,24 +1769,23 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        eqOsPerformance.setTotalAvailableMemoryKb(deviceReport.getMemUtil().getMemTotal());
 | 
					        eqOsPerformance.setTotalAvailableMemoryKb(deviceReport.getMemUtil().getMemTotal());
 | 
				
			||||||
        status.setDetails(eqOsPerformance);
 | 
					        status.setDetails(eqOsPerformance);
 | 
				
			||||||
        status = statusServiceInterface.update(status);
 | 
					        status = statusServiceInterface.update(status);
 | 
				
			||||||
        LOG.debug("updated status {}", status);
 | 
					        LOG.info("updated status {}", status);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
					    void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
				
			||||||
            long locationId) {
 | 
					            long locationId) {
 | 
				
			||||||
        LOG.debug("populateApClientMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
					        LOG.info("populateApClientMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (ClientReport clReport : report.getClientsList()) {
 | 
					        for (ClientReport clReport : report.getClientsList()) {
 | 
				
			||||||
            for (Client cl : clReport.getClientListList()) {
 | 
					            for (Client cl : clReport.getClientListList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (cl.getMacAddress() == null) {
 | 
					                if (cl.getMacAddress() == null) {
 | 
				
			||||||
                    LOG.debug(
 | 
					                    LOG.info("No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
 | 
				
			||||||
                            "No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
 | 
					 | 
				
			||||||
                            cl);
 | 
					                            cl);
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("Processing ClientReport from AP {}", cl.getMacAddress());
 | 
					                LOG.info("Processing ClientReport from AP {}", cl.getMacAddress());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress()));
 | 
					                ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress()));
 | 
				
			||||||
                smr.setLocationId(locationId);
 | 
					                smr.setLocationId(locationId);
 | 
				
			||||||
@@ -1763,7 +1809,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                long sessionId = WiFiSessionUtility.encodeWiFiAssociationId(clReport.getTimestampMs() / 1000L,
 | 
					                long sessionId = WiFiSessionUtility.encodeWiFiAssociationId(clReport.getTimestampMs() / 1000L,
 | 
				
			||||||
                        MacAddress.convertMacStringToLongValue(cl.getMacAddress()));
 | 
					                        MacAddress.convertMacStringToLongValue(cl.getMacAddress()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("populateApClientMetrics Session Id {}", sessionId);
 | 
					                LOG.info("populateApClientMetrics Session Id {}", sessionId);
 | 
				
			||||||
                cMetrics.setSessionId(sessionId);
 | 
					                cMetrics.setSessionId(sessionId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (cl.hasStats()) {
 | 
					                if (cl.hasStats()) {
 | 
				
			||||||
@@ -1821,7 +1867,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("ApClientMetrics Report {}", cMetrics);
 | 
					                LOG.info("ApClientMetrics Report {}", cMetrics);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1831,7 +1877,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
					    void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
				
			||||||
            long equipmentId, long locationId) {
 | 
					            long equipmentId, long locationId) {
 | 
				
			||||||
        LOG.debug("populateNeighbourScanReports for Customer {} Equipment {}", customerId, equipmentId);
 | 
					        LOG.info("populateNeighbourScanReports for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (Neighbor neighbor : report.getNeighborsList()) {
 | 
					        for (Neighbor neighbor : report.getNeighborsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1974,7 +2020,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    latestClientSessionDetails.setDynamicVlan(ssidConfig.getVlanId());
 | 
					                    latestClientSessionDetails.setDynamicVlan(ssidConfig.getVlanId());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                RadioBasedSsidConfiguration radioConfig = ssidConfig.getRadioBasedConfigs().get(radioType);
 | 
					                RadioBasedSsidConfiguration radioConfig = ssidConfig.getRadioBasedConfigs().get(radioType);
 | 
				
			||||||
                latestClientSessionDetails
 | 
					                latestClientSessionDetails
 | 
				
			||||||
                        .setIs11KUsed(radioConfig.getEnable80211k() != null ? radioConfig.getEnable80211k() : false);
 | 
					                        .setIs11KUsed(radioConfig.getEnable80211k() != null ? radioConfig.getEnable80211k() : false);
 | 
				
			||||||
@@ -1992,7 +2037,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					            clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("Updated client session {}", clientSession);
 | 
					            LOG.info("Updated client session {}", clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return clientSession;
 | 
					            return clientSession;
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -2003,14 +2048,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ClientSessionMetricDetails calculateClientSessionMetricDetails(sts.OpensyncStats.Client client, long timestamp) {
 | 
					    ClientSessionMetricDetails calculateClientSessionMetricDetails(sts.OpensyncStats.Client client, long timestamp) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("calculateClientSessionMetricDetails for Client {} at timestamp {}", client.getMacAddress(),
 | 
					        LOG.info("calculateClientSessionMetricDetails for Client {} at timestamp {}", client.getMacAddress(),
 | 
				
			||||||
                timestamp);
 | 
					                timestamp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails();
 | 
					        ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (LOG.isDebugEnabled())
 | 
					        if (LOG.isDebugEnabled())
 | 
				
			||||||
            LOG.debug("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs());
 | 
					            LOG.info("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs());
 | 
				
			||||||
        int rssi = client.getStats().getRssi();
 | 
					        int rssi = client.getStats().getRssi();
 | 
				
			||||||
        metricDetails.setRssi(rssi);
 | 
					        metricDetails.setRssi(rssi);
 | 
				
			||||||
        metricDetails.setRxBytes(client.getStats().getRxBytes());
 | 
					        metricDetails.setRxBytes(client.getStats().getRxBytes());
 | 
				
			||||||
@@ -2028,7 +2072,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        metricDetails.setRxRateKbps((long) client.getStats().getRxRate());
 | 
					        metricDetails.setRxRateKbps((long) client.getStats().getRxRate());
 | 
				
			||||||
        metricDetails.setTxRateKbps((long) client.getStats().getTxRate());
 | 
					        metricDetails.setTxRateKbps((long) client.getStats().getTxRate());
 | 
				
			||||||
        if (LOG.isDebugEnabled())
 | 
					        if (LOG.isDebugEnabled())
 | 
				
			||||||
            LOG.debug("RxRateKbps {} TxRateKbps {}", metricDetails.getRxRateKbps(), metricDetails.getTxRateKbps());
 | 
					            LOG.info("RxRateKbps {} TxRateKbps {}", metricDetails.getRxRateKbps(), metricDetails.getTxRateKbps());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Throughput, do rate / duration
 | 
					        // Throughput, do rate / duration
 | 
				
			||||||
        if (client.getDurationMs() > 1000) {
 | 
					        if (client.getDurationMs() > 1000) {
 | 
				
			||||||
@@ -2041,12 +2085,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            float txBytesToMb = txBytesFv / 125000F;
 | 
					            float txBytesToMb = txBytesFv / 125000F;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (LOG.isDebugEnabled())
 | 
					            if (LOG.isDebugEnabled())
 | 
				
			||||||
                LOG.debug("rxBytesToMb {} txBytesToMb {} ", rxBytesToMb, txBytesToMb);
 | 
					                LOG.info("rxBytesToMb {} txBytesToMb {} ", rxBytesToMb, txBytesToMb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            metricDetails.setRxMbps(rxBytesToMb / durationSec);
 | 
					            metricDetails.setRxMbps(rxBytesToMb / durationSec);
 | 
				
			||||||
            metricDetails.setTxMbps(txBytesToMb / durationSec);
 | 
					            metricDetails.setTxMbps(txBytesToMb / durationSec);
 | 
				
			||||||
            if (LOG.isDebugEnabled())
 | 
					            if (LOG.isDebugEnabled())
 | 
				
			||||||
                LOG.debug("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps());
 | 
					                LOG.info("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            LOG.info("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms",
 | 
					            LOG.info("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms",
 | 
				
			||||||
@@ -2060,19 +2104,17 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
    void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
					    void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
				
			||||||
            String apId, long locationId) {
 | 
					            String apId, long locationId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("populateApSsidMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
					        LOG.info("populateApSsidMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
        ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
 | 
					        ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
 | 
				
			||||||
        smr.setLocationId(locationId);
 | 
					        smr.setLocationId(locationId);
 | 
				
			||||||
        ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
 | 
					        ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        smr.setDetails(apSsidMetrics);
 | 
					        smr.setDetails(apSsidMetrics);
 | 
				
			||||||
        metricRecordList.add(smr);
 | 
					        metricRecordList.add(smr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (ClientReport clientReport : report.getClientsList()) {
 | 
					        for (ClientReport clientReport : report.getClientsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand());
 | 
					            LOG.info("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (smr.getCreatedTimestamp() < clientReport.getTimestampMs()) {
 | 
					            if (smr.getCreatedTimestamp() < clientReport.getTimestampMs()) {
 | 
				
			||||||
                smr.setCreatedTimestamp(clientReport.getTimestampMs());
 | 
					                smr.setCreatedTimestamp(clientReport.getTimestampMs());
 | 
				
			||||||
@@ -2115,12 +2157,11 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            LOG.debug("Client Report Date is {}", new Date(clientReport.getTimestampMs()));
 | 
					            LOG.info("Client Report Date is {}", new Date(clientReport.getTimestampMs()));
 | 
				
			||||||
            int numConnectedClients = 0;
 | 
					            int numConnectedClients = 0;
 | 
				
			||||||
            for (Client client : clientReport.getClientListList()) {
 | 
					            for (Client client : clientReport.getClientListList()) {
 | 
				
			||||||
                if (client.hasStats()) {
 | 
					                if (client.hasStats()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    if (client.hasSsid()) {
 | 
					                    if (client.hasSsid()) {
 | 
				
			||||||
                        ssid = client.getSsid();
 | 
					                        ssid = client.getSsid();
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@@ -2145,7 +2186,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (client.hasConnected() && client.getConnected() && client.hasMacAddress()) {
 | 
					                        if (client.hasConnected() && client.getConnected() && client.hasMacAddress()) {
 | 
				
			||||||
                            // update metrics for connected client
 | 
					                            // update service_metrics_collection_config for
 | 
				
			||||||
 | 
					                            // connected client
 | 
				
			||||||
                            ClientSession session = handleClientSessionMetricsUpdate(customerId, equipmentId,
 | 
					                            ClientSession session = handleClientSessionMetricsUpdate(customerId, equipmentId,
 | 
				
			||||||
                                    locationId, radioType, clientReport.getTimestampMs(), client);
 | 
					                                    locationId, radioType, clientReport.getTimestampMs(), client);
 | 
				
			||||||
                            if (session != null) {
 | 
					                            if (session != null) {
 | 
				
			||||||
@@ -2155,7 +2197,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                            // Make sure, if we have a session for this client,
 | 
					                            // Make sure, if we have a session for this client,
 | 
				
			||||||
                            // it
 | 
					                            // it
 | 
				
			||||||
                            // shows disconnected.
 | 
					                            // shows disconnected.
 | 
				
			||||||
                            // update any metrics that need update if the
 | 
					                            // update any service_metrics_collection_config that
 | 
				
			||||||
 | 
					                            // need update if the
 | 
				
			||||||
                            // disconnect occured during this window
 | 
					                            // disconnect occured during this window
 | 
				
			||||||
                            if (client.hasMacAddress()) {
 | 
					                            if (client.hasMacAddress()) {
 | 
				
			||||||
                                ClientSession session = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
 | 
					                                ClientSession session = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
 | 
				
			||||||
@@ -2193,9 +2236,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                            continue; // not connected
 | 
					                            continue; // not connected
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    } catch (Exception e) {
 | 
					                    } catch (Exception e) {
 | 
				
			||||||
                        LOG.debug("Unabled to update client {} session {}", client, e);
 | 
					                        LOG.info("Unabled to update client {} session {}", client, e);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -2225,7 +2267,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("ApSsidMetrics {}", apSsidMetrics);
 | 
					        LOG.info("ApSsidMetrics {}", apSsidMetrics);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2267,7 +2309,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
    void populateChannelInfoReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
					    void populateChannelInfoReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
				
			||||||
            long equipmentId, long locationId, long profileId) {
 | 
					            long equipmentId, long locationId, long profileId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("populateChannelInfoReports for Customer {} Equipment {}", customerId, equipmentId);
 | 
					        LOG.info("populateChannelInfoReports for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ProfileContainer profileContainer = new ProfileContainer(
 | 
					        ProfileContainer profileContainer = new ProfileContainer(
 | 
				
			||||||
                profileServiceInterface.getProfileWithChildren(profileId));
 | 
					                profileServiceInterface.getProfileWithChildren(profileId));
 | 
				
			||||||
@@ -2327,20 +2369,17 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap);
 | 
					                channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap);
 | 
					            channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap);
 | 
				
			||||||
            smr.setDetails(channelInfoReports);
 | 
					            smr.setDetails(channelInfoReports);
 | 
				
			||||||
            smr.setCreatedTimestamp(survey.getTimestampMs());
 | 
					            smr.setCreatedTimestamp(survey.getTimestampMs());
 | 
				
			||||||
            metricRecordList.add(smr);
 | 
					            metricRecordList.add(smr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("ChannelInfoReports {}", channelInfoReports);
 | 
					            LOG.info("ChannelInfoReports {}", channelInfoReports);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    int getNegativeSignedIntFrom8BitUnsigned(int unsignedValue) {
 | 
					    int getNegativeSignedIntFrom8BitUnsigned(int unsignedValue) {
 | 
				
			||||||
        byte b = (byte) Integer.parseInt(Integer.toHexString(unsignedValue), 16);
 | 
					        byte b = (byte) Integer.parseInt(Integer.toHexString(unsignedValue), 16);
 | 
				
			||||||
        return b;
 | 
					        return b;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -697,7 +697,7 @@ public class OpensyncExternalIntegrationCloudTest {
 | 
				
			|||||||
        protocolStatus.setCustomerId(2);
 | 
					        protocolStatus.setCustomerId(2);
 | 
				
			||||||
        protocolStatus.setEquipmentId(1L);
 | 
					        protocolStatus.setEquipmentId(1L);
 | 
				
			||||||
        EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
 | 
					        EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
 | 
				
			||||||
        protocolStatusData.setReportedCC(CountryCode.ca);
 | 
					        protocolStatusData.setReportedCC(CountryCode.CA);
 | 
				
			||||||
        protocolStatus.setDetails(protocolStatusData);
 | 
					        protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
        protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
 | 
					        protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,11 +22,7 @@
 | 
				
			|||||||
			<artifactId>tip-wlan-opensync-protobuf</artifactId>
 | 
								<artifactId>tip-wlan-opensync-protobuf</artifactId>
 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
		</dependency>
 | 
							</dependency>
 | 
				
			||||||
		<dependency>
 | 
							
 | 
				
			||||||
			<artifactId>customer-models</artifactId>
 | 
					 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
					 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
					 | 
				
			||||||
		</dependency>
 | 
					 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<artifactId>equipment-models</artifactId>
 | 
								<artifactId>equipment-models</artifactId>
 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
@@ -47,11 +43,7 @@
 | 
				
			|||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
		</dependency>
 | 
							</dependency>
 | 
				
			||||||
		<dependency>
 | 
							
 | 
				
			||||||
			<artifactId>client-models</artifactId>
 | 
					 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
					 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
					 | 
				
			||||||
		</dependency>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<groupId>com.vmware.ovsdb</groupId>
 | 
								<groupId>com.vmware.ovsdb</groupId>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
  <dependencies>
 | 
					  <dependencies>
 | 
				
			||||||
  	<dependency>
 | 
					  	<dependency>
 | 
				
			||||||
  		<groupId>com.telecominfraproject.wlan</groupId>
 | 
					  		<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
  		<artifactId>opensync-ext-interface</artifactId>
 | 
					  		<artifactId>opensync-gateway</artifactId>
 | 
				
			||||||
  		<version>${tip-wlan-cloud.release.version}</version>
 | 
					  		<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
  	</dependency>
 | 
					  	</dependency>
 | 
				
			||||||
  </dependencies>
 | 
					  </dependencies>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "ca",
 | 
					    "countryCode" : "ca",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,50 +1,55 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 17,
 | 
						"id": 23,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
        "networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
        "equipmentType": "AP",
 | 
							"equipmentType": "AP",
 | 
				
			||||||
        "vlanNative": true,
 | 
							"vlanNative": true,
 | 
				
			||||||
        "vlan": 0,
 | 
							"vlan": 0,
 | 
				
			||||||
        "ntpServer": {
 | 
							"ntpServer": {
 | 
				
			||||||
            "model_type": "AutoOrManualString",
 | 
								"model_type": "AutoOrManualString",
 | 
				
			||||||
            "auto": true,
 | 
								"auto": true,
 | 
				
			||||||
            "value": "pool.ntp.org"
 | 
								"value": "pool.ntp.org"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "syslogRelay": null,
 | 
							"syslogRelay": null,
 | 
				
			||||||
        "rtlsSettings": null,
 | 
							"rtlsSettings": null,
 | 
				
			||||||
        "syntheticClientEnabled": true,
 | 
							"syntheticClientEnabled": true,
 | 
				
			||||||
        "ledControlEnabled": true,
 | 
							"ledControlEnabled": true,
 | 
				
			||||||
        "equipmentDiscovery": false,
 | 
							"equipmentDiscovery": false,
 | 
				
			||||||
        "radioMap": {
 | 
							"greTunnelName": null,
 | 
				
			||||||
            "is2dot4GHz": {
 | 
							"greParentIfName": null,
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
							"greLocalInetAddr": null,
 | 
				
			||||||
                "bestApEnabled": true,
 | 
							"greRemoteInetAddr": null,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
							"greRemoteMacAddr": null,
 | 
				
			||||||
            },
 | 
							"radioMap": {
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            }
 | 
								},
 | 
				
			||||||
        },
 | 
								"is5GHzL": {
 | 
				
			||||||
        "profileType": "equipment_ap"
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
    },
 | 
									"bestApEnabled": true,
 | 
				
			||||||
    "createdTimestamp": 1602182806348,
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806348,
 | 
								}
 | 
				
			||||||
    "childProfileIds": [
 | 
							},
 | 
				
			||||||
        2,
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
        5,
 | 
						},
 | 
				
			||||||
        11,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
        13
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
    ]
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
							16,
 | 
				
			||||||
 | 
							21,
 | 
				
			||||||
 | 
							22,
 | 
				
			||||||
 | 
							15
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,72 +1,72 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
    "id": 10,
 | 
					        "id": 24,
 | 
				
			||||||
    "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
    "profileType": "hotspot_2pt0",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
    "details": {
 | 
					        "details": {
 | 
				
			||||||
        "model_type": "Hotspot2Profile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
        "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
        "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
        "accessNetworkType": "free_public_network",
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
        "additionalStepsRequiredForAccess": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
        "deauthRequestTimeout": 0,
 | 
					            "termsAndConditionsFile": {
 | 
				
			||||||
        "operatingClass": 0,
 | 
					                "model_type": "ManagedFileInfo",
 | 
				
			||||||
        "termsAndConditionsFile": {
 | 
					                "md5checksum": null,
 | 
				
			||||||
            "model_type": "ManagedFileInfo",
 | 
					                "lastModifiedTimestamp": null,
 | 
				
			||||||
            "md5checksum": null,
 | 
					                "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
            "lastModifiedTimestamp": null,
 | 
					                "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
					                "fileType": "TEXT",
 | 
				
			||||||
            "fileCategory": "ExternalPolicyConfiguration",
 | 
					                "altSlot": false
 | 
				
			||||||
            "fileType": "TEXT",
 | 
					            },
 | 
				
			||||||
            "altSlot": false
 | 
					            "whitelistDomain": null,
 | 
				
			||||||
 | 
					            "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					            "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					            "internetConnectivity": true,
 | 
				
			||||||
 | 
					            "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
 | 
					            "qosMapSetConfiguration": null,
 | 
				
			||||||
 | 
					            "apGeospatialLocation": null,
 | 
				
			||||||
 | 
					            "apCivicLocation": null,
 | 
				
			||||||
 | 
					            "apPublicLocationIdUri": null,
 | 
				
			||||||
 | 
					            "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
				
			||||||
 | 
					            "anqpDomainId": 1234,
 | 
				
			||||||
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
 | 
					            "enable5GHz": true,
 | 
				
			||||||
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "whitelistDomain": null,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
        "emergencyServicesReachable": true,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "unauthenticatedEmergencyServiceAccessible": false,
 | 
					        "childProfileIds": [
 | 
				
			||||||
        "internetConnectivity": true,
 | 
					            17,
 | 
				
			||||||
        "connectionCapabilitySet": [
 | 
					            18,
 | 
				
			||||||
            {
 | 
					            19,
 | 
				
			||||||
                "model_type": "ConnectionCapability",
 | 
					            20
 | 
				
			||||||
                "connectionCapabilitiesPortNumber": 8888,
 | 
					 | 
				
			||||||
                "connectionCapabilitiesIpProtocol": "TCP",
 | 
					 | 
				
			||||||
                "connectionCapabilitiesStatus": "open"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					 | 
				
			||||||
        "qosMapSetConfiguration": null,
 | 
					 | 
				
			||||||
        "apGeospatialLocation": null,
 | 
					 | 
				
			||||||
        "apCivicLocation": null,
 | 
					 | 
				
			||||||
        "apPublicLocationIdUri": null,
 | 
					 | 
				
			||||||
        "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
					 | 
				
			||||||
        "anqpDomainId": 1234,
 | 
					 | 
				
			||||||
        "disableDownstreamGroupAddressedForwarding": false,
 | 
					 | 
				
			||||||
        "enable2pt4GHz": true,
 | 
					 | 
				
			||||||
        "enable5GHz": true,
 | 
					 | 
				
			||||||
        "associatedAccessSsidNames": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "osuSsidName": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
					 | 
				
			||||||
        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
					 | 
				
			||||||
        "idProviderProfileNames": [
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "profileType": "hotspot_2pt0",
 | 
					 | 
				
			||||||
        "associatedSsids": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    }
 | 
				
			||||||
    "createdTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "childProfileIds": [
 | 
					 | 
				
			||||||
        6,
 | 
					 | 
				
			||||||
        7,
 | 
					 | 
				
			||||||
        8,
 | 
					 | 
				
			||||||
        9
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,256 +1,270 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
    "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "id": 8,
 | 
							"id": 19,
 | 
				
			||||||
    "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
    "details": {
 | 
							"details": {
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
        "domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
        "mccMncList": [
 | 
								"mccMncList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
                "mcc": 302,
 | 
										"mcc": 302,
 | 
				
			||||||
                "mnc": 720,
 | 
										"mnc": 720,
 | 
				
			||||||
                "iso": "ca",
 | 
										"iso": "ca",
 | 
				
			||||||
                "country": "Canada",
 | 
										"country": "Canada",
 | 
				
			||||||
                "countryCode": 1,
 | 
										"countryCode": 1,
 | 
				
			||||||
                "network": "Rogers AT&T Wireless",
 | 
										"network": "Rogers AT&T Wireless",
 | 
				
			||||||
                "mccMncPairing": "302,720"
 | 
										"mccMncPairing": "302,720"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "naiRealmList": [
 | 
								"naiRealmList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                "naiRealms": [
 | 
										"naiRealms": [
 | 
				
			||||||
                    "rogers.com"
 | 
											"rogers.com"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "encoding": 0,
 | 
										"encoding": 0,
 | 
				
			||||||
                "eapMethods": [
 | 
										"eapMethods": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "eapMap": {
 | 
										"eapMap": {
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
												"Credential Type:username/password",
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
                    ],
 | 
											],
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                    ]
 | 
											]
 | 
				
			||||||
                }
 | 
										}
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuIconList": [
 | 
								"osuIconList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/rogers/",
 | 
								"osuServerUri": "https://example.com/osu/rogers",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example provider rogers",
 | 
										"dupleName": "Example provider rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example provider rogers"
 | 
										"asDuple": "eng:Example provider rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur rogers",
 | 
										"dupleName": "Exemple de fournisseur rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur rogers"
 | 
										"asDuple": "fra:Exemple de fournisseur rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@rogers.com",
 | 
								"osuNaiStandalone": "anonymous@rogers.com",
 | 
				
			||||||
        "osuNaiShared": "anonymous@rogers.com",
 | 
								"osuNaiShared": "anonymous@rogers.com",
 | 
				
			||||||
        "osuMethodList": [
 | 
								"osuMethodList": [
 | 
				
			||||||
            1,
 | 
									1,
 | 
				
			||||||
            0
 | 
									0
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example services rogers",
 | 
										"dupleName": "Example services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example services rogers"
 | 
										"asDuple": "eng:Example services rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemples de services rogers",
 | 
										"dupleName": "Exemples de services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemples de services rogers"
 | 
										"asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "profileType": "id_provider"
 | 
								"roamingOi": [
 | 
				
			||||||
    },
 | 
									1,
 | 
				
			||||||
    "createdTimestamp": 1602182805654,
 | 
									2,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805654,
 | 
									3,
 | 
				
			||||||
    "childProfileIds": []
 | 
									4
 | 
				
			||||||
},
 | 
								],
 | 
				
			||||||
{
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
    "model_type": "Profile",
 | 
							},
 | 
				
			||||||
    "id": 9,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
    "customerId": 2,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"childProfileIds": [
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
							]
 | 
				
			||||||
    "details": {
 | 
						},
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
						{
 | 
				
			||||||
        "domainName": "telus.com",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "mccMncList": [
 | 
							"id": 20,
 | 
				
			||||||
            {
 | 
							"customerId": 2,
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
                "mcc": 302,
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
                "mnc": 220,
 | 
							"details": {
 | 
				
			||||||
                "iso": "ca",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
                "country": "Canada",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
                "countryCode": 1,
 | 
								"mccMncList": [
 | 
				
			||||||
                "network": "Telus Mobility",
 | 
									{
 | 
				
			||||||
                "mccMncPairing": "302,220"
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
            }
 | 
										"mcc": 302,
 | 
				
			||||||
        ],
 | 
										"mnc": 220,
 | 
				
			||||||
        "naiRealmList": [
 | 
										"iso": "ca",
 | 
				
			||||||
            {
 | 
										"country": "Canada",
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"countryCode": 1,
 | 
				
			||||||
                "naiRealms": [
 | 
										"network": "Telus Mobility",
 | 
				
			||||||
                    "telus.com"
 | 
										"mccMncPairing": "302,220"
 | 
				
			||||||
                ],
 | 
									}
 | 
				
			||||||
                "encoding": 0,
 | 
								],
 | 
				
			||||||
                "eapMethods": [
 | 
								"naiRealmList": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
									{
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                ],
 | 
										"naiRealms": [
 | 
				
			||||||
                "eapMap": {
 | 
											"telus.com"
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
										],
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
										"encoding": 0,
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
										"eapMethods": [
 | 
				
			||||||
                    ],
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
										],
 | 
				
			||||||
                    ]
 | 
										"eapMap": {
 | 
				
			||||||
                }
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
            }
 | 
												"Credential Type:username/password",
 | 
				
			||||||
        ],
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
        "osuIconList": [
 | 
											],
 | 
				
			||||||
            {
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                "iconWidth": 32,
 | 
											]
 | 
				
			||||||
                "iconHeight": 32,
 | 
										}
 | 
				
			||||||
                "languageCode": "eng",
 | 
									}
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
								],
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
								"osuIconList": [
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            }
 | 
										"iconHeight": 32,
 | 
				
			||||||
        ],
 | 
										"languageCode": "eng",
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/telus/",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
            {
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									}
 | 
				
			||||||
                "dupleName": "Example provider telus",
 | 
								],
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								"osuServerUri": "https://example.com/osu/telus",
 | 
				
			||||||
                "asDuple": "eng:Example provider telus"
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example provider telus",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example provider telus"
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@telus.com",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
        "osuNaiShared": "anonymous@telus.com",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
        "osuMethodList": [
 | 
										"dupleName": "Exemple de fournisseur telus",
 | 
				
			||||||
            1,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
            0
 | 
										"asDuple": "fra:Exemple de fournisseur telus"
 | 
				
			||||||
        ],
 | 
									}
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								],
 | 
				
			||||||
            {
 | 
								"osuNaiStandalone": "anonymous@telus.com",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
								"osuNaiShared": "anonymous@telus.com",
 | 
				
			||||||
                "locale": "en_CA",
 | 
								"osuMethodList": [
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									1,
 | 
				
			||||||
                "dupleName": "Example services telus",
 | 
									0
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								],
 | 
				
			||||||
                "asDuple": "eng:Example services telus"
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example services telus",
 | 
				
			||||||
                "dupleName": "Exemples de services telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example services telus"
 | 
				
			||||||
                "asDuple": "fra:Exemples de services telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "profileType": "id_provider"
 | 
										"locale": "fr_CA",
 | 
				
			||||||
    },
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
    "createdTimestamp": 1602182805660,
 | 
										"dupleName": "Exemples de services telus",
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805660,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
    "childProfileIds": []
 | 
										"asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
}
 | 
									}
 | 
				
			||||||
    ]
 | 
								],
 | 
				
			||||||
 | 
								"roamingOi": [
 | 
				
			||||||
 | 
									1,
 | 
				
			||||||
 | 
									2,
 | 
				
			||||||
 | 
									3,
 | 
				
			||||||
 | 
									4
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"childProfileIds": [
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,298 +1,299 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 2,
 | 
							"id": 22,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "metrics",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
        "name": "Metrics-Profile-3-radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
            "radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
                "is5GHzU",
 | 
									"is5GHzL",
 | 
				
			||||||
                "is5GHzL",
 | 
									"is2dot4GHz",
 | 
				
			||||||
                "is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "serviceMetricDataTypes": [
 | 
								"serviceMetricDataTypes": [
 | 
				
			||||||
                "ApNode",
 | 
									"ApNode",
 | 
				
			||||||
                "ApSsid",
 | 
									"ApSsid",
 | 
				
			||||||
                "Client",
 | 
									"Client",
 | 
				
			||||||
                "Channel",
 | 
									"Channel",
 | 
				
			||||||
                "Neighbour"
 | 
									"Neighbour"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
                "ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Client": [
 | 
									"Client": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Channel": [
 | 
									"Channel": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ]
 | 
									]
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "metrics"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058699,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058699,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,36 +1,37 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 6,
 | 
							"id": 17,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "OperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
            "x509CertificateLocation": "/etc/ca.pem",
 | 
								"x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
            "operatorFriendlyName": [
 | 
								"operatorFriendlyName": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Default friendly operator name",
 | 
										"dupleName": "Default friendly passpoint_operator name",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "eng:Default friendly operator name"
 | 
										"asDuple": "eng:Default friendly passpoint_operator name"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Nom de l'opérateur convivial par défaut",
 | 
										"dupleName": "Nom de l'opérateur convivial par défaut",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
										"asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "profileType": "operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058719,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058719,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,204 +1,205 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 13,
 | 
						"id": 21,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
        "rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
            "is5GHz": {
 | 
								"is5GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
                "radioType": "is5GHz",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is2dot4GHz": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
                "radioType": "is2dot4GHz",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "radioMode": "modeN",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is20MHz",
 | 
									"channelBandwidth": "is20MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
										"dropInSnrPercentage": 20,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 50
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
                "radioType": "is5GHzU",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
                "radioType": "is5GHzL",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            }
 | 
								}
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1602182806063,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806063,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 5,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-hotspot-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
@@ -9,9 +9,8 @@
 | 
				
			|||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-hotspot-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzU",
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "wpa2PSK",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
@@ -21,6 +20,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -59,25 +59,23 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602113058718,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602113059547,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 11,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is2dot4GHz"
 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "open",
 | 
								"secureMode": "open",
 | 
				
			||||||
@@ -87,6 +85,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -125,10 +124,11 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602183994766,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602183994766,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								19,
 | 
				
			||||||
 | 
								20
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +1,43 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
    {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 7,
 | 
							"id": 18,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "VenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
            "venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Exemple de lieu",
 | 
										"dupleName": "Exemple de lieu",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-fra",
 | 
										"venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
                    "asDuple": "fra:Exemple de lieu"
 | 
										"asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Example venue",
 | 
										"dupleName": "Example passpoint_venue",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-eng",
 | 
										"venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
                    "asDuple": "eng:Example venue"
 | 
										"asDuple": "eng:Example passpoint_venue"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
                "model_type": "VenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
                "venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
                "venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
                "venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058725,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058725,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "ca",
 | 
					    "countryCode" : "ca",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "usa",
 | 
					    "countryCode" : "usa",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,50 +1,55 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 17,
 | 
						"id": 23,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
        "networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
        "equipmentType": "AP",
 | 
							"equipmentType": "AP",
 | 
				
			||||||
        "vlanNative": true,
 | 
							"vlanNative": true,
 | 
				
			||||||
        "vlan": 0,
 | 
							"vlan": 0,
 | 
				
			||||||
        "ntpServer": {
 | 
							"ntpServer": {
 | 
				
			||||||
            "model_type": "AutoOrManualString",
 | 
								"model_type": "AutoOrManualString",
 | 
				
			||||||
            "auto": true,
 | 
								"auto": true,
 | 
				
			||||||
            "value": "pool.ntp.org"
 | 
								"value": "pool.ntp.org"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "syslogRelay": null,
 | 
							"syslogRelay": null,
 | 
				
			||||||
        "rtlsSettings": null,
 | 
							"rtlsSettings": null,
 | 
				
			||||||
        "syntheticClientEnabled": true,
 | 
							"syntheticClientEnabled": true,
 | 
				
			||||||
        "ledControlEnabled": true,
 | 
							"ledControlEnabled": true,
 | 
				
			||||||
        "equipmentDiscovery": false,
 | 
							"equipmentDiscovery": false,
 | 
				
			||||||
        "radioMap": {
 | 
							"greTunnelName": null,
 | 
				
			||||||
            "is2dot4GHz": {
 | 
							"greParentIfName": null,
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
							"greLocalInetAddr": null,
 | 
				
			||||||
                "bestApEnabled": true,
 | 
							"greRemoteInetAddr": null,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
							"greRemoteMacAddr": null,
 | 
				
			||||||
            },
 | 
							"radioMap": {
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            }
 | 
								},
 | 
				
			||||||
        },
 | 
								"is5GHzL": {
 | 
				
			||||||
        "profileType": "equipment_ap"
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
    },
 | 
									"bestApEnabled": true,
 | 
				
			||||||
    "createdTimestamp": 1602182806348,
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806348,
 | 
								}
 | 
				
			||||||
    "childProfileIds": [
 | 
							},
 | 
				
			||||||
        2,
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
        5,
 | 
						},
 | 
				
			||||||
        11,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
        13
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
    ]
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
							16,
 | 
				
			||||||
 | 
							21,
 | 
				
			||||||
 | 
							22,
 | 
				
			||||||
 | 
							15
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,72 +1,72 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
    "id": 10,
 | 
					        "id": 24,
 | 
				
			||||||
    "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
    "profileType": "hotspot_2pt0",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
    "details": {
 | 
					        "details": {
 | 
				
			||||||
        "model_type": "Hotspot2Profile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
        "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
        "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
        "accessNetworkType": "free_public_network",
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
        "additionalStepsRequiredForAccess": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
        "deauthRequestTimeout": 0,
 | 
					            "termsAndConditionsFile": {
 | 
				
			||||||
        "operatingClass": 0,
 | 
					                "model_type": "ManagedFileInfo",
 | 
				
			||||||
        "termsAndConditionsFile": {
 | 
					                "md5checksum": null,
 | 
				
			||||||
            "model_type": "ManagedFileInfo",
 | 
					                "lastModifiedTimestamp": null,
 | 
				
			||||||
            "md5checksum": null,
 | 
					                "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
            "lastModifiedTimestamp": null,
 | 
					                "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
					                "fileType": "TEXT",
 | 
				
			||||||
            "fileCategory": "ExternalPolicyConfiguration",
 | 
					                "altSlot": false
 | 
				
			||||||
            "fileType": "TEXT",
 | 
					            },
 | 
				
			||||||
            "altSlot": false
 | 
					            "whitelistDomain": null,
 | 
				
			||||||
 | 
					            "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					            "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					            "internetConnectivity": true,
 | 
				
			||||||
 | 
					            "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
 | 
					            "qosMapSetConfiguration": null,
 | 
				
			||||||
 | 
					            "apGeospatialLocation": null,
 | 
				
			||||||
 | 
					            "apCivicLocation": null,
 | 
				
			||||||
 | 
					            "apPublicLocationIdUri": null,
 | 
				
			||||||
 | 
					            "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
				
			||||||
 | 
					            "anqpDomainId": 1234,
 | 
				
			||||||
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
 | 
					            "enable5GHz": true,
 | 
				
			||||||
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "whitelistDomain": null,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
        "emergencyServicesReachable": true,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "unauthenticatedEmergencyServiceAccessible": false,
 | 
					        "childProfileIds": [
 | 
				
			||||||
        "internetConnectivity": true,
 | 
					            17,
 | 
				
			||||||
        "connectionCapabilitySet": [
 | 
					            18,
 | 
				
			||||||
            {
 | 
					            19,
 | 
				
			||||||
                "model_type": "ConnectionCapability",
 | 
					            20
 | 
				
			||||||
                "connectionCapabilitiesPortNumber": 8888,
 | 
					 | 
				
			||||||
                "connectionCapabilitiesIpProtocol": "TCP",
 | 
					 | 
				
			||||||
                "connectionCapabilitiesStatus": "open"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					 | 
				
			||||||
        "qosMapSetConfiguration": null,
 | 
					 | 
				
			||||||
        "apGeospatialLocation": null,
 | 
					 | 
				
			||||||
        "apCivicLocation": null,
 | 
					 | 
				
			||||||
        "apPublicLocationIdUri": null,
 | 
					 | 
				
			||||||
        "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
					 | 
				
			||||||
        "anqpDomainId": 1234,
 | 
					 | 
				
			||||||
        "disableDownstreamGroupAddressedForwarding": false,
 | 
					 | 
				
			||||||
        "enable2pt4GHz": true,
 | 
					 | 
				
			||||||
        "enable5GHz": true,
 | 
					 | 
				
			||||||
        "associatedAccessSsidNames": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "osuSsidName": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
					 | 
				
			||||||
        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
					 | 
				
			||||||
        "idProviderProfileNames": [
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "profileType": "hotspot_2pt0",
 | 
					 | 
				
			||||||
        "associatedSsids": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    }
 | 
				
			||||||
    "createdTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "childProfileIds": [
 | 
					 | 
				
			||||||
        6,
 | 
					 | 
				
			||||||
        7,
 | 
					 | 
				
			||||||
        8,
 | 
					 | 
				
			||||||
        9
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,256 +1,270 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
    "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "id": 8,
 | 
							"id": 19,
 | 
				
			||||||
    "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
    "details": {
 | 
							"details": {
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
        "domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
        "mccMncList": [
 | 
								"mccMncList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
                "mcc": 302,
 | 
										"mcc": 302,
 | 
				
			||||||
                "mnc": 720,
 | 
										"mnc": 720,
 | 
				
			||||||
                "iso": "ca",
 | 
										"iso": "ca",
 | 
				
			||||||
                "country": "Canada",
 | 
										"country": "Canada",
 | 
				
			||||||
                "countryCode": 1,
 | 
										"countryCode": 1,
 | 
				
			||||||
                "network": "Rogers AT&T Wireless",
 | 
										"network": "Rogers AT&T Wireless",
 | 
				
			||||||
                "mccMncPairing": "302,720"
 | 
										"mccMncPairing": "302,720"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "naiRealmList": [
 | 
								"naiRealmList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                "naiRealms": [
 | 
										"naiRealms": [
 | 
				
			||||||
                    "rogers.com"
 | 
											"rogers.com"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "encoding": 0,
 | 
										"encoding": 0,
 | 
				
			||||||
                "eapMethods": [
 | 
										"eapMethods": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "eapMap": {
 | 
										"eapMap": {
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
												"Credential Type:username/password",
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
                    ],
 | 
											],
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                    ]
 | 
											]
 | 
				
			||||||
                }
 | 
										}
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuIconList": [
 | 
								"osuIconList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/rogers/",
 | 
								"osuServerUri": "https://example.com/osu/rogers",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example provider rogers",
 | 
										"dupleName": "Example provider rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example provider rogers"
 | 
										"asDuple": "eng:Example provider rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur rogers",
 | 
										"dupleName": "Exemple de fournisseur rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur rogers"
 | 
										"asDuple": "fra:Exemple de fournisseur rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@rogers.com",
 | 
								"osuNaiStandalone": "anonymous@rogers.com",
 | 
				
			||||||
        "osuNaiShared": "anonymous@rogers.com",
 | 
								"osuNaiShared": "anonymous@rogers.com",
 | 
				
			||||||
        "osuMethodList": [
 | 
								"osuMethodList": [
 | 
				
			||||||
            1,
 | 
									1,
 | 
				
			||||||
            0
 | 
									0
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example services rogers",
 | 
										"dupleName": "Example services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example services rogers"
 | 
										"asDuple": "eng:Example services rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemples de services rogers",
 | 
										"dupleName": "Exemples de services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemples de services rogers"
 | 
										"asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "profileType": "id_provider"
 | 
								"roamingOi": [
 | 
				
			||||||
    },
 | 
									1,
 | 
				
			||||||
    "createdTimestamp": 1602182805654,
 | 
									2,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805654,
 | 
									3,
 | 
				
			||||||
    "childProfileIds": []
 | 
									4
 | 
				
			||||||
},
 | 
								],
 | 
				
			||||||
{
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
    "model_type": "Profile",
 | 
							},
 | 
				
			||||||
    "id": 9,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
    "customerId": 2,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"childProfileIds": [
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
							]
 | 
				
			||||||
    "details": {
 | 
						},
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
						{
 | 
				
			||||||
        "domainName": "telus.com",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "mccMncList": [
 | 
							"id": 20,
 | 
				
			||||||
            {
 | 
							"customerId": 2,
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
                "mcc": 302,
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
                "mnc": 220,
 | 
							"details": {
 | 
				
			||||||
                "iso": "ca",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
                "country": "Canada",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
                "countryCode": 1,
 | 
								"mccMncList": [
 | 
				
			||||||
                "network": "Telus Mobility",
 | 
									{
 | 
				
			||||||
                "mccMncPairing": "302,220"
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
            }
 | 
										"mcc": 302,
 | 
				
			||||||
        ],
 | 
										"mnc": 220,
 | 
				
			||||||
        "naiRealmList": [
 | 
										"iso": "ca",
 | 
				
			||||||
            {
 | 
										"country": "Canada",
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"countryCode": 1,
 | 
				
			||||||
                "naiRealms": [
 | 
										"network": "Telus Mobility",
 | 
				
			||||||
                    "telus.com"
 | 
										"mccMncPairing": "302,220"
 | 
				
			||||||
                ],
 | 
									}
 | 
				
			||||||
                "encoding": 0,
 | 
								],
 | 
				
			||||||
                "eapMethods": [
 | 
								"naiRealmList": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
									{
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                ],
 | 
										"naiRealms": [
 | 
				
			||||||
                "eapMap": {
 | 
											"telus.com"
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
										],
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
										"encoding": 0,
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
										"eapMethods": [
 | 
				
			||||||
                    ],
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
										],
 | 
				
			||||||
                    ]
 | 
										"eapMap": {
 | 
				
			||||||
                }
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
            }
 | 
												"Credential Type:username/password",
 | 
				
			||||||
        ],
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
        "osuIconList": [
 | 
											],
 | 
				
			||||||
            {
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                "iconWidth": 32,
 | 
											]
 | 
				
			||||||
                "iconHeight": 32,
 | 
										}
 | 
				
			||||||
                "languageCode": "eng",
 | 
									}
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
								],
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
								"osuIconList": [
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            }
 | 
										"iconHeight": 32,
 | 
				
			||||||
        ],
 | 
										"languageCode": "eng",
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/telus/",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
            {
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									}
 | 
				
			||||||
                "dupleName": "Example provider telus",
 | 
								],
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								"osuServerUri": "https://example.com/osu/telus",
 | 
				
			||||||
                "asDuple": "eng:Example provider telus"
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example provider telus",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example provider telus"
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@telus.com",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
        "osuNaiShared": "anonymous@telus.com",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
        "osuMethodList": [
 | 
										"dupleName": "Exemple de fournisseur telus",
 | 
				
			||||||
            1,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
            0
 | 
										"asDuple": "fra:Exemple de fournisseur telus"
 | 
				
			||||||
        ],
 | 
									}
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								],
 | 
				
			||||||
            {
 | 
								"osuNaiStandalone": "anonymous@telus.com",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
								"osuNaiShared": "anonymous@telus.com",
 | 
				
			||||||
                "locale": "en_CA",
 | 
								"osuMethodList": [
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									1,
 | 
				
			||||||
                "dupleName": "Example services telus",
 | 
									0
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								],
 | 
				
			||||||
                "asDuple": "eng:Example services telus"
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example services telus",
 | 
				
			||||||
                "dupleName": "Exemples de services telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example services telus"
 | 
				
			||||||
                "asDuple": "fra:Exemples de services telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "profileType": "id_provider"
 | 
										"locale": "fr_CA",
 | 
				
			||||||
    },
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
    "createdTimestamp": 1602182805660,
 | 
										"dupleName": "Exemples de services telus",
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805660,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
    "childProfileIds": []
 | 
										"asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
}
 | 
									}
 | 
				
			||||||
    ]
 | 
								],
 | 
				
			||||||
 | 
								"roamingOi": [
 | 
				
			||||||
 | 
									1,
 | 
				
			||||||
 | 
									2,
 | 
				
			||||||
 | 
									3,
 | 
				
			||||||
 | 
									4
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"childProfileIds": [
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,298 +1,299 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 2,
 | 
							"id": 22,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "metrics",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
        "name": "Metrics-Profile-3-radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
            "radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
                "is5GHzU",
 | 
									"is5GHzL",
 | 
				
			||||||
                "is5GHzL",
 | 
									"is2dot4GHz",
 | 
				
			||||||
                "is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "serviceMetricDataTypes": [
 | 
								"serviceMetricDataTypes": [
 | 
				
			||||||
                "ApNode",
 | 
									"ApNode",
 | 
				
			||||||
                "ApSsid",
 | 
									"ApSsid",
 | 
				
			||||||
                "Client",
 | 
									"Client",
 | 
				
			||||||
                "Channel",
 | 
									"Channel",
 | 
				
			||||||
                "Neighbour"
 | 
									"Neighbour"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
                "ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Client": [
 | 
									"Client": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Channel": [
 | 
									"Channel": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ]
 | 
									]
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "metrics"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058699,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058699,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,36 +1,37 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 6,
 | 
							"id": 17,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "OperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
            "x509CertificateLocation": "/etc/ca.pem",
 | 
								"x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
            "operatorFriendlyName": [
 | 
								"operatorFriendlyName": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Default friendly operator name",
 | 
										"dupleName": "Default friendly passpoint_operator name",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "eng:Default friendly operator name"
 | 
										"asDuple": "eng:Default friendly passpoint_operator name"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Nom de l'opérateur convivial par défaut",
 | 
										"dupleName": "Nom de l'opérateur convivial par défaut",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
										"asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "profileType": "operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058719,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058719,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,204 +1,205 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 13,
 | 
						"id": 21,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
        "rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
            "is5GHz": {
 | 
								"is5GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
                "radioType": "is5GHz",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is2dot4GHz": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
                "radioType": "is2dot4GHz",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "radioMode": "modeN",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is20MHz",
 | 
									"channelBandwidth": "is20MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
										"dropInSnrPercentage": 20,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 50
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
                "radioType": "is5GHzU",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
                "radioType": "is5GHzL",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            }
 | 
								}
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1602182806063,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806063,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 5,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-hotspot-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
@@ -9,9 +9,8 @@
 | 
				
			|||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-hotspot-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzU",
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "wpa2PSK",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
@@ -21,6 +20,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -59,25 +59,23 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602113058718,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602113059547,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 11,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is2dot4GHz"
 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "open",
 | 
								"secureMode": "open",
 | 
				
			||||||
@@ -87,6 +85,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -125,10 +124,11 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602183994766,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602183994766,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								19,
 | 
				
			||||||
 | 
								20
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +1,43 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
    {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 7,
 | 
							"id": 18,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "VenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
            "venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Exemple de lieu",
 | 
										"dupleName": "Exemple de lieu",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-fra",
 | 
										"venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
                    "asDuple": "fra:Exemple de lieu"
 | 
										"asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Example venue",
 | 
										"dupleName": "Example passpoint_venue",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-eng",
 | 
										"venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
                    "asDuple": "eng:Example venue"
 | 
										"asDuple": "eng:Example passpoint_venue"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
                "model_type": "VenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
                "venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
                "venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
                "venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058725,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058725,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "ca",
 | 
					    "countryCode" : "ca",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "usa",
 | 
					    "countryCode" : "usa",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,50 +1,55 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 17,
 | 
						"id": 23,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
        "networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
        "equipmentType": "AP",
 | 
							"equipmentType": "AP",
 | 
				
			||||||
        "vlanNative": true,
 | 
							"vlanNative": true,
 | 
				
			||||||
        "vlan": 0,
 | 
							"vlan": 0,
 | 
				
			||||||
        "ntpServer": {
 | 
							"ntpServer": {
 | 
				
			||||||
            "model_type": "AutoOrManualString",
 | 
								"model_type": "AutoOrManualString",
 | 
				
			||||||
            "auto": true,
 | 
								"auto": true,
 | 
				
			||||||
            "value": "pool.ntp.org"
 | 
								"value": "pool.ntp.org"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "syslogRelay": null,
 | 
							"syslogRelay": null,
 | 
				
			||||||
        "rtlsSettings": null,
 | 
							"rtlsSettings": null,
 | 
				
			||||||
        "syntheticClientEnabled": true,
 | 
							"syntheticClientEnabled": true,
 | 
				
			||||||
        "ledControlEnabled": true,
 | 
							"ledControlEnabled": true,
 | 
				
			||||||
        "equipmentDiscovery": false,
 | 
							"equipmentDiscovery": false,
 | 
				
			||||||
        "radioMap": {
 | 
							"greTunnelName": null,
 | 
				
			||||||
            "is2dot4GHz": {
 | 
							"greParentIfName": null,
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
							"greLocalInetAddr": null,
 | 
				
			||||||
                "bestApEnabled": true,
 | 
							"greRemoteInetAddr": null,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
							"greRemoteMacAddr": null,
 | 
				
			||||||
            },
 | 
							"radioMap": {
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            }
 | 
								},
 | 
				
			||||||
        },
 | 
								"is5GHzL": {
 | 
				
			||||||
        "profileType": "equipment_ap"
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
    },
 | 
									"bestApEnabled": true,
 | 
				
			||||||
    "createdTimestamp": 1602182806348,
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806348,
 | 
								}
 | 
				
			||||||
    "childProfileIds": [
 | 
							},
 | 
				
			||||||
        2,
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
        5,
 | 
						},
 | 
				
			||||||
        11,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
        13
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
    ]
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
							16,
 | 
				
			||||||
 | 
							21,
 | 
				
			||||||
 | 
							22,
 | 
				
			||||||
 | 
							15
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,72 +1,72 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
    "id": 10,
 | 
					        "id": 24,
 | 
				
			||||||
    "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
    "profileType": "hotspot_2pt0",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
    "details": {
 | 
					        "details": {
 | 
				
			||||||
        "model_type": "Hotspot2Profile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
        "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
        "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
        "accessNetworkType": "free_public_network",
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
        "additionalStepsRequiredForAccess": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
        "deauthRequestTimeout": 0,
 | 
					            "termsAndConditionsFile": {
 | 
				
			||||||
        "operatingClass": 0,
 | 
					                "model_type": "ManagedFileInfo",
 | 
				
			||||||
        "termsAndConditionsFile": {
 | 
					                "md5checksum": null,
 | 
				
			||||||
            "model_type": "ManagedFileInfo",
 | 
					                "lastModifiedTimestamp": null,
 | 
				
			||||||
            "md5checksum": null,
 | 
					                "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
            "lastModifiedTimestamp": null,
 | 
					                "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
					                "fileType": "TEXT",
 | 
				
			||||||
            "fileCategory": "ExternalPolicyConfiguration",
 | 
					                "altSlot": false
 | 
				
			||||||
            "fileType": "TEXT",
 | 
					            },
 | 
				
			||||||
            "altSlot": false
 | 
					            "whitelistDomain": null,
 | 
				
			||||||
 | 
					            "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					            "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					            "internetConnectivity": true,
 | 
				
			||||||
 | 
					            "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
 | 
					            "qosMapSetConfiguration": null,
 | 
				
			||||||
 | 
					            "apGeospatialLocation": null,
 | 
				
			||||||
 | 
					            "apCivicLocation": null,
 | 
				
			||||||
 | 
					            "apPublicLocationIdUri": null,
 | 
				
			||||||
 | 
					            "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
				
			||||||
 | 
					            "anqpDomainId": 1234,
 | 
				
			||||||
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
 | 
					            "enable5GHz": true,
 | 
				
			||||||
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "whitelistDomain": null,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
        "emergencyServicesReachable": true,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "unauthenticatedEmergencyServiceAccessible": false,
 | 
					        "childProfileIds": [
 | 
				
			||||||
        "internetConnectivity": true,
 | 
					            17,
 | 
				
			||||||
        "connectionCapabilitySet": [
 | 
					            18,
 | 
				
			||||||
            {
 | 
					            19,
 | 
				
			||||||
                "model_type": "ConnectionCapability",
 | 
					            20
 | 
				
			||||||
                "connectionCapabilitiesPortNumber": 8888,
 | 
					 | 
				
			||||||
                "connectionCapabilitiesIpProtocol": "TCP",
 | 
					 | 
				
			||||||
                "connectionCapabilitiesStatus": "open"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					 | 
				
			||||||
        "qosMapSetConfiguration": null,
 | 
					 | 
				
			||||||
        "apGeospatialLocation": null,
 | 
					 | 
				
			||||||
        "apCivicLocation": null,
 | 
					 | 
				
			||||||
        "apPublicLocationIdUri": null,
 | 
					 | 
				
			||||||
        "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
					 | 
				
			||||||
        "anqpDomainId": 1234,
 | 
					 | 
				
			||||||
        "disableDownstreamGroupAddressedForwarding": false,
 | 
					 | 
				
			||||||
        "enable2pt4GHz": true,
 | 
					 | 
				
			||||||
        "enable5GHz": true,
 | 
					 | 
				
			||||||
        "associatedAccessSsidNames": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "osuSsidName": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
					 | 
				
			||||||
        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
					 | 
				
			||||||
        "idProviderProfileNames": [
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "profileType": "hotspot_2pt0",
 | 
					 | 
				
			||||||
        "associatedSsids": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    }
 | 
				
			||||||
    "createdTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "childProfileIds": [
 | 
					 | 
				
			||||||
        6,
 | 
					 | 
				
			||||||
        7,
 | 
					 | 
				
			||||||
        8,
 | 
					 | 
				
			||||||
        9
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,256 +1,270 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
    "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "id": 8,
 | 
							"id": 19,
 | 
				
			||||||
    "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
    "details": {
 | 
							"details": {
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
        "domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
        "mccMncList": [
 | 
								"mccMncList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
                "mcc": 302,
 | 
										"mcc": 302,
 | 
				
			||||||
                "mnc": 720,
 | 
										"mnc": 720,
 | 
				
			||||||
                "iso": "ca",
 | 
										"iso": "ca",
 | 
				
			||||||
                "country": "Canada",
 | 
										"country": "Canada",
 | 
				
			||||||
                "countryCode": 1,
 | 
										"countryCode": 1,
 | 
				
			||||||
                "network": "Rogers AT&T Wireless",
 | 
										"network": "Rogers AT&T Wireless",
 | 
				
			||||||
                "mccMncPairing": "302,720"
 | 
										"mccMncPairing": "302,720"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "naiRealmList": [
 | 
								"naiRealmList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                "naiRealms": [
 | 
										"naiRealms": [
 | 
				
			||||||
                    "rogers.com"
 | 
											"rogers.com"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "encoding": 0,
 | 
										"encoding": 0,
 | 
				
			||||||
                "eapMethods": [
 | 
										"eapMethods": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "eapMap": {
 | 
										"eapMap": {
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
												"Credential Type:username/password",
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
                    ],
 | 
											],
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                    ]
 | 
											]
 | 
				
			||||||
                }
 | 
										}
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuIconList": [
 | 
								"osuIconList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/rogers/",
 | 
								"osuServerUri": "https://example.com/osu/rogers",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example provider rogers",
 | 
										"dupleName": "Example provider rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example provider rogers"
 | 
										"asDuple": "eng:Example provider rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur rogers",
 | 
										"dupleName": "Exemple de fournisseur rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur rogers"
 | 
										"asDuple": "fra:Exemple de fournisseur rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@rogers.com",
 | 
								"osuNaiStandalone": "anonymous@rogers.com",
 | 
				
			||||||
        "osuNaiShared": "anonymous@rogers.com",
 | 
								"osuNaiShared": "anonymous@rogers.com",
 | 
				
			||||||
        "osuMethodList": [
 | 
								"osuMethodList": [
 | 
				
			||||||
            1,
 | 
									1,
 | 
				
			||||||
            0
 | 
									0
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example services rogers",
 | 
										"dupleName": "Example services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example services rogers"
 | 
										"asDuple": "eng:Example services rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemples de services rogers",
 | 
										"dupleName": "Exemples de services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemples de services rogers"
 | 
										"asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "profileType": "id_provider"
 | 
								"roamingOi": [
 | 
				
			||||||
    },
 | 
									1,
 | 
				
			||||||
    "createdTimestamp": 1602182805654,
 | 
									2,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805654,
 | 
									3,
 | 
				
			||||||
    "childProfileIds": []
 | 
									4
 | 
				
			||||||
},
 | 
								],
 | 
				
			||||||
{
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
    "model_type": "Profile",
 | 
							},
 | 
				
			||||||
    "id": 9,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
    "customerId": 2,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"childProfileIds": [
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
							]
 | 
				
			||||||
    "details": {
 | 
						},
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
						{
 | 
				
			||||||
        "domainName": "telus.com",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "mccMncList": [
 | 
							"id": 20,
 | 
				
			||||||
            {
 | 
							"customerId": 2,
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
                "mcc": 302,
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
                "mnc": 220,
 | 
							"details": {
 | 
				
			||||||
                "iso": "ca",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
                "country": "Canada",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
                "countryCode": 1,
 | 
								"mccMncList": [
 | 
				
			||||||
                "network": "Telus Mobility",
 | 
									{
 | 
				
			||||||
                "mccMncPairing": "302,220"
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
            }
 | 
										"mcc": 302,
 | 
				
			||||||
        ],
 | 
										"mnc": 220,
 | 
				
			||||||
        "naiRealmList": [
 | 
										"iso": "ca",
 | 
				
			||||||
            {
 | 
										"country": "Canada",
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"countryCode": 1,
 | 
				
			||||||
                "naiRealms": [
 | 
										"network": "Telus Mobility",
 | 
				
			||||||
                    "telus.com"
 | 
										"mccMncPairing": "302,220"
 | 
				
			||||||
                ],
 | 
									}
 | 
				
			||||||
                "encoding": 0,
 | 
								],
 | 
				
			||||||
                "eapMethods": [
 | 
								"naiRealmList": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
									{
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                ],
 | 
										"naiRealms": [
 | 
				
			||||||
                "eapMap": {
 | 
											"telus.com"
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
										],
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
										"encoding": 0,
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
										"eapMethods": [
 | 
				
			||||||
                    ],
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
										],
 | 
				
			||||||
                    ]
 | 
										"eapMap": {
 | 
				
			||||||
                }
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
            }
 | 
												"Credential Type:username/password",
 | 
				
			||||||
        ],
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
        "osuIconList": [
 | 
											],
 | 
				
			||||||
            {
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                "iconWidth": 32,
 | 
											]
 | 
				
			||||||
                "iconHeight": 32,
 | 
										}
 | 
				
			||||||
                "languageCode": "eng",
 | 
									}
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
								],
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
								"osuIconList": [
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            }
 | 
										"iconHeight": 32,
 | 
				
			||||||
        ],
 | 
										"languageCode": "eng",
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/telus/",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
            {
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									}
 | 
				
			||||||
                "dupleName": "Example provider telus",
 | 
								],
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								"osuServerUri": "https://example.com/osu/telus",
 | 
				
			||||||
                "asDuple": "eng:Example provider telus"
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example provider telus",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example provider telus"
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@telus.com",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
        "osuNaiShared": "anonymous@telus.com",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
        "osuMethodList": [
 | 
										"dupleName": "Exemple de fournisseur telus",
 | 
				
			||||||
            1,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
            0
 | 
										"asDuple": "fra:Exemple de fournisseur telus"
 | 
				
			||||||
        ],
 | 
									}
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								],
 | 
				
			||||||
            {
 | 
								"osuNaiStandalone": "anonymous@telus.com",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
								"osuNaiShared": "anonymous@telus.com",
 | 
				
			||||||
                "locale": "en_CA",
 | 
								"osuMethodList": [
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									1,
 | 
				
			||||||
                "dupleName": "Example services telus",
 | 
									0
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								],
 | 
				
			||||||
                "asDuple": "eng:Example services telus"
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example services telus",
 | 
				
			||||||
                "dupleName": "Exemples de services telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example services telus"
 | 
				
			||||||
                "asDuple": "fra:Exemples de services telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "profileType": "id_provider"
 | 
										"locale": "fr_CA",
 | 
				
			||||||
    },
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
    "createdTimestamp": 1602182805660,
 | 
										"dupleName": "Exemples de services telus",
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805660,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
    "childProfileIds": []
 | 
										"asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
}
 | 
									}
 | 
				
			||||||
    ]
 | 
								],
 | 
				
			||||||
 | 
								"roamingOi": [
 | 
				
			||||||
 | 
									1,
 | 
				
			||||||
 | 
									2,
 | 
				
			||||||
 | 
									3,
 | 
				
			||||||
 | 
									4
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"childProfileIds": [
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,298 +1,299 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 2,
 | 
							"id": 22,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "metrics",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
        "name": "Metrics-Profile-3-radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
            "radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
                "is5GHzU",
 | 
									"is5GHzL",
 | 
				
			||||||
                "is5GHzL",
 | 
									"is2dot4GHz",
 | 
				
			||||||
                "is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "serviceMetricDataTypes": [
 | 
								"serviceMetricDataTypes": [
 | 
				
			||||||
                "ApNode",
 | 
									"ApNode",
 | 
				
			||||||
                "ApSsid",
 | 
									"ApSsid",
 | 
				
			||||||
                "Client",
 | 
									"Client",
 | 
				
			||||||
                "Channel",
 | 
									"Channel",
 | 
				
			||||||
                "Neighbour"
 | 
									"Neighbour"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
                "ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Client": [
 | 
									"Client": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Channel": [
 | 
									"Channel": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ]
 | 
									]
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "metrics"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058699,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058699,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,36 +1,37 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 6,
 | 
							"id": 17,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "OperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
            "x509CertificateLocation": "/etc/ca.pem",
 | 
								"x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
            "operatorFriendlyName": [
 | 
								"operatorFriendlyName": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Default friendly operator name",
 | 
										"dupleName": "Default friendly passpoint_operator name",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "eng:Default friendly operator name"
 | 
										"asDuple": "eng:Default friendly passpoint_operator name"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Nom de l'opérateur convivial par défaut",
 | 
										"dupleName": "Nom de l'opérateur convivial par défaut",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
										"asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "profileType": "operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058719,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058719,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,204 +1,205 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 13,
 | 
						"id": 21,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
        "rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
            "is5GHz": {
 | 
								"is5GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
                "radioType": "is5GHz",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is2dot4GHz": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
                "radioType": "is2dot4GHz",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "radioMode": "modeN",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is20MHz",
 | 
									"channelBandwidth": "is20MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
										"dropInSnrPercentage": 20,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 50
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
                "radioType": "is5GHzU",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
                "radioType": "is5GHzL",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            }
 | 
								}
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1602182806063,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806063,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 5,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-hotspot-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
@@ -9,9 +9,8 @@
 | 
				
			|||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-hotspot-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzU",
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "wpa2PSK",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
@@ -21,6 +20,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -59,25 +59,23 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602113058718,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602113059547,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 11,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is2dot4GHz"
 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "open",
 | 
								"secureMode": "open",
 | 
				
			||||||
@@ -87,6 +85,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -125,10 +124,11 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602183994766,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602183994766,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								19,
 | 
				
			||||||
 | 
								20
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +1,43 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
    {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 7,
 | 
							"id": 18,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "VenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
            "venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Exemple de lieu",
 | 
										"dupleName": "Exemple de lieu",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-fra",
 | 
										"venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
                    "asDuple": "fra:Exemple de lieu"
 | 
										"asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Example venue",
 | 
										"dupleName": "Example passpoint_venue",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-eng",
 | 
										"venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
                    "asDuple": "eng:Example venue"
 | 
										"asDuple": "eng:Example passpoint_venue"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
                "model_type": "VenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
                "venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
                "venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
                "venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058725,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058725,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -15,11 +15,6 @@
 | 
				
			|||||||
	</properties>
 | 
						</properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<dependencies>
 | 
						<dependencies>
 | 
				
			||||||
		<dependency>
 | 
					 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
					 | 
				
			||||||
			<artifactId>opensync-gateway</artifactId>
 | 
					 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
					 | 
				
			||||||
		</dependency>
 | 
					 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
			<artifactId>opensync-ext-static</artifactId>
 | 
								<artifactId>opensync-ext-static</artifactId>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "ca",
 | 
					    "countryCode" : "ca",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,55 +10,48 @@
 | 
				
			|||||||
    "countryCode" : "usa",
 | 
					    "countryCode" : "usa",
 | 
				
			||||||
    "maintenanceWindow" : null,
 | 
					    "maintenanceWindow" : null,
 | 
				
			||||||
    "rrmEnabled" : true,
 | 
					    "rrmEnabled" : true,
 | 
				
			||||||
    "dailyRebalancingDetails" : {
 | 
					    "dailyActivityDetails" : {
 | 
				
			||||||
      "SUNDAY" : {
 | 
					      "SUNDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "MONDAY" : {
 | 
					      "MONDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "TUESDAY" : {
 | 
					      "TUESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "WEDNESDAY" : {
 | 
					      "WEDNESDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "THURSDAY" : {
 | 
					      "THURSDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "FRIDAY" : {
 | 
					      "FRIDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "SATURDAY" : {
 | 
					      "SATURDAY" : {
 | 
				
			||||||
        "model_type" : "LocationActivityDetails",
 | 
					        "model_type" : "LocationActivityDetails",
 | 
				
			||||||
        "busyTime" : "13:30",
 | 
					        "busyTime" : "13:30",
 | 
				
			||||||
        "quietTime" : "3:30",
 | 
					        "quietTime" : "3:30",
 | 
				
			||||||
        "timezone" : "US/Eastern",
 | 
					        "timezone" : "US/Eastern"
 | 
				
			||||||
        "lastBusySnapshot" : 0
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,50 +1,55 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 17,
 | 
						"id": 23,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
        "networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
        "equipmentType": "AP",
 | 
							"equipmentType": "AP",
 | 
				
			||||||
        "vlanNative": true,
 | 
							"vlanNative": true,
 | 
				
			||||||
        "vlan": 0,
 | 
							"vlan": 0,
 | 
				
			||||||
        "ntpServer": {
 | 
							"ntpServer": {
 | 
				
			||||||
            "model_type": "AutoOrManualString",
 | 
								"model_type": "AutoOrManualString",
 | 
				
			||||||
            "auto": true,
 | 
								"auto": true,
 | 
				
			||||||
            "value": "pool.ntp.org"
 | 
								"value": "pool.ntp.org"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "syslogRelay": null,
 | 
							"syslogRelay": null,
 | 
				
			||||||
        "rtlsSettings": null,
 | 
							"rtlsSettings": null,
 | 
				
			||||||
        "syntheticClientEnabled": true,
 | 
							"syntheticClientEnabled": true,
 | 
				
			||||||
        "ledControlEnabled": true,
 | 
							"ledControlEnabled": true,
 | 
				
			||||||
        "equipmentDiscovery": false,
 | 
							"equipmentDiscovery": false,
 | 
				
			||||||
        "radioMap": {
 | 
							"greTunnelName": null,
 | 
				
			||||||
            "is2dot4GHz": {
 | 
							"greParentIfName": null,
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
							"greLocalInetAddr": null,
 | 
				
			||||||
                "bestApEnabled": true,
 | 
							"greRemoteInetAddr": null,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
							"greRemoteMacAddr": null,
 | 
				
			||||||
            },
 | 
							"radioMap": {
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RadioProfileConfiguration",
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
                "bestApEnabled": true,
 | 
									"bestApEnabled": true,
 | 
				
			||||||
                "bestAPSteerType": "both"
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
            }
 | 
								},
 | 
				
			||||||
        },
 | 
								"is5GHzL": {
 | 
				
			||||||
        "profileType": "equipment_ap"
 | 
									"model_type": "RadioProfileConfiguration",
 | 
				
			||||||
    },
 | 
									"bestApEnabled": true,
 | 
				
			||||||
    "createdTimestamp": 1602182806348,
 | 
									"bestAPSteerType": "both"
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806348,
 | 
								}
 | 
				
			||||||
    "childProfileIds": [
 | 
							},
 | 
				
			||||||
        2,
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
        5,
 | 
						},
 | 
				
			||||||
        11,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
        13
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
    ]
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
							16,
 | 
				
			||||||
 | 
							21,
 | 
				
			||||||
 | 
							22,
 | 
				
			||||||
 | 
							15
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,72 +1,72 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
    "id": 10,
 | 
					        "id": 24,
 | 
				
			||||||
    "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
    "profileType": "hotspot_2pt0",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
    "details": {
 | 
					        "details": {
 | 
				
			||||||
        "model_type": "Hotspot2Profile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
        "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
        "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
        "accessNetworkType": "free_public_network",
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
        "additionalStepsRequiredForAccess": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
        "deauthRequestTimeout": 0,
 | 
					            "termsAndConditionsFile": {
 | 
				
			||||||
        "operatingClass": 0,
 | 
					                "model_type": "ManagedFileInfo",
 | 
				
			||||||
        "termsAndConditionsFile": {
 | 
					                "md5checksum": null,
 | 
				
			||||||
            "model_type": "ManagedFileInfo",
 | 
					                "lastModifiedTimestamp": null,
 | 
				
			||||||
            "md5checksum": null,
 | 
					                "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
            "lastModifiedTimestamp": null,
 | 
					                "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
					                "fileType": "TEXT",
 | 
				
			||||||
            "fileCategory": "ExternalPolicyConfiguration",
 | 
					                "altSlot": false
 | 
				
			||||||
            "fileType": "TEXT",
 | 
					            },
 | 
				
			||||||
            "altSlot": false
 | 
					            "whitelistDomain": null,
 | 
				
			||||||
 | 
					            "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					            "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					            "internetConnectivity": true,
 | 
				
			||||||
 | 
					            "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
 | 
					            "qosMapSetConfiguration": null,
 | 
				
			||||||
 | 
					            "apGeospatialLocation": null,
 | 
				
			||||||
 | 
					            "apCivicLocation": null,
 | 
				
			||||||
 | 
					            "apPublicLocationIdUri": null,
 | 
				
			||||||
 | 
					            "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
				
			||||||
 | 
					            "anqpDomainId": 1234,
 | 
				
			||||||
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
 | 
					            "enable5GHz": true,
 | 
				
			||||||
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "whitelistDomain": null,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
        "emergencyServicesReachable": true,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "unauthenticatedEmergencyServiceAccessible": false,
 | 
					        "childProfileIds": [
 | 
				
			||||||
        "internetConnectivity": true,
 | 
					            17,
 | 
				
			||||||
        "connectionCapabilitySet": [
 | 
					            18,
 | 
				
			||||||
            {
 | 
					            19,
 | 
				
			||||||
                "model_type": "ConnectionCapability",
 | 
					            20
 | 
				
			||||||
                "connectionCapabilitiesPortNumber": 8888,
 | 
					 | 
				
			||||||
                "connectionCapabilitiesIpProtocol": "TCP",
 | 
					 | 
				
			||||||
                "connectionCapabilitiesStatus": "open"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					 | 
				
			||||||
        "qosMapSetConfiguration": null,
 | 
					 | 
				
			||||||
        "apGeospatialLocation": null,
 | 
					 | 
				
			||||||
        "apCivicLocation": null,
 | 
					 | 
				
			||||||
        "apPublicLocationIdUri": null,
 | 
					 | 
				
			||||||
        "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
 | 
					 | 
				
			||||||
        "anqpDomainId": 1234,
 | 
					 | 
				
			||||||
        "disableDownstreamGroupAddressedForwarding": false,
 | 
					 | 
				
			||||||
        "enable2pt4GHz": true,
 | 
					 | 
				
			||||||
        "enable5GHz": true,
 | 
					 | 
				
			||||||
        "associatedAccessSsidNames": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "osuSsidName": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
					 | 
				
			||||||
        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
					 | 
				
			||||||
        "idProviderProfileNames": [
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
					 | 
				
			||||||
            "TipWlan-Hotspot20-OSU-Provider"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "profileType": "hotspot_2pt0",
 | 
					 | 
				
			||||||
        "associatedSsids": [
 | 
					 | 
				
			||||||
            "TipWlan-cloud-hotspot-access"
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    }
 | 
				
			||||||
    "createdTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806040,
 | 
					 | 
				
			||||||
    "childProfileIds": [
 | 
					 | 
				
			||||||
        6,
 | 
					 | 
				
			||||||
        7,
 | 
					 | 
				
			||||||
        8,
 | 
					 | 
				
			||||||
        9
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,256 +1,270 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
    "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "id": 8,
 | 
							"id": 19,
 | 
				
			||||||
    "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
    "details": {
 | 
							"details": {
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
        "domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
        "mccMncList": [
 | 
								"mccMncList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
                "mcc": 302,
 | 
										"mcc": 302,
 | 
				
			||||||
                "mnc": 720,
 | 
										"mnc": 720,
 | 
				
			||||||
                "iso": "ca",
 | 
										"iso": "ca",
 | 
				
			||||||
                "country": "Canada",
 | 
										"country": "Canada",
 | 
				
			||||||
                "countryCode": 1,
 | 
										"countryCode": 1,
 | 
				
			||||||
                "network": "Rogers AT&T Wireless",
 | 
										"network": "Rogers AT&T Wireless",
 | 
				
			||||||
                "mccMncPairing": "302,720"
 | 
										"mccMncPairing": "302,720"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "naiRealmList": [
 | 
								"naiRealmList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                "naiRealms": [
 | 
										"naiRealms": [
 | 
				
			||||||
                    "rogers.com"
 | 
											"rogers.com"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "encoding": 0,
 | 
										"encoding": 0,
 | 
				
			||||||
                "eapMethods": [
 | 
										"eapMethods": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                ],
 | 
										],
 | 
				
			||||||
                "eapMap": {
 | 
										"eapMap": {
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
												"Credential Type:username/password",
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
                    ],
 | 
											],
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                    ]
 | 
											]
 | 
				
			||||||
                }
 | 
										}
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuIconList": [
 | 
								"osuIconList": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconWidth": 32,
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"iconHeight": 32,
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/rogers/",
 | 
								"osuServerUri": "https://example.com/osu/rogers",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example provider rogers",
 | 
										"dupleName": "Example provider rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example provider rogers"
 | 
										"asDuple": "eng:Example provider rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur rogers",
 | 
										"dupleName": "Exemple de fournisseur rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur rogers"
 | 
										"asDuple": "fra:Exemple de fournisseur rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@rogers.com",
 | 
								"osuNaiStandalone": "anonymous@rogers.com",
 | 
				
			||||||
        "osuNaiShared": "anonymous@rogers.com",
 | 
								"osuNaiShared": "anonymous@rogers.com",
 | 
				
			||||||
        "osuMethodList": [
 | 
								"osuMethodList": [
 | 
				
			||||||
            1,
 | 
									1,
 | 
				
			||||||
            0
 | 
									0
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleName": "Example services rogers",
 | 
										"dupleName": "Example services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "eng:Example services rogers"
 | 
										"asDuple": "eng:Example services rogers"
 | 
				
			||||||
            },
 | 
									},
 | 
				
			||||||
            {
 | 
									{
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                "dupleName": "Exemples de services rogers",
 | 
										"dupleName": "Exemples de services rogers",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "asDuple": "fra:Exemples de services rogers"
 | 
										"asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
        ],
 | 
								],
 | 
				
			||||||
        "profileType": "id_provider"
 | 
								"roamingOi": [
 | 
				
			||||||
    },
 | 
									1,
 | 
				
			||||||
    "createdTimestamp": 1602182805654,
 | 
									2,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805654,
 | 
									3,
 | 
				
			||||||
    "childProfileIds": []
 | 
									4
 | 
				
			||||||
},
 | 
								],
 | 
				
			||||||
{
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
    "model_type": "Profile",
 | 
							},
 | 
				
			||||||
    "id": 9,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
    "customerId": 2,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
    "profileType": "id_provider",
 | 
							"childProfileIds": [
 | 
				
			||||||
    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
							]
 | 
				
			||||||
    "details": {
 | 
						},
 | 
				
			||||||
        "model_type": "Hotspot20IdProviderProfile",
 | 
						{
 | 
				
			||||||
        "domainName": "telus.com",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "mccMncList": [
 | 
							"id": 20,
 | 
				
			||||||
            {
 | 
							"customerId": 2,
 | 
				
			||||||
                "model_type": "MccMnc",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
                "mcc": 302,
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
                "mnc": 220,
 | 
							"details": {
 | 
				
			||||||
                "iso": "ca",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
                "country": "Canada",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
                "countryCode": 1,
 | 
								"mccMncList": [
 | 
				
			||||||
                "network": "Telus Mobility",
 | 
									{
 | 
				
			||||||
                "mccMncPairing": "302,220"
 | 
										"model_type": "PasspointMccMnc",
 | 
				
			||||||
            }
 | 
										"mcc": 302,
 | 
				
			||||||
        ],
 | 
										"mnc": 220,
 | 
				
			||||||
        "naiRealmList": [
 | 
										"iso": "ca",
 | 
				
			||||||
            {
 | 
										"country": "Canada",
 | 
				
			||||||
                "model_type": "NaiRealmInformation",
 | 
										"countryCode": 1,
 | 
				
			||||||
                "naiRealms": [
 | 
										"network": "Telus Mobility",
 | 
				
			||||||
                    "telus.com"
 | 
										"mccMncPairing": "302,220"
 | 
				
			||||||
                ],
 | 
									}
 | 
				
			||||||
                "encoding": 0,
 | 
								],
 | 
				
			||||||
                "eapMethods": [
 | 
								"naiRealmList": [
 | 
				
			||||||
                    "EAP-TTLS with username/password",
 | 
									{
 | 
				
			||||||
                    "EAP-TLS with certificate"
 | 
										"model_type": "PasspointNaiRealmInformation",
 | 
				
			||||||
                ],
 | 
										"naiRealms": [
 | 
				
			||||||
                "eapMap": {
 | 
											"telus.com"
 | 
				
			||||||
                    "EAP-TTLS with username/password": [
 | 
										],
 | 
				
			||||||
                        "Credential Type:username/password",
 | 
										"encoding": 0,
 | 
				
			||||||
                        "Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
										"eapMethods": [
 | 
				
			||||||
                    ],
 | 
											"EAP-TTLS with username/password",
 | 
				
			||||||
                    "EAP-TLS with certificate": [
 | 
											"EAP-TLS with certificate"
 | 
				
			||||||
                        "Credential Type:Certificate"
 | 
										],
 | 
				
			||||||
                    ]
 | 
										"eapMap": {
 | 
				
			||||||
                }
 | 
											"EAP-TTLS with username/password": [
 | 
				
			||||||
            }
 | 
												"Credential Type:username/password",
 | 
				
			||||||
        ],
 | 
												"Non-EAP Inner Authentication Type:MSCHAPV2"
 | 
				
			||||||
        "osuIconList": [
 | 
											],
 | 
				
			||||||
            {
 | 
											"EAP-TLS with certificate": [
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
												"Credential Type:Certificate"
 | 
				
			||||||
                "iconWidth": 32,
 | 
											]
 | 
				
			||||||
                "iconHeight": 32,
 | 
										}
 | 
				
			||||||
                "languageCode": "eng",
 | 
									}
 | 
				
			||||||
                "iconLocale": "en_CA",
 | 
								],
 | 
				
			||||||
                "iconName": "icon32eng",
 | 
								"osuIconList": [
 | 
				
			||||||
                "filePath": "/tmp/icon32eng.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32eng.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "eng",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "en_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32eng",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32eng.png",
 | 
				
			||||||
                "languageCode": "fra",
 | 
										"imageUrl": "https://localhost:9096/icon32eng.png",
 | 
				
			||||||
                "iconLocale": "fr_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
 | 
				
			||||||
                "iconName": "icon32fra",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32fra.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32fra.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            },
 | 
										"iconHeight": 32,
 | 
				
			||||||
            {
 | 
										"languageCode": "fra",
 | 
				
			||||||
                "model_type": "OsuIcon",
 | 
										"iconLocale": "fr_CA",
 | 
				
			||||||
                "iconWidth": 32,
 | 
										"iconName": "icon32fra",
 | 
				
			||||||
                "iconHeight": 32,
 | 
										"filePath": "/tmp/icon32fra.png",
 | 
				
			||||||
                "languageCode": "eng",
 | 
										"imageUrl": "https://localhost:9096/icon32fra.png",
 | 
				
			||||||
                "iconLocale": "en_US",
 | 
										"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
 | 
				
			||||||
                "iconName": "icon32usa",
 | 
									},
 | 
				
			||||||
                "filePath": "/tmp/icon32usa.png",
 | 
									{
 | 
				
			||||||
                "imageUrl": "https://localhost:9096/icon32usa.png",
 | 
										"model_type": "PasspointOsuIcon",
 | 
				
			||||||
                "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
										"iconWidth": 32,
 | 
				
			||||||
            }
 | 
										"iconHeight": 32,
 | 
				
			||||||
        ],
 | 
										"languageCode": "eng",
 | 
				
			||||||
        "osuServerUri": "https://example.com/osu/telus/",
 | 
										"iconLocale": "en_US",
 | 
				
			||||||
        "osuFriendlyName": [
 | 
										"iconName": "icon32usa",
 | 
				
			||||||
            {
 | 
										"filePath": "/tmp/icon32usa.png",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"imageUrl": "https://localhost:9096/icon32usa.png",
 | 
				
			||||||
                "locale": "en_CA",
 | 
										"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									}
 | 
				
			||||||
                "dupleName": "Example provider telus",
 | 
								],
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								"osuServerUri": "https://example.com/osu/telus",
 | 
				
			||||||
                "asDuple": "eng:Example provider telus"
 | 
								"osuFriendlyName": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example provider telus",
 | 
				
			||||||
                "dupleName": "Exemple de fournisseur telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example provider telus"
 | 
				
			||||||
                "asDuple": "fra:Exemple de fournisseur telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "osuNaiStandalone": "anonymous@telus.com",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
        "osuNaiShared": "anonymous@telus.com",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
        "osuMethodList": [
 | 
										"dupleName": "Exemple de fournisseur telus",
 | 
				
			||||||
            1,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
            0
 | 
										"asDuple": "fra:Exemple de fournisseur telus"
 | 
				
			||||||
        ],
 | 
									}
 | 
				
			||||||
        "osuServiceDescription": [
 | 
								],
 | 
				
			||||||
            {
 | 
								"osuNaiStandalone": "anonymous@telus.com",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
								"osuNaiShared": "anonymous@telus.com",
 | 
				
			||||||
                "locale": "en_CA",
 | 
								"osuMethodList": [
 | 
				
			||||||
                "dupleIso3Language": "eng",
 | 
									1,
 | 
				
			||||||
                "dupleName": "Example services telus",
 | 
									0
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
								],
 | 
				
			||||||
                "asDuple": "eng:Example services telus"
 | 
								"osuServiceDescription": [
 | 
				
			||||||
            },
 | 
									{
 | 
				
			||||||
            {
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                "model_type": "Hotspot20Duple",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                "locale": "fr_CA",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                "dupleIso3Language": "fra",
 | 
										"dupleName": "Example services telus",
 | 
				
			||||||
                "dupleName": "Exemples de services telus",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                "defaultDupleSeparator": ":",
 | 
										"asDuple": "eng:Example services telus"
 | 
				
			||||||
                "asDuple": "fra:Exemples de services telus"
 | 
									},
 | 
				
			||||||
            }
 | 
									{
 | 
				
			||||||
        ],
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
        "profileType": "id_provider"
 | 
										"locale": "fr_CA",
 | 
				
			||||||
    },
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
    "createdTimestamp": 1602182805660,
 | 
										"dupleName": "Exemples de services telus",
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182805660,
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
    "childProfileIds": []
 | 
										"asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
}
 | 
									}
 | 
				
			||||||
    ]
 | 
								],
 | 
				
			||||||
 | 
								"roamingOi": [
 | 
				
			||||||
 | 
									1,
 | 
				
			||||||
 | 
									2,
 | 
				
			||||||
 | 
									3,
 | 
				
			||||||
 | 
									4
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
 | 
							"childProfileIds": [
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,298 +1,299 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 2,
 | 
							"id": 22,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "metrics",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
        "name": "Metrics-Profile-3-radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
            "radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
                "is5GHzU",
 | 
									"is5GHzL",
 | 
				
			||||||
                "is5GHzL",
 | 
									"is2dot4GHz",
 | 
				
			||||||
                "is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "serviceMetricDataTypes": [
 | 
								"serviceMetricDataTypes": [
 | 
				
			||||||
                "ApNode",
 | 
									"ApNode",
 | 
				
			||||||
                "ApSsid",
 | 
									"ApSsid",
 | 
				
			||||||
                "Client",
 | 
									"Client",
 | 
				
			||||||
                "Channel",
 | 
									"Channel",
 | 
				
			||||||
                "Neighbour"
 | 
									"Neighbour"
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
                "ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
                        "serviceMetricDataType": "ApNode"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Client": [
 | 
									"Client": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "serviceMetricDataType": "Client"
 | 
											"serviceMetricDataType": "Client"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Channel": [
 | 
									"Channel": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
                        "serviceMetricDataType": "Channel"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ],
 | 
									],
 | 
				
			||||||
                "Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzU",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
                        "radioType": "is5GHzL",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    },
 | 
										},
 | 
				
			||||||
                    {
 | 
										{
 | 
				
			||||||
                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
                        "samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
                        "reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
                        "channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
                        "scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
                        "percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
                        "delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
                        "statsReportFormat": "RAW",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
                        "radioType": "is2dot4GHz",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
                        "serviceMetricDataType": "Neighbour"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
                    }
 | 
										}
 | 
				
			||||||
                ]
 | 
									]
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "metrics"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058699,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058699,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -1,36 +1,37 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 6,
 | 
							"id": 17,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "OperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
            "x509CertificateLocation": "/etc/ca.pem",
 | 
								"x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
            "operatorFriendlyName": [
 | 
								"operatorFriendlyName": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Default friendly operator name",
 | 
										"dupleName": "Default friendly passpoint_operator name",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "eng:Default friendly operator name"
 | 
										"asDuple": "eng:Default friendly passpoint_operator name"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "Hotspot20Duple",
 | 
										"model_type": "PasspointDuple",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Nom de l'opérateur convivial par défaut",
 | 
										"dupleName": "Nom de l'opérateur convivial par défaut",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
										"asDuple": "fra:Nom de l'opérateur convivial par défaut"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "profileType": "operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058719,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058719,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,204 +1,205 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 13,
 | 
						"id": 21,
 | 
				
			||||||
    "customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
    "profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
    "details": {
 | 
						"details": {
 | 
				
			||||||
        "model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
        "rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
            "is5GHz": {
 | 
								"is5GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
                "radioType": "is5GHz",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is2dot4GHz": {
 | 
								"is2dot4GHz": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
                "radioType": "is2dot4GHz",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "radioMode": "modeN",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is20MHz",
 | 
									"channelBandwidth": "is20MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 20,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 50
 | 
										"dropInSnrPercentage": 20,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 50
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzU": {
 | 
								"is5GHzU": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
                "radioType": "is5GHzU",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "is5GHzL": {
 | 
								"is5GHzL": {
 | 
				
			||||||
                "model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
                "radioType": "is5GHzL",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "radioMode": "modeAC",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
                "beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
                "forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
                "rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
                "channelBandwidth": "is80MHz",
 | 
									"channelBandwidth": "is80MHz",
 | 
				
			||||||
                "mimoMode": "twoByTwo",
 | 
									"mimoMode": "twoByTwo",
 | 
				
			||||||
                "maxNumClients": 100,
 | 
									"maxNumClients": 100,
 | 
				
			||||||
                "multicastRate": "auto",
 | 
									"autoChannelSelection": false,
 | 
				
			||||||
                "autoChannelSelection": false,
 | 
									"activeScanSettings": {
 | 
				
			||||||
                "activeScanSettings": {
 | 
										"model_type": "ActiveScanSettings",
 | 
				
			||||||
                    "model_type": "ActiveScanSettings",
 | 
										"enabled": true,
 | 
				
			||||||
                    "enabled": true,
 | 
										"scanFrequencySeconds": 10,
 | 
				
			||||||
                    "scanFrequencySeconds": 10,
 | 
										"scanDurationMillis": 65
 | 
				
			||||||
                    "scanDurationMillis": 65
 | 
									},
 | 
				
			||||||
                },
 | 
									"neighbouringListApConfig": {
 | 
				
			||||||
                "managementRate": "auto",
 | 
										"model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
                "rxCellSizeDb": -90,
 | 
										"minSignal": -85,
 | 
				
			||||||
                "probeResponseThresholdDb": -90,
 | 
										"maxAps": 25
 | 
				
			||||||
                "clientDisconnectThresholdDb": -90,
 | 
									},
 | 
				
			||||||
                "eirpTxPower": 18,
 | 
									"minAutoCellSize": -65,
 | 
				
			||||||
                "bestApEnabled": null,
 | 
									"perimeterDetectionEnabled": true,
 | 
				
			||||||
                "neighbouringListApConfig": {
 | 
									"channelHopSettings": {
 | 
				
			||||||
                    "model_type": "NeighbouringAPListConfiguration",
 | 
										"model_type": "ChannelHopSettings",
 | 
				
			||||||
                    "minSignal": -85,
 | 
										"noiseFloorThresholdInDB": -75,
 | 
				
			||||||
                    "maxAps": 25
 | 
										"noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
                },
 | 
										"nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
                "perimeterDetectionEnabled": true,
 | 
										"nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
                "channelHopSettings": {
 | 
										"obssHopMode": "NON_WIFI"
 | 
				
			||||||
                    "model_type": "ChannelHopSettings",
 | 
									},
 | 
				
			||||||
                    "noiseFloorThresholdInDB": -75,
 | 
									"bestApEnabled": null,
 | 
				
			||||||
                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
									"multicastRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdInPercentage": 50,
 | 
									"managementRate": "auto",
 | 
				
			||||||
                    "nonWifiThresholdTimeInSeconds": 180,
 | 
									"rxCellSizeDb": -90,
 | 
				
			||||||
                    "obssHopMode": "NON_WIFI"
 | 
									"probeResponseThresholdDb": -90,
 | 
				
			||||||
                },
 | 
									"clientDisconnectThresholdDb": -90,
 | 
				
			||||||
                "bestApSettings": {
 | 
									"eirpTxPower": 18,
 | 
				
			||||||
                    "model_type": "RadioBestApSettings",
 | 
									"bestApSettings": {
 | 
				
			||||||
                    "mlComputed": true,
 | 
										"model_type": "RadioBestApSettings",
 | 
				
			||||||
                    "dropInSnrPercentage": 30,
 | 
										"mlComputed": true,
 | 
				
			||||||
                    "minLoadFactor": 40
 | 
										"dropInSnrPercentage": 30,
 | 
				
			||||||
                },
 | 
										"minLoadFactor": 40
 | 
				
			||||||
                "minAutoCellSize": -65
 | 
									}
 | 
				
			||||||
            }
 | 
								}
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1602182806063,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1602182806063,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 5,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-hotspot-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
@@ -9,9 +9,8 @@
 | 
				
			|||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-hotspot-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzU",
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is5GHzU"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "wpa2PSK",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
@@ -21,6 +20,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -59,25 +59,23 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602113058718,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602113059547,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 11,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is2dot4GHz"
 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
			"secureMode": "open",
 | 
								"secureMode": "open",
 | 
				
			||||||
@@ -87,6 +85,7 @@
 | 
				
			|||||||
			"keyRefresh": 0,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -125,10 +124,11 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1602183994766,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1602183994766,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			10
 | 
								19,
 | 
				
			||||||
 | 
								20
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +1,43 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
    {
 | 
						{
 | 
				
			||||||
        "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
        "id": 7,
 | 
							"id": 18,
 | 
				
			||||||
        "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
        "profileType": "venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
        "name": "TipWlan-Hotspot20-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
        "details": {
 | 
							"details": {
 | 
				
			||||||
            "model_type": "VenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
            "venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "fr_CA",
 | 
										"locale": "fr_CA",
 | 
				
			||||||
                    "dupleIso3Language": "fra",
 | 
										"dupleIso3Language": "fra",
 | 
				
			||||||
                    "dupleName": "Exemple de lieu",
 | 
										"dupleName": "Exemple de lieu",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-fra",
 | 
										"venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
                    "asDuple": "fra:Exemple de lieu"
 | 
										"asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
                },
 | 
									},
 | 
				
			||||||
                {
 | 
									{
 | 
				
			||||||
                    "model_type": "VenueName",
 | 
										"model_type": "PasspointVenueName",
 | 
				
			||||||
                    "locale": "en_CA",
 | 
										"locale": "en_CA",
 | 
				
			||||||
                    "dupleIso3Language": "eng",
 | 
										"dupleIso3Language": "eng",
 | 
				
			||||||
                    "dupleName": "Example venue",
 | 
										"dupleName": "Example passpoint_venue",
 | 
				
			||||||
                    "defaultDupleSeparator": ":",
 | 
										"defaultDupleSeparator": ":",
 | 
				
			||||||
                    "venueUrl": "http://www.example.com/info-eng",
 | 
										"venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
                    "asDuple": "eng:Example venue"
 | 
										"asDuple": "eng:Example passpoint_venue"
 | 
				
			||||||
                }
 | 
									}
 | 
				
			||||||
            ],
 | 
								],
 | 
				
			||||||
            "venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
                "model_type": "VenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
                "venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
                "venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
                "venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
            },
 | 
								},
 | 
				
			||||||
            "profileType": "venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
        },
 | 
							},
 | 
				
			||||||
        "createdTimestamp": 1602113058725,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
        "lastModifiedTimestamp": 1602113058725,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
        "childProfileIds": []
 | 
							"childProfileIds": [
 | 
				
			||||||
    }
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -23,7 +23,16 @@
 | 
				
			|||||||
			<artifactId>opensync-ext-interface</artifactId>
 | 
								<artifactId>opensync-ext-interface</artifactId>
 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
		</dependency>
 | 
							</dependency>
 | 
				
			||||||
 | 
							<dependency>
 | 
				
			||||||
 | 
								<artifactId>client-models</artifactId>
 | 
				
			||||||
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
 | 
							</dependency>
 | 
				
			||||||
 | 
							<dependency>
 | 
				
			||||||
 | 
								<artifactId>customer-models</artifactId>
 | 
				
			||||||
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
 | 
							</dependency>
 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<groupId>com.vmware.ovsdb</groupId>
 | 
								<groupId>com.vmware.ovsdb</groupId>
 | 
				
			||||||
			<artifactId>ovsdb-client</artifactId>
 | 
								<artifactId>ovsdb-client</artifactId>
 | 
				
			||||||
@@ -37,12 +46,6 @@
 | 
				
			|||||||
		</dependency>
 | 
							</dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<!-- MQTT dependencies BEGIN -->
 | 
							<!-- MQTT dependencies BEGIN -->
 | 
				
			||||||
		<dependency>
 | 
					 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
					 | 
				
			||||||
			<artifactId>tip-wlan-opensync-protobuf</artifactId>
 | 
					 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
					 | 
				
			||||||
		</dependency>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<artifactId>service-metric-service-interface</artifactId>
 | 
								<artifactId>service-metric-service-interface</artifactId>
 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -196,16 +196,18 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
					        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (opensyncAPConfig != null) {
 | 
					        if (opensyncAPConfig != null) {
 | 
				
			||||||
            ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
					            // cleanup existing
 | 
				
			||||||
            ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
					            ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
            ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
 | 
					            ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
				
			||||||
            ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
					            ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
 | 
				
			||||||
            ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					            // reconfigure
 | 
				
			||||||
            ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureInterfaces(ovsdbClient);
 | 
					            ovsdbDao.configureInterfaces(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
					 | 
				
			||||||
            if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
					            if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
				
			||||||
                ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
					                ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -216,8 +218,8 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
					            ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
				
			||||||
            ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
					            ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
            ovsdbDao.removeAllSsids(ovsdbClient); // always
 | 
					 | 
				
			||||||
            ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
					            ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllSsids(ovsdbClient); // always
 | 
				
			||||||
            ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
 | 
					            ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -268,18 +270,17 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
            LOG.warn("AP with id " + apId + " does not have a config to apply.");
 | 
					            LOG.warn("AP with id " + apId + " does not have a config to apply.");
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
        ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
					        ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
				
			||||||
 | 
					        ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
				
			||||||
        ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
 | 
					        ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
 | 
				
			||||||
        ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.configureInterfaces(ovsdbClient);
 | 
					        ovsdbDao.configureInterfaces(ovsdbClient);
 | 
				
			||||||
 | 
					        ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
					 | 
				
			||||||
        if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
					        if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
				
			||||||
            ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -5,7 +5,7 @@ import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			|||||||
import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.metrics.ChannelUtilizationSurveyType;
 | 
					import com.telecominfraproject.wlan.profile.metrics.ServiceMetricsChannelUtilizationSurveyType;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
 | 
					import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType;
 | 
					import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeState;
 | 
					import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeState;
 | 
				
			||||||
@@ -83,7 +83,7 @@ public class OvsdbToWlanCloudTypeMappingUtility {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String getOvsdbStatsSurveyTypeFromProfileSurveyType(ChannelUtilizationSurveyType surveyType) {
 | 
					    public static String getOvsdbStatsSurveyTypeFromProfileSurveyType(ServiceMetricsChannelUtilizationSurveyType surveyType) {
 | 
				
			||||||
        switch (surveyType) {
 | 
					        switch (surveyType) {
 | 
				
			||||||
            case FULL:
 | 
					            case FULL:
 | 
				
			||||||
                return "full";
 | 
					                return "full";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
 | 
					package com.telecominfraproject.wlan.opensync.ovsdb.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.Assert.assertFalse;
 | 
				
			||||||
import static org.junit.Assert.assertNotNull;
 | 
					import static org.junit.Assert.assertNotNull;
 | 
				
			||||||
import static org.junit.Assert.assertNull;
 | 
					import static org.junit.Assert.assertNull;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -7,6 +8,7 @@ import java.net.InetAddress;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
import java.util.concurrent.CompletableFuture;
 | 
					import java.util.concurrent.CompletableFuture;
 | 
				
			||||||
@@ -32,13 +34,15 @@ import org.springframework.test.context.junit4.SpringRunner;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.google.common.collect.ImmutableList;
 | 
					import com.google.common.collect.ImmutableList;
 | 
				
			||||||
import com.google.common.collect.ImmutableMap;
 | 
					import com.google.common.collect.ImmutableMap;
 | 
				
			||||||
import com.telecominfraproject.wlan.customer.models.Customer;
 | 
					import com.telecominfraproject.wlan.location.models.Location;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.network.models.RadiusDetails;
 | 
				
			||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
 | 
					import com.vmware.ovsdb.exception.OvsdbClientException;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Atom;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Row;
 | 
				
			||||||
@@ -62,6 +66,8 @@ import com.vmware.ovsdb.service.OvsdbClient;
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
public class OvsdbDaoTest {
 | 
					public class OvsdbDaoTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static final int DEFAULT_CUSTOMER_ID = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final long HOTSPOT_CONFIG_ID = 1;
 | 
					    private static final long HOTSPOT_CONFIG_ID = 1;
 | 
				
			||||||
    private static final long HOTSPOT_PROVIDER_ID_1 = 2;
 | 
					    private static final long HOTSPOT_PROVIDER_ID_1 = 2;
 | 
				
			||||||
    private static final long HOTSPOT_PROVIDER_ID_2 = 3;
 | 
					    private static final long HOTSPOT_PROVIDER_ID_2 = 3;
 | 
				
			||||||
@@ -207,8 +213,60 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetRadiusConfiguration() throws Exception {
 | 
				
			||||||
 | 
					        OpensyncAPConfig apConfig = new OpensyncAPConfig();
 | 
				
			||||||
 | 
					        Profile profileRadius = OvsdbDaoTestUtilities.createRadiusProfile(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
 | 
					        apConfig.setRadiusProfiles(List.of(profileRadius));
 | 
				
			||||||
 | 
					        SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
 | 
					        ssidConfig.setRadiusServiceName("Radius-Profile");
 | 
				
			||||||
 | 
					        Map<String, String> security = new HashMap<>();
 | 
				
			||||||
 | 
					        Location location = new Location();
 | 
				
			||||||
 | 
					        location.setName("Ottawa");
 | 
				
			||||||
 | 
					        apConfig.setEquipmentLocation(location);
 | 
				
			||||||
 | 
					        ovsdbDao.getRadiusConfiguration(apConfig, ssidConfig, security);       
 | 
				
			||||||
 | 
					        assert (security.get("radius_server_ip").equals("192.168.0.1"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_server_port").equals("1812"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_server_secret").equals("testing123"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetRadiusAccountingConfiguration() throws Exception {
 | 
				
			||||||
 | 
					        OpensyncAPConfig apConfig = new OpensyncAPConfig();
 | 
				
			||||||
 | 
					        Profile profileRadius = OvsdbDaoTestUtilities.createRadiusProfile(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
 | 
					        apConfig.setRadiusProfiles(List.of(profileRadius));
 | 
				
			||||||
 | 
					        SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
 | 
					        ssidConfig.setRadiusAccountingServiceName("Radius-Profile");
 | 
				
			||||||
 | 
					        ssidConfig.setRadiusAcountingServiceInterval(60);
 | 
				
			||||||
 | 
					        Map<String, String> security = new HashMap<>();
 | 
				
			||||||
 | 
					        Location location = new Location();
 | 
				
			||||||
 | 
					        location.setName("Ottawa");
 | 
				
			||||||
 | 
					        apConfig.setEquipmentLocation(location);
 | 
				
			||||||
 | 
					        ovsdbDao.getRadiusAccountingConfiguration(apConfig, ssidConfig, security);
 | 
				
			||||||
 | 
					        assert (Integer.valueOf(security.get("radius_acct_interval"))
 | 
				
			||||||
 | 
					                .equals(ssidConfig.getRadiusAcountingServiceInterval()));
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_ip").equals("192.168.0.1"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_port").equals("1812"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_secret").equals("testing123"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetRadiusAccountingConfigurationNoAcctInterval() throws Exception {
 | 
				
			||||||
 | 
					        OpensyncAPConfig apConfig = new OpensyncAPConfig();
 | 
				
			||||||
 | 
					        Profile profileRadius = OvsdbDaoTestUtilities.createRadiusProfile(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
 | 
					        apConfig.setRadiusProfiles(List.of(profileRadius));
 | 
				
			||||||
 | 
					        SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
 | 
					        ssidConfig.setRadiusAccountingServiceName("Radius-Profile");
 | 
				
			||||||
 | 
					        Map<String, String> security = new HashMap<>();
 | 
				
			||||||
 | 
					        Location location = new Location();
 | 
				
			||||||
 | 
					        location.setName("Ottawa");
 | 
				
			||||||
 | 
					        apConfig.setEquipmentLocation(location);
 | 
				
			||||||
 | 
					        ovsdbDao.getRadiusAccountingConfiguration(apConfig, ssidConfig, security);
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_interval").equals("0"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_ip").equals("192.168.0.1"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_port").equals("1812"));
 | 
				
			||||||
 | 
					        assert (security.get("radius_acct_secret").equals("testing123"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testConfigureHotspots() throws Exception {
 | 
					    public void testConfigureHotspots() throws Exception {
 | 
				
			||||||
@@ -225,36 +283,35 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        OpensyncAPConfig apConfig = new OpensyncAPConfig();
 | 
					        OpensyncAPConfig apConfig = new OpensyncAPConfig();
 | 
				
			||||||
        OpensyncAPHotspot20Config hsConfig = new OpensyncAPHotspot20Config();
 | 
					        OpensyncAPHotspot20Config hsConfig = new OpensyncAPHotspot20Config();
 | 
				
			||||||
        Customer customer = new Customer();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile profileSsidPsk = OvsdbDaoTestUtilities.createPasspointAccessSsid(customer);
 | 
					        Profile profileSsidPsk = OvsdbDaoTestUtilities.createPasspointAccessSsid(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
        profileSsidPsk.setId(SSID_PSK_ID);
 | 
					        profileSsidPsk.setId(SSID_PSK_ID);
 | 
				
			||||||
        Profile profileSsidOsu = OvsdbDaoTestUtilities.createPasspointOsuSsid(customer);
 | 
					        Profile profileSsidOsu = OvsdbDaoTestUtilities.createPasspointOsuSsid(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
        profileSsidOsu.setId(SSID_OSU_ID);
 | 
					        profileSsidOsu.setId(SSID_OSU_ID);
 | 
				
			||||||
        Profile passpointOperatorProfile = OvsdbDaoTestUtilities.createPasspointOperatorProfile(customer);
 | 
					        Profile passpointOperatorProfile = OvsdbDaoTestUtilities.createPasspointOperatorProfile(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
        passpointOperatorProfile.setId(OPERATOR_ID);
 | 
					        passpointOperatorProfile.setId(OPERATOR_ID);
 | 
				
			||||||
        Profile passpointVenueProfile = OvsdbDaoTestUtilities.createPasspointVenueProfile(customer);
 | 
					        Profile passpointVenueProfile = OvsdbDaoTestUtilities.createPasspointVenueProfile(DEFAULT_CUSTOMER_ID);
 | 
				
			||||||
        passpointVenueProfile.setId(VENUE_ID);
 | 
					        passpointVenueProfile.setId(VENUE_ID);
 | 
				
			||||||
        Profile hotspot20IdProviderProfile = new Profile();
 | 
					        Profile hotspot20IdProviderProfile = new Profile();
 | 
				
			||||||
        hotspot20IdProviderProfile.setId(HOTSPOT_PROVIDER_ID_1);
 | 
					        hotspot20IdProviderProfile.setId(HOTSPOT_PROVIDER_ID_1);
 | 
				
			||||||
        hotspot20IdProviderProfile = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(customer,
 | 
					        hotspot20IdProviderProfile = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(DEFAULT_CUSTOMER_ID,
 | 
				
			||||||
                hotspot20IdProviderProfile, "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca",
 | 
					                hotspot20IdProviderProfile, "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca",
 | 
				
			||||||
                302, 720, "rogers.com", 1);
 | 
					                302, 720, "rogers.com", 1);
 | 
				
			||||||
        Profile hotspot20IdProviderProfile2 = new Profile();
 | 
					        Profile hotspot20IdProviderProfile2 = new Profile();
 | 
				
			||||||
        hotspot20IdProviderProfile2.setId(HOTSPOT_PROVIDER_ID_2);
 | 
					        hotspot20IdProviderProfile2.setId(HOTSPOT_PROVIDER_ID_2);
 | 
				
			||||||
        hotspot20IdProviderProfile2 = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(customer,
 | 
					        hotspot20IdProviderProfile2 = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(DEFAULT_CUSTOMER_ID,
 | 
				
			||||||
                hotspot20IdProviderProfile2, "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302,
 | 
					                hotspot20IdProviderProfile2, "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302,
 | 
				
			||||||
                220, "telus.com", 1);
 | 
					                220, "telus.com", 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
 | 
					        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
 | 
				
			||||||
        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
 | 
					        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile passpointHotspotConfig = OvsdbDaoTestUtilities.createPasspointHotspotConfig(customer,
 | 
					        Profile passpointHotspotConfig = OvsdbDaoTestUtilities.createPasspointHotspotConfig(DEFAULT_CUSTOMER_ID,
 | 
				
			||||||
                hotspot20IdProviderProfile2, hotspot20IdProviderProfile, passpointOperatorProfile,
 | 
					                hotspot20IdProviderProfile2, hotspot20IdProviderProfile, passpointOperatorProfile,
 | 
				
			||||||
                passpointVenueProfile, profileSsidPsk, profileSsidOsu);
 | 
					                passpointVenueProfile, profileSsidPsk, profileSsidOsu);
 | 
				
			||||||
        passpointHotspotConfig.setId(HOTSPOT_CONFIG_ID);
 | 
					        passpointHotspotConfig.setId(HOTSPOT_CONFIG_ID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile hotspotProfileAp = OvsdbDaoTestUtilities.createPasspointApProfile(customer, profileSsidPsk,
 | 
					        Profile hotspotProfileAp = OvsdbDaoTestUtilities.createPasspointApProfile(DEFAULT_CUSTOMER_ID, profileSsidPsk,
 | 
				
			||||||
                profileSsidOsu);
 | 
					                profileSsidOsu);
 | 
				
			||||||
        hotspotProfileAp.setId(EQUIPMENT_AP_ID);
 | 
					        hotspotProfileAp.setId(EQUIPMENT_AP_ID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -269,10 +326,13 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        apConfig.setSsidProfile(List.of(profileSsidOsu, profileSsidPsk));
 | 
					        apConfig.setSsidProfile(List.of(profileSsidOsu, profileSsidPsk));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Mockito.when(futureResult.get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS))).thenReturn(OvsdbDaoTestUtilities.hs20IconRows())
 | 
					        Mockito.when(futureResult.get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS)))
 | 
				
			||||||
                .thenReturn(OvsdbDaoTestUtilities.hs20InsertIconRows()).thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.hs20IconRows())
 | 
					                .thenReturn(OvsdbDaoTestUtilities.hs20IconRows()).thenReturn(OvsdbDaoTestUtilities.hs20InsertIconRows())
 | 
				
			||||||
                .thenReturn(OvsdbDaoTestUtilities.hs20IconRows()).thenReturn(OvsdbDaoTestUtilities.hs20InsertProviderRows()).thenReturn(OvsdbDaoTestUtilities.hs20Config())
 | 
					                .thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.hs20IconRows())
 | 
				
			||||||
                .thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows())
 | 
					                .thenReturn(OvsdbDaoTestUtilities.hs20IconRows())
 | 
				
			||||||
 | 
					                .thenReturn(OvsdbDaoTestUtilities.hs20InsertProviderRows())
 | 
				
			||||||
 | 
					                .thenReturn(OvsdbDaoTestUtilities.hs20Config()).thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders())
 | 
				
			||||||
 | 
					                .thenReturn(OvsdbDaoTestUtilities.vifConfigRows()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows())
 | 
				
			||||||
                .thenReturn(OvsdbDaoTestUtilities.hs20Config());
 | 
					                .thenReturn(OvsdbDaoTestUtilities.hs20Config());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult);
 | 
					        Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult);
 | 
				
			||||||
@@ -283,7 +343,6 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testConfigureGreTunnelsWithNoLocalAddress() throws Exception {
 | 
					    public void testConfigureGreTunnelsWithNoLocalAddress() throws Exception {
 | 
				
			||||||
        List<Row> rows = new ArrayList<>();
 | 
					        List<Row> rows = new ArrayList<>();
 | 
				
			||||||
@@ -692,9 +751,7 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    static Row[] hs20Icons = {
 | 
					    static Row[] hs20Icons = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
 | 
					package com.telecominfraproject.wlan.opensync.ovsdb.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.net.InetAddress;
 | 
				
			||||||
 | 
					import java.net.UnknownHostException;
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
@@ -14,14 +16,17 @@ import com.telecominfraproject.wlan.customer.models.Customer;
 | 
				
			|||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.hotspot.models.Hotspot2Profile;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.PasspointDuple;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.models.Hotspot20Duple;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.PasspointMccMnc;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.models.MccMnc;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.PasspointProfile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.operator.models.OperatorProfile;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.operator.PasspointOperatorProfile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.provider.models.Hotspot20IdProviderProfile;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmInformation;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.provider.models.NaiRealmInformation;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuIcon;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.provider.models.OsuIcon;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuProviderProfile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.passpoint.venue.models.VenueProfile;
 | 
					import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueProfile;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.radius.models.RadiusProfile;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.radius.models.RadiusServer;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.radius.models.RadiusServiceRegion;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
 | 
				
			||||||
@@ -38,79 +43,78 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Static creation of Profiles and Results to use with the OvsdbDao JUnit tests.
 | 
					    // Static creation of Profiles and Results to use with the OvsdbDao JUnit tests.
 | 
				
			||||||
 | 
					    static void createPasspointHotspot(int customerId, Profile passpointHotspotConfig,
 | 
				
			||||||
    static void createPasspointHotspot(Customer customer, Profile passpointHotspotConfig,
 | 
					 | 
				
			||||||
            Profile passpointOperatorProfile, Profile passpointVenueProfile, Profile hotspot20IdProviderProfile,
 | 
					            Profile passpointOperatorProfile, Profile passpointVenueProfile, Profile hotspot20IdProviderProfile,
 | 
				
			||||||
            Profile hotspot20IdProviderProfile2, Profile profileSsidPsk, Profile profileSsidOsu,
 | 
					            Profile hotspot20IdProviderProfile2, Profile profileSsidPsk, Profile profileSsidOsu,
 | 
				
			||||||
            Profile hotspotProfileAp) {
 | 
					            Profile hotspotProfileAp) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        profileSsidPsk = createPasspointAccessSsid(customer);
 | 
					        profileSsidPsk = createPasspointAccessSsid(customerId);
 | 
				
			||||||
        profileSsidOsu = createPasspointOsuSsid(customer);
 | 
					        profileSsidOsu = createPasspointOsuSsid(customerId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointOperatorProfile = createPasspointOperatorProfile(customer);
 | 
					        passpointOperatorProfile = createPasspointOperatorProfile(customerId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointVenueProfile = createPasspointVenueProfile(customer);
 | 
					        passpointVenueProfile = createPasspointVenueProfile(customerId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hotspot20IdProviderProfile = createPasspointIdProviderProfile(customer, hotspot20IdProviderProfile,
 | 
					        hotspot20IdProviderProfile = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile,
 | 
				
			||||||
                "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1);
 | 
					                "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customer, hotspot20IdProviderProfile2,
 | 
					        hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile2,
 | 
				
			||||||
                "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1);
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
 | 
					        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
 | 
				
			||||||
        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
 | 
					        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointHotspotConfig = createPasspointHotspotConfig(customer, hotspot20IdProviderProfile2,
 | 
					        passpointHotspotConfig = createPasspointHotspotConfig(customerId, hotspot20IdProviderProfile2,
 | 
				
			||||||
                hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk,
 | 
					                hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk,
 | 
				
			||||||
                profileSsidOsu);
 | 
					                profileSsidOsu);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hotspotProfileAp = createPasspointApProfile(customer, profileSsidPsk, profileSsidOsu);
 | 
					        hotspotProfileAp = createPasspointApProfile(customerId, profileSsidPsk, profileSsidOsu);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointHotspotConfig(Customer customer, Profile hotspot20IdProviderProfile2,
 | 
					    static Profile createPasspointHotspotConfig(int customerId, Profile hotspot20IdProviderProfile2,
 | 
				
			||||||
            Profile hotspot20IdProviderProfile, Profile passpointOperatorProfile, Profile passpointVenueProfile,
 | 
					            Profile hotspot20IdProviderProfile, Profile passpointOperatorProfile, Profile passpointVenueProfile,
 | 
				
			||||||
            Profile profileSsidPsk, Profile profileSsidOpen) {
 | 
					            Profile profileSsidPsk, Profile profileSsidOpen) {
 | 
				
			||||||
        Profile passpointHotspotConfig;
 | 
					        Profile passpointHotspotConfig;
 | 
				
			||||||
        passpointHotspotConfig = new Profile();
 | 
					        passpointHotspotConfig = new Profile();
 | 
				
			||||||
        passpointHotspotConfig.setCustomerId(customer.getId());
 | 
					        passpointHotspotConfig.setCustomerId(customerId);
 | 
				
			||||||
        passpointHotspotConfig.setName("TipWlan-Hotspot20-Config");
 | 
					        passpointHotspotConfig.setName("TipWlan-Hotspot20-Config");
 | 
				
			||||||
        passpointHotspotConfig.setProfileType(ProfileType.hotspot_2pt0);
 | 
					        passpointHotspotConfig.setProfileType(ProfileType.passpoint);
 | 
				
			||||||
        Set<Long> passpointHotspotConfigChildIds = new HashSet<>();
 | 
					        Set<Long> passpointHotspotConfigChildIds = new HashSet<>();
 | 
				
			||||||
        passpointHotspotConfigChildIds.add(passpointOperatorProfile.getId());
 | 
					        passpointHotspotConfigChildIds.add(passpointOperatorProfile.getId());
 | 
				
			||||||
        passpointHotspotConfigChildIds.add(passpointVenueProfile.getId());
 | 
					        passpointHotspotConfigChildIds.add(passpointVenueProfile.getId());
 | 
				
			||||||
        passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile.getId());
 | 
					        passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile.getId());
 | 
				
			||||||
        passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId());
 | 
					        passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId());
 | 
				
			||||||
        passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds);
 | 
					        passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds);
 | 
				
			||||||
        passpointHotspotConfig.setDetails(Hotspot2Profile.createWithDefaults());
 | 
					        passpointHotspotConfig.setDetails(PasspointProfile.createWithDefaults());
 | 
				
			||||||
        Set<String> providerNames = new HashSet<>();
 | 
					        Set<String> providerNames = new HashSet<>();
 | 
				
			||||||
        providerNames.add(hotspot20IdProviderProfile.getName());
 | 
					        providerNames.add(hotspot20IdProviderProfile.getName());
 | 
				
			||||||
        providerNames.add(hotspot20IdProviderProfile2.getName());
 | 
					        providerNames.add(hotspot20IdProviderProfile2.getName());
 | 
				
			||||||
        ((Hotspot2Profile) passpointHotspotConfig.getDetails()).setIdProviderProfileNames(providerNames);
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails()).setIdProviderProfileNames(providerNames);
 | 
				
			||||||
        ((Hotspot2Profile) passpointHotspotConfig.getDetails())
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails())
 | 
				
			||||||
                .setOperatorProfileName(passpointOperatorProfile.getName());
 | 
					                .setOperatorProfileName(passpointOperatorProfile.getName());
 | 
				
			||||||
        ((Hotspot2Profile) passpointHotspotConfig.getDetails()).setVenueProfileName(passpointVenueProfile.getName());
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails()).setVenueProfileName(passpointVenueProfile.getName());
 | 
				
			||||||
        ((Hotspot2Profile) passpointHotspotConfig.getDetails()).setOsuSsidName(profileSsidOpen.getName());
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails()).setOsuSsidName(profileSsidOpen.getName());
 | 
				
			||||||
        profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId());
 | 
					        profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId());
 | 
				
			||||||
        return passpointHotspotConfig;
 | 
					        return passpointHotspotConfig;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointIdProviderProfile(Customer customer, Profile providerProfile, String providerName,
 | 
					    static Profile createPasspointIdProviderProfile(int customerId, Profile providerProfile, String providerName,
 | 
				
			||||||
            String network, String country, String iso, int mcc, int mnc, String naiRealm, int countryCode) {
 | 
					            String network, String country, String iso, int mcc, int mnc, String naiRealm, int countryCode) {
 | 
				
			||||||
        Profile hotspot20IdProviderProfile;
 | 
					        Profile hotspot20IdProviderProfile;
 | 
				
			||||||
        hotspot20IdProviderProfile = new Profile();
 | 
					        hotspot20IdProviderProfile = new Profile();
 | 
				
			||||||
        hotspot20IdProviderProfile.setCustomerId(customer.getId());
 | 
					        hotspot20IdProviderProfile.setCustomerId(customerId);
 | 
				
			||||||
        hotspot20IdProviderProfile.setName(providerName);
 | 
					        hotspot20IdProviderProfile.setName(providerName);
 | 
				
			||||||
        hotspot20IdProviderProfile.setProfileType(ProfileType.id_provider);
 | 
					        hotspot20IdProviderProfile.setProfileType(ProfileType.passpoint_osu_id_provider);
 | 
				
			||||||
        MccMnc mccMnc = MccMnc.createWithDefaults();
 | 
					        PasspointMccMnc passpointMccMnc = PasspointMccMnc.createWithDefaults();
 | 
				
			||||||
        mccMnc.setMcc(mcc);
 | 
					        passpointMccMnc.setMcc(mcc);
 | 
				
			||||||
        mccMnc.setMnc(mnc);
 | 
					        passpointMccMnc.setMnc(mnc);
 | 
				
			||||||
        mccMnc.setIso(iso);
 | 
					        passpointMccMnc.setIso(iso);
 | 
				
			||||||
        mccMnc.setCountry(country);
 | 
					        passpointMccMnc.setCountry(country);
 | 
				
			||||||
        mccMnc.setCountryCode(1);
 | 
					        passpointMccMnc.setCountryCode(1);
 | 
				
			||||||
        mccMnc.setNetwork(network);
 | 
					        passpointMccMnc.setNetwork(network);
 | 
				
			||||||
        List<MccMnc> mccMncList = new ArrayList<>();
 | 
					        List<PasspointMccMnc> mccMncList = new ArrayList<>();
 | 
				
			||||||
        mccMncList.add(mccMnc);
 | 
					        mccMncList.add(passpointMccMnc);
 | 
				
			||||||
        Set<String> naiRealms = new HashSet<>();
 | 
					        Set<String> naiRealms = new HashSet<>();
 | 
				
			||||||
        naiRealms.add(naiRealm);
 | 
					        naiRealms.add(naiRealm);
 | 
				
			||||||
        naiRealm.split(".");
 | 
					        naiRealm.split(".");
 | 
				
			||||||
@@ -119,36 +123,36 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        roamingOi.add(Byte.valueOf("2"));
 | 
					        roamingOi.add(Byte.valueOf("2"));
 | 
				
			||||||
        roamingOi.add(Byte.valueOf("3"));
 | 
					        roamingOi.add(Byte.valueOf("3"));
 | 
				
			||||||
        roamingOi.add(Byte.valueOf("4"));
 | 
					        roamingOi.add(Byte.valueOf("4"));
 | 
				
			||||||
        hotspot20IdProviderProfile = createOsuProviderProfile(customer, hotspot20IdProviderProfile, mccMncList,
 | 
					        hotspot20IdProviderProfile = createOsuProviderProfile(customerId, hotspot20IdProviderProfile, mccMncList,
 | 
				
			||||||
                naiRealms, "https://example.com/osu/" + naiRealm.split(".com")[0], naiRealm.split(".com")[0], naiRealm,
 | 
					                naiRealms, "https://example.com/osu/" + naiRealm.split(".com")[0], naiRealm.split(".com")[0], naiRealm,
 | 
				
			||||||
                roamingOi);
 | 
					                roamingOi);
 | 
				
			||||||
        return hotspot20IdProviderProfile;
 | 
					        return hotspot20IdProviderProfile;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointVenueProfile(Customer customer) {
 | 
					    static Profile createPasspointVenueProfile(int customerId) {
 | 
				
			||||||
        Profile passpointVenueProfile;
 | 
					        Profile passpointVenueProfile;
 | 
				
			||||||
        passpointVenueProfile = new Profile();
 | 
					        passpointVenueProfile = new Profile();
 | 
				
			||||||
        passpointVenueProfile.setCustomerId(customer.getId());
 | 
					        passpointVenueProfile.setCustomerId(customerId);
 | 
				
			||||||
        passpointVenueProfile.setName("TipWlan-Hotspot20-Venue");
 | 
					        passpointVenueProfile.setName("TipWlan-Hotspot20-Venue");
 | 
				
			||||||
        passpointVenueProfile.setProfileType(ProfileType.venue);
 | 
					        passpointVenueProfile.setProfileType(ProfileType.passpoint_venue);
 | 
				
			||||||
        passpointVenueProfile.setDetails(VenueProfile.createWithDefaults());
 | 
					        passpointVenueProfile.setDetails(PasspointVenueProfile.createWithDefaults());
 | 
				
			||||||
        return passpointVenueProfile;
 | 
					        return passpointVenueProfile;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointOperatorProfile(Customer customer) {
 | 
					    static Profile createPasspointOperatorProfile(int customerId) {
 | 
				
			||||||
        Profile passpointOperatorProfile;
 | 
					        Profile passpointOperatorProfile;
 | 
				
			||||||
        passpointOperatorProfile = new Profile();
 | 
					        passpointOperatorProfile = new Profile();
 | 
				
			||||||
        passpointOperatorProfile.setCustomerId(customer.getId());
 | 
					        passpointOperatorProfile.setCustomerId(customerId);
 | 
				
			||||||
        passpointOperatorProfile.setName("TipWlan-Hotspot20-Operator");
 | 
					        passpointOperatorProfile.setName("TipWlan-Hotspot20-Operator");
 | 
				
			||||||
        passpointOperatorProfile.setProfileType(ProfileType.operator);
 | 
					        passpointOperatorProfile.setProfileType(ProfileType.passpoint_operator);
 | 
				
			||||||
        passpointOperatorProfile.setDetails(OperatorProfile.createWithDefaults());
 | 
					        passpointOperatorProfile.setDetails(PasspointOperatorProfile.createWithDefaults());
 | 
				
			||||||
        return passpointOperatorProfile;
 | 
					        return passpointOperatorProfile;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointAccessSsid(Customer customer) {
 | 
					    static Profile createPasspointAccessSsid(int customerId) {
 | 
				
			||||||
        Profile profileSsidPsk;
 | 
					        Profile profileSsidPsk;
 | 
				
			||||||
        profileSsidPsk = new Profile();
 | 
					        profileSsidPsk = new Profile();
 | 
				
			||||||
        profileSsidPsk.setCustomerId(customer.getId());
 | 
					        profileSsidPsk.setCustomerId(customerId);
 | 
				
			||||||
        profileSsidPsk.setName("TipWlan-cloud-hotspot-access");
 | 
					        profileSsidPsk.setName("TipWlan-cloud-hotspot-access");
 | 
				
			||||||
        SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults();
 | 
					        SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
        Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>();
 | 
					        Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>();
 | 
				
			||||||
@@ -162,10 +166,10 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        return profileSsidPsk;
 | 
					        return profileSsidPsk;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointOsuSsid(Customer customer) {
 | 
					    static Profile createPasspointOsuSsid(int customerId) {
 | 
				
			||||||
        Profile profileSsidPsk;
 | 
					        Profile profileSsidPsk;
 | 
				
			||||||
        profileSsidPsk = new Profile();
 | 
					        profileSsidPsk = new Profile();
 | 
				
			||||||
        profileSsidPsk.setCustomerId(customer.getId());
 | 
					        profileSsidPsk.setCustomerId(customerId);
 | 
				
			||||||
        profileSsidPsk.setName("TipWlan-cloud-hotspot-osu");
 | 
					        profileSsidPsk.setName("TipWlan-cloud-hotspot-osu");
 | 
				
			||||||
        SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults();
 | 
					        SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
        Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>();
 | 
					        Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>();
 | 
				
			||||||
@@ -177,23 +181,23 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        return profileSsidPsk;
 | 
					        return profileSsidPsk;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointApProfile(Customer customer, Profile profileSsidPsk, Profile profileSsidOpen) {
 | 
					    static Profile createPasspointApProfile(int customerId, Profile profileSsidPsk, Profile profileSsidOpen) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile hotspotProfileAp = new Profile();
 | 
					        Profile hotspotProfileAp = new Profile();
 | 
				
			||||||
        hotspotProfileAp.setCustomerId(customer.getId());
 | 
					        hotspotProfileAp.setCustomerId(customerId);
 | 
				
			||||||
        hotspotProfileAp.setName("HotspotProfileAp");
 | 
					        hotspotProfileAp.setName("HotspotProfileAp");
 | 
				
			||||||
        hotspotProfileAp.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
					        hotspotProfileAp.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
        hotspotProfileAp.getChildProfileIds().add(profileSsidPsk.getId());
 | 
					        hotspotProfileAp.getChildProfileIds().add(profileSsidPsk.getId());
 | 
				
			||||||
        hotspotProfileAp.getChildProfileIds().add(profileSsidOpen.getId());
 | 
					        hotspotProfileAp.getChildProfileIds().add(profileSsidOpen.getId());
 | 
				
			||||||
        hotspotProfileAp.getChildProfileIds().add(createPasspointRfProfile(customer).getId());
 | 
					        hotspotProfileAp.getChildProfileIds().add(createPasspointRfProfile(customerId).getId());
 | 
				
			||||||
        return hotspotProfileAp;
 | 
					        return hotspotProfileAp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointRfProfile(Customer customer) {
 | 
					    static Profile createPasspointRfProfile(int customerId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Profile profileRf = new Profile();
 | 
					        Profile profileRf = new Profile();
 | 
				
			||||||
        profileRf.setCustomerId(customer.getId());
 | 
					        profileRf.setCustomerId(customerId);
 | 
				
			||||||
        profileRf.setName("TipWlan-rf-passpoint");
 | 
					        profileRf.setName("TipWlan-rf-passpoint");
 | 
				
			||||||
        RfConfiguration rfConfig = RfConfiguration.createWithDefaults();
 | 
					        RfConfiguration rfConfig = RfConfiguration.createWithDefaults();
 | 
				
			||||||
        rfConfig.getRfConfigMap().forEach((x, y) -> y.setRf("TipWlan-rf-passpoint"));
 | 
					        rfConfig.getRfConfigMap().forEach((x, y) -> y.setRf("TipWlan-rf-passpoint"));
 | 
				
			||||||
@@ -202,14 +206,14 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        return profileRf;
 | 
					        return profileRf;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createOsuProviderProfile(Customer customer, Profile hotspot20IdProviderProfile,
 | 
					    static Profile createOsuProviderProfile(int customerId, Profile hotspot20IdProviderProfile,
 | 
				
			||||||
            List<MccMnc> mccMncList, Set<String> realms, String serverUri, String suffix, String domainName,
 | 
					            List<PasspointMccMnc> mccMncList, Set<String> realms, String serverUri, String suffix, String domainName,
 | 
				
			||||||
            List<Byte> roamingOi) {
 | 
					            List<Byte> roamingOi) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Hotspot20IdProviderProfile passpointIdProviderProfile = Hotspot20IdProviderProfile.createWithDefaults();
 | 
					        PasspointOsuProviderProfile passpointIdProviderProfile = PasspointOsuProviderProfile.createWithDefaults();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointIdProviderProfile.setMccMncList(mccMncList);
 | 
					        passpointIdProviderProfile.setMccMncList(mccMncList);
 | 
				
			||||||
        OsuIcon icon1 = new OsuIcon();
 | 
					        PasspointOsuIcon icon1 = new PasspointOsuIcon();
 | 
				
			||||||
        icon1.setIconLocale(Locale.CANADA);
 | 
					        icon1.setIconLocale(Locale.CANADA);
 | 
				
			||||||
        icon1.setIconWidth(32);
 | 
					        icon1.setIconWidth(32);
 | 
				
			||||||
        icon1.setIconHeight(32);
 | 
					        icon1.setIconHeight(32);
 | 
				
			||||||
@@ -217,7 +221,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        icon1.setIconName("icon32eng");
 | 
					        icon1.setIconName("icon32eng");
 | 
				
			||||||
        icon1.setImageUrl("https://localhost:9096/icon32eng.png");
 | 
					        icon1.setImageUrl("https://localhost:9096/icon32eng.png");
 | 
				
			||||||
        icon1.setFilePath("/tmp/icon32eng.png");
 | 
					        icon1.setFilePath("/tmp/icon32eng.png");
 | 
				
			||||||
        OsuIcon icon2 = new OsuIcon();
 | 
					        PasspointOsuIcon icon2 = new PasspointOsuIcon();
 | 
				
			||||||
        icon2.setIconLocale(Locale.CANADA_FRENCH);
 | 
					        icon2.setIconLocale(Locale.CANADA_FRENCH);
 | 
				
			||||||
        icon2.setIconWidth(32);
 | 
					        icon2.setIconWidth(32);
 | 
				
			||||||
        icon2.setIconHeight(32);
 | 
					        icon2.setIconHeight(32);
 | 
				
			||||||
@@ -225,7 +229,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        icon2.setIconName("icon32fra");
 | 
					        icon2.setIconName("icon32fra");
 | 
				
			||||||
        icon2.setImageUrl("https://localhost:9096/icon32fra.png");
 | 
					        icon2.setImageUrl("https://localhost:9096/icon32fra.png");
 | 
				
			||||||
        icon2.setFilePath("/tmp/icon32fra.png");
 | 
					        icon2.setFilePath("/tmp/icon32fra.png");
 | 
				
			||||||
        OsuIcon icon3 = new OsuIcon();
 | 
					        PasspointOsuIcon icon3 = new PasspointOsuIcon();
 | 
				
			||||||
        icon3.setIconLocale(Locale.US);
 | 
					        icon3.setIconLocale(Locale.US);
 | 
				
			||||||
        icon3.setIconWidth(32);
 | 
					        icon3.setIconWidth(32);
 | 
				
			||||||
        icon3.setIconHeight(32);
 | 
					        icon3.setIconHeight(32);
 | 
				
			||||||
@@ -233,16 +237,16 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        icon3.setIconName("icon32usa");
 | 
					        icon3.setIconName("icon32usa");
 | 
				
			||||||
        icon3.setImageUrl("https://localhost:9096/icon32usa.png");
 | 
					        icon3.setImageUrl("https://localhost:9096/icon32usa.png");
 | 
				
			||||||
        icon3.setFilePath("/tmp/icon32usa.png");
 | 
					        icon3.setFilePath("/tmp/icon32usa.png");
 | 
				
			||||||
        List<OsuIcon> osuIconList = new ArrayList<>();
 | 
					        List<PasspointOsuIcon> osuIconList = new ArrayList<>();
 | 
				
			||||||
        osuIconList.add(icon1);
 | 
					        osuIconList.add(icon1);
 | 
				
			||||||
        osuIconList.add(icon2);
 | 
					        osuIconList.add(icon2);
 | 
				
			||||||
        osuIconList.add(icon3);
 | 
					        osuIconList.add(icon3);
 | 
				
			||||||
        passpointIdProviderProfile.setOsuIconList(osuIconList);
 | 
					        passpointIdProviderProfile.setOsuIconList(osuIconList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointIdProviderProfile.setRoamingOi(roamingOi);
 | 
					        passpointIdProviderProfile.setRoamingOi(roamingOi);
 | 
				
			||||||
        List<NaiRealmInformation> naiRealmList = new ArrayList<>();
 | 
					        List<PasspointNaiRealmInformation> naiRealmList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        NaiRealmInformation naiRealmInfo = NaiRealmInformation.createWithDefaults();
 | 
					        PasspointNaiRealmInformation naiRealmInfo = PasspointNaiRealmInformation.createWithDefaults();
 | 
				
			||||||
        naiRealmInfo.setNaiRealms(realms);
 | 
					        naiRealmInfo.setNaiRealms(realms);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        naiRealmList.add(naiRealmInfo);
 | 
					        naiRealmList.add(naiRealmInfo);
 | 
				
			||||||
@@ -254,22 +258,22 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        methodList.add(1);
 | 
					        methodList.add(1);
 | 
				
			||||||
        methodList.add(0);
 | 
					        methodList.add(0);
 | 
				
			||||||
        passpointIdProviderProfile.setOsuMethodList(methodList);
 | 
					        passpointIdProviderProfile.setOsuMethodList(methodList);
 | 
				
			||||||
        Hotspot20Duple enOsuProvider = Hotspot20Duple.createWithDefaults();
 | 
					        PasspointDuple enOsuProvider = PasspointDuple.createWithDefaults();
 | 
				
			||||||
        enOsuProvider.setLocale(Locale.CANADA);
 | 
					        enOsuProvider.setLocale(Locale.CANADA);
 | 
				
			||||||
        enOsuProvider.setDupleName("Example provider " + suffix);
 | 
					        enOsuProvider.setDupleName("Example provider " + suffix);
 | 
				
			||||||
        Hotspot20Duple frOsuProvider = Hotspot20Duple.createWithDefaults();
 | 
					        PasspointDuple frOsuProvider = PasspointDuple.createWithDefaults();
 | 
				
			||||||
        frOsuProvider.setLocale(Locale.CANADA_FRENCH);
 | 
					        frOsuProvider.setLocale(Locale.CANADA_FRENCH);
 | 
				
			||||||
        frOsuProvider.setDupleName("Exemple de fournisseur " + suffix);
 | 
					        frOsuProvider.setDupleName("Exemple de fournisseur " + suffix);
 | 
				
			||||||
        List<Hotspot20Duple> friendlyNameList = new ArrayList<>();
 | 
					        List<PasspointDuple> friendlyNameList = new ArrayList<>();
 | 
				
			||||||
        friendlyNameList.add(enOsuProvider);
 | 
					        friendlyNameList.add(enOsuProvider);
 | 
				
			||||||
        friendlyNameList.add(frOsuProvider);
 | 
					        friendlyNameList.add(frOsuProvider);
 | 
				
			||||||
        passpointIdProviderProfile.setOsuFriendlyName(friendlyNameList);
 | 
					        passpointIdProviderProfile.setOsuFriendlyName(friendlyNameList);
 | 
				
			||||||
        List<Hotspot20Duple> osuServiceDescription = new ArrayList<>();
 | 
					        List<PasspointDuple> osuServiceDescription = new ArrayList<>();
 | 
				
			||||||
        Hotspot20Duple enService = Hotspot20Duple.createWithDefaults();
 | 
					        PasspointDuple enService = PasspointDuple.createWithDefaults();
 | 
				
			||||||
        enService.setLocale(Locale.CANADA);
 | 
					        enService.setLocale(Locale.CANADA);
 | 
				
			||||||
        enService.setDupleName("Example services " + suffix);
 | 
					        enService.setDupleName("Example services " + suffix);
 | 
				
			||||||
        osuServiceDescription.add(enService);
 | 
					        osuServiceDescription.add(enService);
 | 
				
			||||||
        Hotspot20Duple frService = Hotspot20Duple.createWithDefaults();
 | 
					        PasspointDuple frService = PasspointDuple.createWithDefaults();
 | 
				
			||||||
        frService.setLocale(Locale.CANADA_FRENCH);
 | 
					        frService.setLocale(Locale.CANADA_FRENCH);
 | 
				
			||||||
        frService.setDupleName("Exemples de services " + suffix);
 | 
					        frService.setDupleName("Exemples de services " + suffix);
 | 
				
			||||||
        osuServiceDescription.add(frService);
 | 
					        osuServiceDescription.add(frService);
 | 
				
			||||||
@@ -301,7 +305,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        columns.put("network_auth_type", new Atom<>("00"));
 | 
					        columns.put("network_auth_type", new Atom<>("00"));
 | 
				
			||||||
        columns.put("operating_class", new Atom<>(0));
 | 
					        columns.put("operating_class", new Atom<>(0));
 | 
				
			||||||
        columns.put("operator_friendly_name",
 | 
					        columns.put("operator_friendly_name",
 | 
				
			||||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Default friendly operator name"),
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Default friendly passpoint_operator name"),
 | 
				
			||||||
                        new Atom<>("fra:Nom de l'opérateur convivial par défaut")));
 | 
					                        new Atom<>("fra:Nom de l'opérateur convivial par défaut")));
 | 
				
			||||||
        columns.put("operator_icons",
 | 
					        columns.put("operator_icons",
 | 
				
			||||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Set.of(
 | 
				
			||||||
@@ -318,7 +322,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("11223344"), new Atom<>("234433")));
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("11223344"), new Atom<>("234433")));
 | 
				
			||||||
        columns.put("tos", new Atom<>("https://localhost:9091/filestore/termsAndConditions"));
 | 
					        columns.put("tos", new Atom<>("https://localhost:9091/filestore/termsAndConditions"));
 | 
				
			||||||
        columns.put("venue_group_type", new Atom<>("2:8"));
 | 
					        columns.put("venue_group_type", new Atom<>("2:8"));
 | 
				
			||||||
        columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Example venue"),
 | 
					        columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Example passpoint_venue"),
 | 
				
			||||||
                new Atom<>("fra:Exemple de lieu")));
 | 
					                new Atom<>("fra:Exemple de lieu")));
 | 
				
			||||||
        columns.put("venue_url", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					        columns.put("venue_url", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
				
			||||||
                .of(new Atom<>("1:http://www.example.com/info-fra"), new Atom<>("2:http://www.example.com/info-eng")));
 | 
					                .of(new Atom<>("1:http://www.example.com/info-fra"), new Atom<>("2:http://www.example.com/info-eng")));
 | 
				
			||||||
@@ -516,6 +520,28 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        return operationResult;
 | 
					        return operationResult;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    static Profile createRadiusProfile(int customerId) {
 | 
				
			||||||
 | 
					        Profile profileRadius = new Profile();
 | 
				
			||||||
 | 
					        profileRadius.setCustomerId(customerId);
 | 
				
			||||||
 | 
					        profileRadius.setProfileType(ProfileType.radius);
 | 
				
			||||||
 | 
					        profileRadius.setName("Radius-Profile");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        RadiusProfile radiusDetails = new RadiusProfile();
 | 
				
			||||||
 | 
					        RadiusServiceRegion radiusServiceRegion = new RadiusServiceRegion();
 | 
				
			||||||
 | 
					        RadiusServer radiusServer = new RadiusServer();
 | 
				
			||||||
 | 
					        radiusServer.setAuthPort(1812);
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            radiusServer.setIpAddress(InetAddress.getByName("192.168.0.1"));
 | 
				
			||||||
 | 
					        } catch (UnknownHostException e) {
 | 
				
			||||||
 | 
					            throw new IllegalArgumentException(e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        radiusServer.setSecret("testing123");
 | 
				
			||||||
 | 
					        radiusServiceRegion.addRadiusServer("Radius-Profile", radiusServer);
 | 
				
			||||||
 | 
					        radiusServiceRegion.setRegionName("Ottawa");
 | 
				
			||||||
 | 
					        radiusDetails.addRadiusServiceRegion(radiusServiceRegion);
 | 
				
			||||||
 | 
					        profileRadius.setDetails(radiusDetails);
 | 
				
			||||||
 | 
					        return profileRadius;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user