AT&T 1712 and 1802 release code
[so.git] / cloudify-client / src / main / java / org / openecomp / mso / cloudify / v3 / model / Blueprint.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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.openecomp.mso.cloudify.v3.model;
22
23 import java.io.IOException;
24 import java.io.Serializable;
25 import java.util.Date;
26 import java.util.Map;
27
28 import com.fasterxml.jackson.annotation.JsonIgnore;
29 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
30 import com.fasterxml.jackson.annotation.JsonProperty;
31 import com.fasterxml.jackson.databind.ObjectMapper;
32
33 @JsonIgnoreProperties(ignoreUnknown = true)
34 //@JsonRootName("blueprint")
35 public class Blueprint implements Serializable {
36
37         private static final long serialVersionUID = 1L;
38
39         @JsonProperty("created_at")
40     private Date createdAt;
41
42     @JsonProperty("description")
43     private String description;
44
45     @JsonProperty("id")
46     private String id;
47     
48     @JsonProperty("main_file_name")
49     private String mainFileName;
50     
51     @JsonProperty("plan")
52     private Map<String, Object> plan = null;
53     
54     @JsonProperty("tenant_name")
55     private String tenantName;
56     
57     @JsonProperty("updated_at")
58     private Date updatedAt;
59     
60     // ObjectMapper instance to parse Json stack outputs
61     @JsonIgnore
62         private static ObjectMapper mapper = new ObjectMapper();
63
64     public Date getCreatedAt() {
65         return createdAt;
66     }
67
68     public void setCreatedAt(Date createdAt) {
69         this.createdAt = createdAt;
70     }
71
72     public String getDescription() {
73         return description;
74     }
75
76     public void setDescription(String description) {
77         this.description = description;
78     }
79     
80     public String getId() {
81         return id;
82     }
83
84     public void setId(String id) {
85         this.id = id;
86     }
87
88     public String getMainFileName() {
89         return mainFileName;
90     }
91
92     public void setMainFileName(String mainFileName) {
93         this.mainFileName = mainFileName;
94     }
95     
96     public Map<String, Object> getPlan() {
97         return this.plan;
98     }
99     
100     public void setPlan(Map<String, Object> plan) {
101         this.plan = plan;
102     }
103
104     public String getTenantName() {
105                 return tenantName;
106         }
107
108         public void setTenantName(String tenantName) {
109                 this.tenantName = tenantName;
110         }
111
112         public Date getUpdatedAt() {
113         return updatedAt;
114     }
115
116     public void setUpdatedAt(Date updatedAt) {
117         this.updatedAt = updatedAt;
118     }
119
120
121         /*
122          * Return an  output as a Json-mapped Object of the provided type.
123          * This is useful for json-object outputs.
124          */
125         public <T> T getMapValue (Map<String,Object> map, String key, Class<T> type)
126         {
127                 if (map.containsKey(key)) {
128                         try {
129                                 String s = mapper.writeValueAsString(map.get(key));
130                                 return (mapper.readValue(s, type));
131                         }
132                         catch (IOException e) {
133                                 return null;
134                         }
135                 }
136                 return null;
137         }
138
139         @Override
140     public String toString() {
141         return "Deployment{" +
142                 "id='" + id + '\'' +
143                 ", description='" + description + '\'' +
144                 ", createdAt=" + createdAt +
145                 ", updatedAt=" + updatedAt +
146                 ", mainFileName='" + mainFileName + '\'' +
147                 ", tenantName='" + tenantName + '\'' +
148                 '}';
149     }
150
151     /*  Add a definition of the Cloudify "plan" attribute once we know what it is.
152
153         @JsonIgnoreProperties(ignoreUnknown=true)
154         public static final class Plan {
155         }
156         
157 */
158     
159
160 }