3f785803ce471d5312f69ad5e896e91257135744
[nonrtric.git] / enrichment-coordinator-service / src / main / java / org / oransc / enrichment / controllers / producer / ProducerRegistrationInfo.java
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2020 Nordix Foundation
6  * %%
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================LICENSE_END===================================
19  */
20
21 package org.oransc.enrichment.controllers.producer;
22
23 import com.fasterxml.jackson.annotation.JsonProperty;
24 import com.google.gson.annotations.SerializedName;
25
26 import io.swagger.annotations.ApiModel;
27 import io.swagger.annotations.ApiModelProperty;
28
29 import java.util.Collection;
30
31 import org.immutables.gson.Gson;
32
33 @Gson.TypeAdapters
34 @ApiModel(value = "producer_registration_info", description = "Information for an EI producer")
35 public class ProducerRegistrationInfo {
36
37     @Gson.TypeAdapters
38     @ApiModel(value = "producer_ei_type_registration_info", description = "Information for an EI type")
39     public static class ProducerEiTypeRegistrationInfo {
40
41         @ApiModelProperty(value = "EI type identity", required = true)
42         @SerializedName("ei_type_identity")
43         @JsonProperty(value = "ei_type_identity", required = true)
44         public String eiTypeId;
45
46         @ApiModelProperty(value = "Json schema for the job data")
47         @SerializedName("ei_job_data_schema")
48         @JsonProperty("ei_job_data_schema")
49         public Object jobDataSchema;
50
51         public ProducerEiTypeRegistrationInfo(Object jobDataSchema, String eiTypeId) {
52             this.jobDataSchema = jobDataSchema;
53             this.eiTypeId = eiTypeId;
54         }
55
56         public ProducerEiTypeRegistrationInfo() {
57         }
58     }
59
60     @ApiModelProperty(value = "Supported EI types", required = true)
61     @SerializedName("supported_ei_types")
62     @JsonProperty(value = "supported_ei_types", required = true)
63     public Collection<ProducerEiTypeRegistrationInfo> types;
64
65     @ApiModelProperty(value = "callback for EI job", required = true)
66     @SerializedName("ei_job_callback_url")
67     @JsonProperty(value = "ei_job_callback_url", required = true)
68     public String jobCallbackUrl;
69
70     @ApiModelProperty(value = "callback for producer supervision", required = true)
71     @SerializedName("ei_producer_supervision_callback_url")
72     @JsonProperty(value = "ei_producer_supervision_callback_url", required = true)
73     public String producerSupervisionCallbackUrl;
74
75     public ProducerRegistrationInfo(Collection<ProducerEiTypeRegistrationInfo> types, String jobCallbackUrl,
76         String producerSupervisionCallbackUrl) {
77         this.types = types;
78         this.jobCallbackUrl = jobCallbackUrl;
79         this.producerSupervisionCallbackUrl = producerSupervisionCallbackUrl;
80     }
81
82     public ProducerRegistrationInfo() {
83     }
84
85 }