Changed VF creation to new MSO scaleout API
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / rest / RequestDetails.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
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.onap.vid.mso.rest;
22
23 import com.fasterxml.jackson.annotation.*;
24 import org.apache.commons.lang.builder.EqualsBuilder;
25 import org.apache.commons.lang.builder.HashCodeBuilder;
26 import org.apache.commons.lang.builder.ToStringBuilder;
27 import org.onap.vid.domain.mso.*;
28
29 import java.util.ArrayList;
30 import java.util.HashMap;
31 import java.util.List;
32 import java.util.Map;
33
34
35 /**
36  * aggregates the context, configuraiton and detailed parameters associated with the request into a single structure.
37  */
38 @JsonInclude(JsonInclude.Include.NON_NULL)
39 @JsonPropertyOrder({
40         "cloudConfiguration",
41         "modelInfo",
42         "relatedModelList",
43         "requestInfo",
44         "subscriberInfo",
45         "requestParameters",
46         "configurationParameters"
47 })
48 public class RequestDetails{
49
50
51
52     /** The cloud configuration. */
53     @JsonProperty("cloudConfiguration")
54     private CloudConfiguration cloudConfiguration;
55
56     /** The model info. */
57     @JsonProperty("modelInfo")
58     private ModelInfo modelInfo;
59
60     /** The related model list. */
61     @JsonProperty("relatedInstanceList")
62     private List<RelatedInstanceWrapper> relatedInstanceList;
63
64     /** The request info. */
65     @JsonProperty("requestInfo")
66     private RequestInfo requestInfo;
67
68     /** The subscriber info. */
69     @JsonProperty("subscriberInfo")
70     private SubscriberInfo subscriberInfo;
71
72     /** The request parameters. */
73     @JsonProperty("requestParameters")
74     private RequestParameters requestParameters;
75
76     @JsonProperty("configurationParameters")
77     protected List<Map<String, String>> configurationParameters = new ArrayList<>();
78
79     /** The additional properties. */
80     @JsonIgnore
81     private Map<String, Object> additionalProperties = new HashMap<String, Object>();
82
83     /**
84      * Gets the cloud configuration.
85      *
86      * @return     The cloudConfiguration
87      */
88     @JsonProperty("cloudConfiguration")
89     public CloudConfiguration getCloudConfiguration() {
90         return cloudConfiguration;
91     }
92
93     /**
94      * Sets the cloud configuration.
95      *
96      * @param cloudConfiguration     The cloudConfiguration
97      */
98     @JsonProperty("cloudConfiguration")
99     public void setCloudConfiguration(CloudConfiguration cloudConfiguration) {
100         this.cloudConfiguration = cloudConfiguration;
101     }
102
103     /**
104      * Gets the model info.
105      *
106      * @return     The modelInfo
107      */
108     @JsonProperty("modelInfo")
109     public ModelInfo getModelInfo() {
110         return modelInfo;
111     }
112
113     /**
114      * Sets the model info.
115      *
116      * @param modelInfo     The modelInfo
117      */
118     @JsonProperty("modelInfo")
119     public void setModelInfo(ModelInfo modelInfo) {
120         this.modelInfo = modelInfo;
121     }
122     /**
123      * Gets the related instance list.
124      *
125      * @return     The relatedInstanceList
126      */
127     @JsonProperty("relatedInstanceList")
128     public List<RelatedInstanceWrapper> getRelatedInstanceList() {
129         return relatedInstanceList;
130     }
131
132     /**
133      * Sets the related model list.
134      *
135      * @param relatedInstanceList     The relatedInstanceList
136      */
137     @JsonProperty("relatedInstanceList")
138     public void setRelatedInstanceList(List<RelatedInstanceWrapper> relatedInstanceList) {
139         this.relatedInstanceList = relatedInstanceList;
140     }
141
142     /**
143      * Gets the request info.
144      *
145      * @return     The requestInfo
146      */
147     @JsonProperty("requestInfo")
148     public RequestInfo getRequestInfo() {
149         return requestInfo;
150     }
151
152     /**
153      * Sets the request info.
154      *
155      * @param requestInfo     The requestInfo
156      */
157     @JsonProperty("requestInfo")
158     public void setRequestInfo(RequestInfo requestInfo) {
159         this.requestInfo = requestInfo;
160     }
161
162     /**
163      * Gets the subscriber info.
164      *
165      * @return     The subscriberInfo
166      */
167     @JsonProperty("subscriberInfo")
168     public SubscriberInfo getSubscriberInfo() {
169         return subscriberInfo;
170     }
171
172     /**
173      * Sets the subscriber info.
174      *
175      * @param subscriberInfo     The subscriberInfo
176      */
177     @JsonProperty("subscriberInfo")
178     public void setSubscriberInfo(SubscriberInfo subscriberInfo) {
179         this.subscriberInfo = subscriberInfo;
180     }
181
182     /* (non-Javadoc)
183      * @see org.onap.vid.domain.mso.RequestDetails#toString()
184      */
185     @Override
186     public String toString() {
187         return ToStringBuilder.reflectionToString(this);
188     }
189
190     /* (non-Javadoc)
191      * @see org.onap.vid.domain.mso.RequestDetails#getAdditionalProperties()
192      */
193     @JsonAnyGetter
194     public Map<String, Object> getAdditionalProperties() {
195         return this.additionalProperties;
196     }
197
198     /* (non-Javadoc)
199      * @see org.onap.vid.domain.mso.RequestDetails#setAdditionalProperty(java.lang.String, java.lang.Object)
200      */
201     @JsonAnySetter
202     public void setAdditionalProperty(String name, Object value) {
203         this.additionalProperties.put(name, value);
204     }
205
206     @JsonProperty("configurationParameters")
207     public List<Map<String, String>> getConfigurationParameters() {
208         return configurationParameters;
209     }
210
211     @JsonProperty("configurationParameters")
212     public void setConfigurationParameters(List<Map<String, String>> configurationParameters) {
213         this.configurationParameters = configurationParameters;
214     }
215
216     /* (non-Javadoc)
217      * @see org.onap.vid.domain.mso.RequestDetails#hashCode()
218      */
219     @Override
220     public int hashCode() {
221         return new HashCodeBuilder()
222                 .append(cloudConfiguration)
223                 .append(modelInfo)
224                 .append(relatedInstanceList)
225                 .append(requestInfo)
226                 .append(getRequestParameters())
227                 .append(subscriberInfo)
228                 .append(additionalProperties)
229                 .append(configurationParameters.hashCode())
230                 .toHashCode();
231     }
232
233     /* (non-Javadoc)
234      * @see org.onap.vid.domain.mso.RequestDetails#equals(java.lang.Object)
235      */
236     @Override
237     public boolean equals(Object other) {
238         if (other == this) {
239             return true;
240         }
241         if (!(other instanceof RequestDetails)) {
242             return false;
243         }
244         RequestDetails rhs = ((RequestDetails) other);
245         return new EqualsBuilder()
246                 .append(cloudConfiguration, rhs.cloudConfiguration)
247                 .append(modelInfo, rhs.modelInfo)
248                 .append(relatedInstanceList, rhs.relatedInstanceList)
249                 .append(requestInfo, rhs.requestInfo)
250                 .append(getRequestParameters(), rhs.getRequestParameters())
251                 .append(subscriberInfo, rhs.subscriberInfo)
252                 .append(additionalProperties, rhs.additionalProperties)
253                 .append(configurationParameters, rhs.configurationParameters)
254                 .isEquals();
255     }
256
257     public RequestParameters getRequestParameters() {
258         return requestParameters;
259     }
260
261     public void setRequestParameters(RequestParameters requestParameters) {
262         this.requestParameters = requestParameters;
263     }
264 }