Specify model at service creation

Allows a user to select a model when designing a service

Issue-ID: SDC-3621
Signed-off-by: aribeiro <anderson.ribeiro@est.tech>
Change-Id: I386e43ddeb649a4ba0805f153e4b47e8a528cff0
diff --git a/catalog-ui/src/app/ng2/app.module.ts b/catalog-ui/src/app/ng2/app.module.ts
index 88a5610..bb11199 100644
--- a/catalog-ui/src/app/ng2/app.module.ts
+++ b/catalog-ui/src/app/ng2/app.module.ts
@@ -100,6 +100,7 @@
 import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
 import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
 import { ElementService } from "./services/element.service";
+import { ModelService } from "./services/model.service";
 
 
 declare const __ENV__: string;
@@ -199,6 +200,7 @@
     ImportVSPService,
     OnboardingService,
     ElementService,
+    ModelService,
     ServiceServiceNg2,
     AutomatedUpgradeService,
     WorkflowServiceNg2,
diff --git a/catalog-ui/src/app/ng2/services/model.service.ts b/catalog-ui/src/app/ng2/services/model.service.ts
new file mode 100644
index 0000000..33d5729
--- /dev/null
+++ b/catalog-ui/src/app/ng2/services/model.service.ts
@@ -0,0 +1,37 @@
+/*
+* ============LICENSE_START=======================================================
+*  Copyright (C) 2021 Nordix Foundation. All rights reserved.
+*  ================================================================================
+*  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.
+*
+*  SPDX-License-Identifier: Apache-2.0
+*  ============LICENSE_END=========================================================
+*/
+import { HttpClient } from '@angular/common/http';
+import { Inject, Injectable } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+import { ISdcConfig, SdcConfigToken } from '../config/sdc-config.config';
+
+@Injectable()
+export class ModelService {
+
+  protected baseUrl;
+
+  constructor(protected http: HttpClient, @Inject(SdcConfigToken) sdcConfig: ISdcConfig) {
+    this.baseUrl = sdcConfig.api.root;
+  }
+
+  getModels():Observable<Model[]> {
+    return this.http.get<Model[]>(this.baseUrl + "/v1/catalog/model");
+  }
+
+}
diff --git a/catalog-ui/src/app/ng2/services/responses/component-generic-response.ts b/catalog-ui/src/app/ng2/services/responses/component-generic-response.ts
index 6011aab..96a2126 100644
--- a/catalog-ui/src/app/ng2/services/responses/component-generic-response.ts
+++ b/catalog-ui/src/app/ng2/services/responses/component-generic-response.ts
@@ -61,6 +61,7 @@
     public substitutionFilters: any;
     public derivedFromGenericType;
     public derivedFromGenericVersion;
+    public model:Model;
 
     deserialize (response): ComponentGenericResponse {
 
@@ -138,6 +139,9 @@
         if(response.derivedFromGenericVersion) {
             this.derivedFromGenericVersion = response.derivedFromGenericVersion;
         }
+        if(response.model) {
+            this.model = response.model;
+        }
         return this;
     }
 }