Refactor rest clients and support timeouts
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / commons / rest-lib / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / rest / BluePrintRestLibData.kt
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  * Modifications Copyright © 2019 Huawei.
4  * Modifications Copyright © 2019 Bell Canada.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 package org.onap.ccsdk.cds.blueprintsprocessor.rest
20
21 open class RestClientProperties {
22
23     lateinit var type: String
24     lateinit var url: String
25     var connectTimeout: Int = 0
26     var socketTimeout: Int = 0
27     var connectionRequestTimeout: Int = 0
28     var additionalHeaders: Map<String, String>? = null
29 }
30
31 open class SSLRestClientProperties : RestClientProperties() {
32
33     lateinit var keyStoreInstance: String // JKS, PKCS12
34     lateinit var sslTrust: String
35     lateinit var sslTrustPassword: String
36     var sslTrustIgnoreHostname: Boolean = false
37     var sslKey: String? = null
38     var sslKeyPassword: String? = null
39 }
40
41 open class SSLBasicAuthRestClientProperties : SSLRestClientProperties() {
42     lateinit var password: String
43     lateinit var username: String
44 }
45
46 // FIXME("Define token properties")
47 open class SSLTokenAuthRestClientProperties : SSLRestClientProperties() {
48
49     var tokenAuth: TokenAuthRestClientProperties? = null
50 }
51
52 open class BasicAuthRestClientProperties : RestClientProperties() {
53
54     lateinit var password: String
55     lateinit var username: String
56 }
57
58 open class TokenAuthRestClientProperties : RestClientProperties() {
59
60     var token: String? = null
61 }
62
63 open class PolicyManagerRestClientProperties : RestClientProperties() {
64
65     lateinit var env: String
66     lateinit var clientAuth: String
67     lateinit var authorisation: String
68 }