dfc1b2806f9aae925f1867cce550cd61895c6e8b
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.policy.clamp.controlloop.runtime.main.parameters;
20
21 import java.util.concurrent.TimeUnit;
22 import lombok.Getter;
23 import org.onap.policy.common.parameters.ParameterGroupImpl;
24 import org.onap.policy.common.parameters.annotations.Min;
25 import org.onap.policy.common.parameters.annotations.NotBlank;
26 import org.onap.policy.common.parameters.annotations.NotNull;
27
28 /**
29  * Parameters for communicating with participants.
30  */
31 @NotNull
32 @NotBlank
33 @Getter
34 public class ParticipantParameters extends ParameterGroupImpl {
35
36     /**
37      * Default maximum message age, in milliseconds, that should be examined. Any message
38      * older than this is discarded.
39      */
40     public static final long DEFAULT_MAX_AGE_MS = TimeUnit.MILLISECONDS.convert(10, TimeUnit.MINUTES);
41
42
43     @Min(1)
44     private long heartBeatMs;
45
46     @Min(1)
47     private long maxMessageAgeMs =  DEFAULT_MAX_AGE_MS;
48
49     private ParticipantUpdateParameters updateParameters;
50     private ParticipantStateChangeParameters stateChangeParameters;
51
52
53     /**
54      * Constructs the object.
55      */
56     public ParticipantParameters() {
57         super(ParticipantParameters.class.getSimpleName());
58     }
59 }