429d176479012540d0619bb669261cc0ae6e8817
[vid.git] / vid-automation / src / main / java / org / onap / simulator / presetGenerator / presets / aai / PresetAAIModelsByInvariantIdGet.java
1 package org.onap.simulator.presetGenerator.presets.aai;
2
3 import com.google.common.collect.ImmutableList;
4 import com.google.common.collect.ImmutableMap;
5 import org.onap.simulator.presetGenerator.presets.BasePresets.BaseAAIPreset;
6 import org.springframework.http.HttpMethod;
7
8 import java.util.List;
9 import java.util.Map;
10
11 import static java.util.stream.Collectors.joining;
12
13 public class PresetAAIModelsByInvariantIdGet extends BaseAAIPreset {
14     private final ImmutableList<String> modelInvariantIds;
15
16     public PresetAAIModelsByInvariantIdGet(ImmutableList<String> modelInvariantIds) {
17         this.modelInvariantIds = modelInvariantIds;
18     }
19
20     @Override
21     public HttpMethod getReqMethod() {
22         return HttpMethod.GET;
23     }
24
25     @Override
26     public String getReqPath() {
27         return getRootPath() + "/service-design-and-creation/models";
28     }
29
30     @Override
31     public Map<String, List> getQueryParams() {
32         return ImmutableMap.<String, List>builder()
33                 .put("depth", ImmutableList.of("2"))
34                 .put("model-invariant-id", modelInvariantIds)
35                 .build();
36     }
37
38     @Override
39     public Object getResponseBody() {
40         // based on aai_get_model_by_2_invariant_ids.json
41         // should be refined to match input
42         return "" +
43                 "{" +
44                 "      \"model\": [" +
45                 modelInvariantIds.stream().map(modelInvariantId ->
46                 "        {" +
47                 "          \"model-invariant-id\": \""+modelInvariantId+"\"," +
48                 "          \"model-type\": \"resource\"," +
49                 "          \"resource-version\": \"1507472057666\"," +
50                 "          \"model-vers\": {" +
51                 "            \"model-ver\": [" +
52                 "              {" +
53                 "                \"model-version-id\": \"7a6ee536-f052-46fa-aa7e-2fca9d674c44\"," +
54                 "                \"model-name\": \"vf_vEPDG\"," +
55                 "                \"model-version\": \"2.0\"," +
56                 "                \"model-description\": \"vEPDG\"," +
57                 "                \"distribution-status\": \"DISTRIBUTION_COMPLETE_ERROR\"," +
58                 "                \"resource-version\": \"1507649620979\"," +
59                 "                \"model-elements\": {" +
60                 "                  \"model-element\": [" +
61                 "                    {" +
62                 "                      \"model-element-uuid\": \"ccbc6dc9-58ad-4082-a81f-630114d99a70\"," +
63                 "                      \"new-data-del-flag\": \"T\"," +
64                 "                      \"cardinality\": \"unbounded\"," +
65                 "                      \"resource-version\": \"1507649620982\"," +
66                 "                      \"relationship-list\": {" +
67                 "                        \"relationship\": [" +
68                 "                          {" +
69                 "                            \"related-to\": \"model-ver\"," +
70                 "                            \"related-link\": \"/aai/v11/service-design-and-creation/models/model/acc6edd8-a8d4-4b93-afaa-0994068be14c/model-vers/model-ver/93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"," +
71                 "                            \"relationship-data\": [" +
72                 "                              {" +
73                 "                                \"relationship-key\": \"model.model-invariant-id\"," +
74                 "                                \"relationship-value\": \"acc6edd8-a8d4-4b93-afaa-0994068be14c\"" +
75                 "                              }," +
76                 "                              {" +
77                 "                                \"relationship-key\": \"model-ver.model-version-id\"," +
78                 "                                \"relationship-value\": \"93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"" +
79                 "                              }" +
80                 "                            ]," +
81                 "                            \"related-to-property\": [" +
82                 "                              {" +
83                 "                                \"property-key\": \"model-ver.model-name\"," +
84                 "                                \"property-value\": \"generic-vnf\"" +
85                 "                              }" +
86                 "                            ]" +
87                 "                          }" +
88                 "                        ]" +
89                 "                      }" +
90                 "                    }" +
91                 "                  ]" +
92                 "                }," +
93                 "                \"relationship-list\": {" +
94                 "                  \"relationship\": [" +
95                 "                    {" +
96                 "                      \"related-to\": \"model-element\"," +
97                 "                      \"related-link\": \"/aai/v11/service-design-and-creation/models/model/d661b5fd-e0be-457e-a5ca-e345621af761/model-vers/model-ver/6019af4d-1902-47b1-a7ee-4609c198bf37/model-elements/model-element/8cf71918-6cce-4e01-8049-3f980f8f2b00/model-elements/model-element/4703eeb3-7200-4546-aff2-6e942ac0c0e1\"," +
98                 "                      \"relationship-data\": [" +
99                 "                        {" +
100                 "                          \"relationship-key\": \"model.model-invariant-id\"," +
101                 "                          \"relationship-value\": \"d661b5fd-e0be-457e-a5ca-e345621af761\"" +
102                 "                        }," +
103                 "                        {" +
104                 "                          \"relationship-key\": \"model-ver.model-version-id\"," +
105                 "                          \"relationship-value\": \"6019af4d-1902-47b1-a7ee-4609c198bf37\"" +
106                 "                        }," +
107                 "                        {" +
108                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
109                 "                          \"relationship-value\": \"8cf71918-6cce-4e01-8049-3f980f8f2b00\"" +
110                 "                        }," +
111                 "                        {" +
112                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
113                 "                          \"relationship-value\": \"4703eeb3-7200-4546-aff2-6e942ac0c0e1\"" +
114                 "                        }" +
115                 "                      ]" +
116                 "                    }" +
117                 "                  ]" +
118                 "                }" +
119                 "              }," +
120                 "              {" +
121                 "                \"model-version-id\": \"eb5f56bf-5855-4e61-bd00-3e19a953bf02\"," +
122                 "                \"model-name\": \"vf_vEPDG\"," +
123                 "                \"model-version\": \"1.0\"," +
124                 "                \"model-description\": \"vEPDG\"," +
125                 "                \"resource-version\": \"1507472057702\"," +
126                 "                \"model-elements\": {" +
127                 "                  \"model-element\": [" +
128                 "                    {" +
129                 "                      \"model-element-uuid\": \"18881687-8dab-4ec8-ab65-ebf8f95a6599\"," +
130                 "                      \"new-data-del-flag\": \"T\"," +
131                 "                      \"cardinality\": \"unbounded\"," +
132                 "                      \"resource-version\": \"1507472057707\"," +
133                 "                      \"relationship-list\": {" +
134                 "                        \"relationship\": [" +
135                 "                          {" +
136                 "                            \"related-to\": \"model-ver\"," +
137                 "                            \"related-link\": \"/aai/v11/service-design-and-creation/models/model/acc6edd8-a8d4-4b93-afaa-0994068be14c/model-vers/model-ver/93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"," +
138                 "                            \"relationship-data\": [" +
139                 "                              {" +
140                 "                                \"relationship-key\": \"model.model-invariant-id\"," +
141                 "                                \"relationship-value\": \"acc6edd8-a8d4-4b93-afaa-0994068be14c\"" +
142                 "                              }," +
143                 "                              {" +
144                 "                                \"relationship-key\": \"model-ver.model-version-id\"," +
145                 "                                \"relationship-value\": \"93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"" +
146                 "                              }" +
147                 "                            ]," +
148                 "                            \"related-to-property\": [" +
149                 "                              {" +
150                 "                                \"property-key\": \"model-ver.model-name\"," +
151                 "                                \"property-value\": \"generic-vnf\"" +
152                 "                              }" +
153                 "                            ]" +
154                 "                          }" +
155                 "                        ]" +
156                 "                      }" +
157                 "                    }" +
158                 "                  ]" +
159                 "                }," +
160                 "                \"relationship-list\": {" +
161                 "                  \"relationship\": [" +
162                 "                    {" +
163                 "                      \"related-to\": \"model-element\"," +
164                 "                      \"related-link\": \"/aai/v11/service-design-and-creation/models/model/d661b5fd-e0be-457e-a5ca-e345621af761/model-vers/model-ver/de6f879b-37a9-44a5-97ed-cd52cc14bc47/model-elements/model-element/7a074be4-fcf1-46a5-88ee-41a7c7a6faab/model-elements/model-element/72f0adb5-5294-46f7-8085-a8aee9cb5f49\"," +
165                 "                      \"relationship-data\": [" +
166                 "                        {" +
167                 "                          \"relationship-key\": \"model.model-invariant-id\"," +
168                 "                          \"relationship-value\": \"d661b5fd-e0be-457e-a5ca-e345621af761\"" +
169                 "                        }," +
170                 "                        {" +
171                 "                          \"relationship-key\": \"model-ver.model-version-id\"," +
172                 "                          \"relationship-value\": \"de6f879b-37a9-44a5-97ed-cd52cc14bc47\"" +
173                 "                        }," +
174                 "                        {" +
175                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
176                 "                          \"relationship-value\": \"7a074be4-fcf1-46a5-88ee-41a7c7a6faab\"" +
177                 "                        }," +
178                 "                        {" +
179                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
180                 "                          \"relationship-value\": \"72f0adb5-5294-46f7-8085-a8aee9cb5f49\"" +
181                 "                        }" +
182                 "                      ]" +
183                 "                    }" +
184                 "                  ]" +
185                 "                }" +
186                 "              }," +
187                 "              {" +
188                 "                \"model-version-id\": \"b7f2e8fb-ac71-4ea0-a801-06ef1479ea84\"," +
189                 "                \"model-name\": \"vf_vEPDG\"," +
190                 "                \"model-version\": \"4.0\"," +
191                 "                \"model-description\": \"vEPDG_Up\"," +
192                 "                \"resource-version\": \"1508954433176\"," +
193                 "                \"model-elements\": {" +
194                 "                  \"model-element\": [" +
195                 "                    {" +
196                 "                      \"model-element-uuid\": \"4ed7025a-d37b-444f-8008-5c7c41d76d47\"," +
197                 "                      \"new-data-del-flag\": \"T\"," +
198                 "                      \"cardinality\": \"unbounded\"," +
199                 "                      \"resource-version\": \"1508954433179\"," +
200                 "                      \"relationship-list\": {" +
201                 "                        \"relationship\": [" +
202                 "                          {" +
203                 "                            \"related-to\": \"model-ver\"," +
204                 "                            \"related-link\": \"/aai/v11/service-design-and-creation/models/model/acc6edd8-a8d4-4b93-afaa-0994068be14c/model-vers/model-ver/93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"," +
205                 "                            \"relationship-data\": [" +
206                 "                              {" +
207                 "                                \"relationship-key\": \"model.model-invariant-id\"," +
208                 "                                \"relationship-value\": \"acc6edd8-a8d4-4b93-afaa-0994068be14c\"" +
209                 "                              }," +
210                 "                              {" +
211                 "                                \"relationship-key\": \"model-ver.model-version-id\"," +
212                 "                                \"relationship-value\": \"93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"" +
213                 "                              }" +
214                 "                            ]," +
215                 "                            \"related-to-property\": [" +
216                 "                              {" +
217                 "                                \"property-key\": \"model-ver.model-name\"," +
218                 "                                \"property-value\": \"generic-vnf\"" +
219                 "                              }" +
220                 "                            ]" +
221                 "                          }" +
222                 "                        ]" +
223                 "                      }" +
224                 "                    }" +
225                 "                  ]" +
226                 "                }," +
227                 "                \"relationship-list\": {" +
228                 "                  \"relationship\": [" +
229                 "                    {" +
230                 "                      \"related-to\": \"model-element\"," +
231                 "                      \"related-link\": \"/aai/v11/service-design-and-creation/models/model/d661b5fd-e0be-457e-a5ca-e345621af761/model-vers/model-ver/0e3f3390-48dd-4640-aed7-0eb873d40a97/model-elements/model-element/106d11a5-2b8c-4586-a56d-ee387e822757/model-elements/model-element/3d7e724a-6f05-4111-8b22-78d024c53081\"," +
232                 "                      \"relationship-data\": [" +
233                 "                        {" +
234                 "                          \"relationship-key\": \"model.model-invariant-id\"," +
235                 "                          \"relationship-value\": \"d661b5fd-e0be-457e-a5ca-e345621af761\"" +
236                 "                        }," +
237                 "                        {" +
238                 "                          \"relationship-key\": \"model-ver.model-version-id\"," +
239                 "                          \"relationship-value\": \"0e3f3390-48dd-4640-aed7-0eb873d40a97\"" +
240                 "                        }," +
241                 "                        {" +
242                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
243                 "                          \"relationship-value\": \"106d11a5-2b8c-4586-a56d-ee387e822757\"" +
244                 "                        }," +
245                 "                        {" +
246                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
247                 "                          \"relationship-value\": \"3d7e724a-6f05-4111-8b22-78d024c53081\"" +
248                 "                        }" +
249                 "                      ]" +
250                 "                    }" +
251                 "                  ]" +
252                 "                }" +
253                 "              }," +
254                 "              {" +
255                 "                \"model-version-id\": \"4117a0b6-e234-467d-b5b9-fe2f68c8b0fc\"," +
256                 "                \"model-name\": \"Grouping Service for Test\"," +
257                 "                \"model-version\": \"1.0\"," +
258                 "                \"model-description\": \"vEPDG_Up\"," +
259                 "                \"resource-version\": \"1508954433176\"," +
260                 "                \"model-elements\": {" +
261                 "                  \"model-element\": [" +
262                 "                    {" +
263                 "                      \"model-element-uuid\": \"4ed7025a-d37b-444f-8008-5c7c41d76d47\"," +
264                 "                      \"new-data-del-flag\": \"T\"," +
265                 "                      \"cardinality\": \"unbounded\"," +
266                 "                      \"resource-version\": \"1508954433179\"," +
267                 "                      \"relationship-list\": {" +
268                 "                        \"relationship\": [" +
269                 "                          {" +
270                 "                            \"related-to\": \"model-ver\"," +
271                 "                            \"related-link\": \"/aai/v11/service-design-and-creation/models/model/acc6edd8-a8d4-4b93-afaa-0994068be14c/model-vers/model-ver/93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"," +
272                 "                            \"relationship-data\": [" +
273                 "                              {" +
274                 "                                \"relationship-key\": \"model.model-invariant-id\"," +
275                 "                                \"relationship-value\": \"acc6edd8-a8d4-4b93-afaa-0994068be14c\"" +
276                 "                              }," +
277                 "                              {" +
278                 "                                \"relationship-key\": \"model-ver.model-version-id\"," +
279                 "                                \"relationship-value\": \"93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"" +
280                 "                              }" +
281                 "                            ]," +
282                 "                            \"related-to-property\": [" +
283                 "                              {" +
284                 "                                \"property-key\": \"model-ver.model-name\"," +
285                 "                                \"property-value\": \"generic-vnf\"" +
286                 "                              }" +
287                 "                            ]" +
288                 "                          }" +
289                 "                        ]" +
290                 "                      }" +
291                 "                    }" +
292                 "                  ]" +
293                 "                }," +
294                 "                \"relationship-list\": {" +
295                 "                  \"relationship\": [" +
296                 "                    {" +
297                 "                      \"related-to\": \"model-element\"," +
298                 "                      \"related-link\": \"/aai/v11/service-design-and-creation/models/model/d661b5fd-e0be-457e-a5ca-e345621af761/model-vers/model-ver/0e3f3390-48dd-4640-aed7-0eb873d40a97/model-elements/model-element/106d11a5-2b8c-4586-a56d-ee387e822757/model-elements/model-element/3d7e724a-6f05-4111-8b22-78d024c53081\"," +
299                 "                      \"relationship-data\": [" +
300                 "                        {" +
301                 "                          \"relationship-key\": \"model.model-invariant-id\"," +
302                 "                          \"relationship-value\": \"d661b5fd-e0be-457e-a5ca-e345621af761\"" +
303                 "                        }," +
304                 "                        {" +
305                 "                          \"relationship-key\": \"model-ver.model-version-id\"," +
306                 "                          \"relationship-value\": \"0e3f3390-48dd-4640-aed7-0eb873d40a97\"" +
307                 "                        }," +
308                 "                        {" +
309                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
310                 "                          \"relationship-value\": \"106d11a5-2b8c-4586-a56d-ee387e822757\"" +
311                 "                        }," +
312                 "                        {" +
313                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
314                 "                          \"relationship-value\": \"3d7e724a-6f05-4111-8b22-78d024c53081\"" +
315                 "                        }" +
316                 "                      ]" +
317                 "                    }" +
318                 "                  ]" +
319                 "                }" +
320                 "              }," +
321                 "              {" +
322                 "                \"model-version-id\": \"6e59c5de-f052-46fa-aa7e-2fca9d674c44\"," +
323                 "                \"model-name\": \"vf_vEPDG\"," +
324                 "                \"model-version\": \"5.0\"," +
325                 "                \"model-description\": \"vEPDG_Up\"," +
326                 "                \"resource-version\": \"1509570916147\"," +
327                 "                \"model-elements\": {" +
328                 "                  \"model-element\": [" +
329                 "                    {" +
330                 "                      \"model-element-uuid\": \"49899999-076d-456b-915c-078d1b2a05b3\"," +
331                 "                      \"new-data-del-flag\": \"T\"," +
332                 "                      \"cardinality\": \"unbounded\"," +
333                 "                      \"resource-version\": \"1509570916150\"," +
334                 "                      \"relationship-list\": {" +
335                 "                        \"relationship\": [" +
336                 "                          {" +
337                 "                            \"related-to\": \"model-ver\"," +
338                 "                            \"related-link\": \"/aai/v11/service-design-and-creation/models/model/acc6edd8-a8d4-4b93-afaa-0994068be14c/model-vers/model-ver/93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"," +
339                 "                            \"relationship-data\": [" +
340                 "                              {" +
341                 "                                \"relationship-key\": \"model.model-invariant-id\"," +
342                 "                                \"relationship-value\": \"acc6edd8-a8d4-4b93-afaa-0994068be14c\"" +
343                 "                              }," +
344                 "                              {" +
345                 "                                \"relationship-key\": \"model-ver.model-version-id\"," +
346                 "                                \"relationship-value\": \"93a6166f-b3d5-4f06-b4ba-aed48d009ad9\"" +
347                 "                              }" +
348                 "                            ]," +
349                 "                            \"related-to-property\": [" +
350                 "                              {" +
351                 "                                \"property-key\": \"model-ver.model-name\"," +
352                 "                                \"property-value\": \"generic-vnf\"" +
353                 "                              }" +
354                 "                            ]" +
355                 "                          }" +
356                 "                        ]" +
357                 "                      }" +
358                 "                    }" +
359                 "                  ]" +
360                 "                }," +
361                 "                \"relationship-list\": {" +
362                 "                  \"relationship\": [" +
363                 "                    {" +
364                 "                      \"related-to\": \"model-element\"," +
365                 "                      \"related-link\": \"/aai/v11/service-design-and-creation/models/model/d661b5fd-e0be-457e-a5ca-e345621af761/model-vers/model-ver/03655348-0148-4482-b0b7-a5de71ab6264/model-elements/model-element/e97f008f-fc19-4b6e-8842-e54ec6eafb6e/model-elements/model-element/cfc574f2-6869-41d3-bfae-42b54b711568\"," +
366                 "                      \"relationship-data\": [" +
367                 "                        {" +
368                 "                          \"relationship-key\": \"model.model-invariant-id\"," +
369                 "                          \"relationship-value\": \"d661b5fd-e0be-457e-a5ca-e345621af761\"" +
370                 "                        }," +
371                 "                        {" +
372                 "                          \"relationship-key\": \"model-ver.model-version-id\"," +
373                 "                          \"relationship-value\": \"03655348-0148-4482-b0b7-a5de71ab6264\"" +
374                 "                        }," +
375                 "                        {" +
376                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
377                 "                          \"relationship-value\": \"e97f008f-fc19-4b6e-8842-e54ec6eafb6e\"" +
378                 "                        }," +
379                 "                        {" +
380                 "                          \"relationship-key\": \"model-element.model-element-uuid\"," +
381                 "                          \"relationship-value\": \"cfc574f2-6869-41d3-bfae-42b54b711568\"" +
382                 "                        }" +
383                 "                      ]" +
384                 "                    }" +
385                 "                  ]" +
386                 "                }" +
387                 "              }" +
388                 "            ]" +
389                 "          }" +
390                 "        }").collect(joining(", ")) +
391                 "      ]" +
392                 "    }";
393     }
394 }