diff options
Diffstat (limited to 'src/main/java/org/onap/a1pesimulator/data')
25 files changed, 880 insertions, 0 deletions
diff --git a/src/main/java/org/onap/a1pesimulator/data/PolicyNotification.java b/src/main/java/org/onap/a1pesimulator/data/PolicyNotification.java new file mode 100644 index 0000000..94f2160 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/PolicyNotification.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class PolicyNotification { + + private String id; + private Integer typeId; + private PolicyNotificationActionEnum action; + private String content; + + public PolicyNotification(String id, Integer typeId, PolicyNotificationActionEnum action) { + this.id = id; + this.typeId = typeId; + this.action = action; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/PolicyNotificationActionEnum.java b/src/main/java/org/onap/a1pesimulator/data/PolicyNotificationActionEnum.java new file mode 100644 index 0000000..64531bc --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/PolicyNotificationActionEnum.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data; + +import com.fasterxml.jackson.annotation.JsonFormat; + +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum PolicyNotificationActionEnum { + + CREATED("CREATED"), DELETED("DELETED"); + public final String value; + + PolicyNotificationActionEnum(String stateName) { + this.value = stateName; + } + +} diff --git a/src/main/java/org/onap/a1pesimulator/data/Topology.java b/src/main/java/org/onap/a1pesimulator/data/Topology.java new file mode 100644 index 0000000..0658787 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/Topology.java @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data; + +import java.util.Collection; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.ue.UserEquipment; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Topology { + + Collection<CellDetails> cells; + Collection<UserEquipment> userEquipments; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/VnfConfig.java b/src/main/java/org/onap/a1pesimulator/data/VnfConfig.java new file mode 100644 index 0000000..bd0e1d0 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/VnfConfig.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; + + +@Getter +@JsonIgnoreProperties(ignoreUnknown = true) +public class VnfConfig { + + @JsonProperty("vesHost") + private String vesHost; + @JsonProperty("vesPort") + private String vesPort; + @JsonProperty("vesUser") + private String vesUser; + @JsonProperty("vesPassword") + private String vesPassword; + @JsonProperty("vnfId") + private String vnfId; + @JsonProperty("vnfName") + private String vnfName; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/Cell.java b/src/main/java/org/onap/a1pesimulator/data/cell/Cell.java new file mode 100644 index 0000000..8c8c0ce --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/Cell.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class Cell { + + private String identifier; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/CellDetails.java b/src/main/java/org/onap/a1pesimulator/data/cell/CellDetails.java new file mode 100644 index 0000000..249e26b --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/CellDetails.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; +import org.onap.a1pesimulator.data.cell.state.machine.InactiveState; + +@Getter +@Builder +public class CellDetails { + + private String id; + private Double latitude; + private Double longitude; + + @Setter + @JsonIgnore + @Builder.Default + private CellStateMachine cellStateMachine = new InactiveState(); + + @Setter + private Collection<String> connectedUserEquipments; + + public void previousState() { + cellStateMachine.prev(this); + } + + public void nextState() { + cellStateMachine.next(this); + } + + @JsonProperty("currentState") + public CellStateEnum getCurrentState() { + return cellStateMachine.getState(); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/CellList.java b/src/main/java/org/onap/a1pesimulator/data/cell/CellList.java new file mode 100644 index 0000000..627d43b --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/CellList.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collections; +import java.util.List; +import lombok.Getter; + +@Getter +@JsonIgnoreProperties(ignoreUnknown = true) +public class CellList { + + private final List<CellData> cellList; + + public CellList() { + cellList = Collections.emptyList(); + } + + @Getter + @JsonIgnoreProperties(ignoreUnknown = true) + public static class CellData { + + @JsonProperty("Cell") + private Cell cell; + } + + @Getter + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Cell { + + private String nodeId; + private Double latitude; + private Double longitude; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/CellWithStatus.java b/src/main/java/org/onap/a1pesimulator/data/cell/CellWithStatus.java new file mode 100644 index 0000000..f1419f7 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/CellWithStatus.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell; + +import lombok.Builder; +import lombok.Getter; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; + +@Builder +@Getter +public class CellWithStatus { + + private Cell cell; + private boolean vesEnabled; + private boolean failureMode; + private CellStateEnum state; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/RanCell.java b/src/main/java/org/onap/a1pesimulator/data/cell/RanCell.java new file mode 100644 index 0000000..8ae9243 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/RanCell.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell; + +import java.util.Collection; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +@AllArgsConstructor +public class RanCell { + + private Collection<CellDetails> cells; + private int itemsLength; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateEnum.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateEnum.java new file mode 100644 index 0000000..a25156a --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateEnum.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell.state; + +import com.fasterxml.jackson.annotation.JsonFormat; + +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum CellStateEnum { + + INACTIVE("INACTIVE"), ACTIVE("ACTIVE"), GOING_TO_SLEEP("GOING_TO_SLEEP"), SLEEPING("SLEEPING"); + + public final String value; + + CellStateEnum(String stateName) { + this.value = stateName; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateMachine.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateMachine.java new file mode 100644 index 0000000..f3c7bf0 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateMachine.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell.state; + +import org.onap.a1pesimulator.data.cell.CellDetails; + +public abstract class CellStateMachine { + + private CellStateEnum state; + + protected CellStateMachine(CellStateEnum state) { + this.state = state; + } + + public abstract void next(CellDetails cell); + + public abstract void prev(CellDetails cell); + + public CellStateEnum getState() { + return state; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/ActiveState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/ActiveState.java new file mode 100644 index 0000000..c7d600d --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/ActiveState.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; + +public class ActiveState extends CellStateMachine { + + public ActiveState() { + super(CellStateEnum.ACTIVE); + } + + @Override + public void next(CellDetails cell) { + cell.setCellStateMachine(new GoingToSleepingState()); + } + + @Override + public void prev(CellDetails cell) { + cell.setCellStateMachine(new InactiveState()); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/GoingToSleepingState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/GoingToSleepingState.java new file mode 100644 index 0000000..d4bdc48 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/GoingToSleepingState.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; + +public class GoingToSleepingState extends CellStateMachine { + + public GoingToSleepingState() { + super(CellStateEnum.GOING_TO_SLEEP); + } + + @Override + public void next(CellDetails cell) { + cell.setCellStateMachine(new SleepingState()); + } + + @Override + public void prev(CellDetails cell) { + cell.setCellStateMachine(new InactiveState()); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/InactiveState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/InactiveState.java new file mode 100644 index 0000000..e04d5f7 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/InactiveState.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class InactiveState extends CellStateMachine { + + private static final Logger log = LoggerFactory.getLogger(InactiveState.class); + + public InactiveState() { + super(CellStateEnum.INACTIVE); + } + + @Override + public void next(CellDetails cell) { + cell.setCellStateMachine(new ActiveState()); + } + + @Override + public void prev(CellDetails cell) { + log.info("YOU ARE IN THE INACTIVE STATE, PREVIOUS STATE ISN'T AVAILABLE"); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/SleepingState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/SleepingState.java new file mode 100644 index 0000000..7de3230 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/SleepingState.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class SleepingState extends CellStateMachine { + + private static final Logger log = LoggerFactory.getLogger(SleepingState.class); + + public SleepingState() { + super(CellStateEnum.SLEEPING); + } + + @Override + public void next(CellDetails cell) { + log.info("YOU ARE IN THE SLEEPING STATE, NEXT STATE ISN'T AVAILABLE"); + } + + @Override + public void prev(CellDetails cell) { + cell.setCellStateMachine(new InactiveState()); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ue/RanUserEquipment.java b/src/main/java/org/onap/a1pesimulator/data/ue/RanUserEquipment.java new file mode 100644 index 0000000..a91a0d1 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ue/RanUserEquipment.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ue; + +import java.util.Collection; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +@AllArgsConstructor +public class RanUserEquipment { + + private Collection<UserEquipment> ues; + private int itemsLength; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ue/UserEquipment.java b/src/main/java/org/onap/a1pesimulator/data/ue/UserEquipment.java new file mode 100644 index 0000000..8063527 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ue/UserEquipment.java @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ue; + +import java.util.Collection; +import lombok.Getter; +import lombok.Setter; + +@Getter +public class UserEquipment { + + private String id; + private Double latitude; + private Double longitude; + @Setter + private String cellId; + @Setter + private Collection<String> cellsInRange; + +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ue/UserEquipmentNotification.java b/src/main/java/org/onap/a1pesimulator/data/ue/UserEquipmentNotification.java new file mode 100644 index 0000000..a294c26 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ue/UserEquipmentNotification.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class UserEquipmentNotification { + + private String id; + private String cellId; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/CommonEventHeader.java b/src/main/java/org/onap/a1pesimulator/data/ves/CommonEventHeader.java new file mode 100644 index 0000000..9cef221 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/CommonEventHeader.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CommonEventHeader { + + private String eventType; + + private String version; + + private String vesEventListenerVersion; + + private String sourceId; + + private String reportingEntityName; + + private Long startEpochMicrosec; + + private String eventId; + + private Long lastEpochMicrosec; + + private String priority; + + private Integer sequence; + + private String sourceName; + + private String domain; + + private String eventName; + + private String reportingEntityId; + + private String nfcNamingCode; + + private String nfNamingCode; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/Event.java b/src/main/java/org/onap/a1pesimulator/data/ves/Event.java new file mode 100644 index 0000000..ded1848 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/Event.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeInfo.As; +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; +import com.fasterxml.jackson.annotation.JsonTypeName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonTypeName("event") +@JsonTypeInfo(include = As.WRAPPER_OBJECT, use = Id.NAME) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Event { + + private CommonEventHeader commonEventHeader; + private FaultFields faultFields; + + private MeasurementFields measurementFields; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/FaultFields.java b/src/main/java/org/onap/a1pesimulator/data/ves/FaultFields.java new file mode 100644 index 0000000..f00e31d --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/FaultFields.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class FaultFields { + + private Double faultFieldsVersion; + private String eventSeverity; + private String eventSourceType; + private String eventCategory; + private String alarmCondition; + private String specificProblem; + private String vfStatus; + private String alarmInterfaceA; + private List<AdditionalInformation> alarmAdditionalInformation; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class AdditionalInformation { + + private String name; + private String value; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/GlobalVesConfiguration.java b/src/main/java/org/onap/a1pesimulator/data/ves/GlobalVesConfiguration.java new file mode 100644 index 0000000..7532573 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/GlobalVesConfiguration.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class GlobalVesConfiguration { + + private Integer interval; + private Event event; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/MeasurementFields.java b/src/main/java/org/onap/a1pesimulator/data/ves/MeasurementFields.java new file mode 100644 index 0000000..86af5d6 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/MeasurementFields.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; +import java.util.Map; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class MeasurementFields { + + private Integer measurementInterval; + private String measurementFieldsVersion; + + private List<AdditionalMeasurement> additionalMeasurements; + + @Data + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class AdditionalMeasurement { + + private String name; + private Map<String, String> hashMap; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/RanPeriodicVesEvent.java b/src/main/java/org/onap/a1pesimulator/data/ves/RanPeriodicVesEvent.java new file mode 100644 index 0000000..908f66b --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/RanPeriodicVesEvent.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import java.util.concurrent.ScheduledFuture; +import lombok.Builder; +import lombok.Data; +import org.onap.a1pesimulator.service.ves.RanSendVesRunnable; + +@Data +@Builder +public class RanPeriodicVesEvent { + + private Event event; + private Integer interval; + private ScheduledFuture<?> scheduledFuture; + private RanSendVesRunnable sendVesRunnable; +} diff --git a/src/main/java/org/onap/a1pesimulator/data/ves/VesEventStatusNotification.java b/src/main/java/org/onap/a1pesimulator/data/ves/VesEventStatusNotification.java new file mode 100644 index 0000000..c356e4c --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/ves/VesEventStatusNotification.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package org.onap.a1pesimulator.data.ves; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class VesEventStatusNotification { + + String identifier; + Status status; + + public enum Status { + STARTED, STOPPED; + } +} |