/* * Copyright © 2018 IBM. * Modifications Copyright © 2017-2018 AT&T Intellectual Property. * * 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. */ package org.onap.ccsdk.cds.controllerblueprints.resource.dict import com.fasterxml.jackson.annotation.JsonFormat import com.fasterxml.jackson.annotation.JsonProperty import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition import java.io.Serializable import java.util.Date open class ResourceDefinition { @JsonProperty(value = "name", required = true) lateinit var name: String @JsonProperty(value = "property", required = true) lateinit var property: PropertyDefinition var tags: String? = null @JsonProperty(value = "updated-by") lateinit var updatedBy: String @JsonProperty(value = "sources", required = true) lateinit var sources: MutableMap } open class ResourceAssignment { @JsonProperty(value = "name", required = true) lateinit var name: String @JsonProperty(value = "property") var property: PropertyDefinition? = null @JsonProperty("input-param") var inputParameter: Boolean = false @JsonProperty("dictionary-name") var dictionaryName: String? = null @JsonProperty("dictionary-source") var dictionarySource: String? = null /** Modified Source definition, Capability Source will use for script reference changes, * Rest Source will use for extra headers etc **/ @JsonProperty("dictionary-source-definition") var dictionarySourceDefinition: NodeTemplate? = null /** Duplicate field : Shall be used directly from Dictionary Source definition dependencies. **/ @JsonProperty("dependencies") var dependencies: MutableList? = null @JsonProperty("version") var version: Int = 0 @JsonProperty("status") var status: String? = null @JsonProperty("message") var message: String? = null @JsonProperty("updated-date") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") var updatedDate: Date? = null @JsonProperty("updated-by") var updatedBy: String? = null override fun toString(): String { return """ [ name = $name status = $status required = ${property?.required} dependencies = $dependencies dictionaryName = $dictionaryName dictionarySource = $dictionarySource ] """.trimIndent() } } /** * Interface for Source Definitions (ex Input Source, * Default Source, Database Source, Rest Sources, etc) */ interface ResourceSource : Serializable open class ResourceSourceMapping { lateinit var resourceSourceMappings: MutableMap }