1# coding: utf-8
2# Copyright (c) 2016, 2021, Oracle and/or its affiliates.  All rights reserved.
3# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
5
6from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel  # noqa: F401
7from oci.decorators import init_model_state_from_kwargs
8
9
10@init_model_state_from_kwargs
11class Plugin(object):
12    """
13    The agent plugin
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new Plugin object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param name:
22            The value to assign to the name property of this Plugin.
23        :type name: str
24
25        :param version:
26            The value to assign to the version property of this Plugin.
27        :type version: str
28
29        :param status:
30            The value to assign to the status property of this Plugin.
31        :type status: str
32
33        :param last_update_time:
34            The value to assign to the last_update_time property of this Plugin.
35        :type last_update_time: datetime
36
37        :param message:
38            The value to assign to the message property of this Plugin.
39        :type message: str
40
41        """
42        self.swagger_types = {
43            'name': 'str',
44            'version': 'str',
45            'status': 'str',
46            'last_update_time': 'datetime',
47            'message': 'str'
48        }
49
50        self.attribute_map = {
51            'name': 'name',
52            'version': 'version',
53            'status': 'status',
54            'last_update_time': 'lastUpdateTime',
55            'message': 'message'
56        }
57
58        self._name = None
59        self._version = None
60        self._status = None
61        self._last_update_time = None
62        self._message = None
63
64    @property
65    def name(self):
66        """
67        **[Required]** Gets the name of this Plugin.
68        The plugin name
69
70
71        :return: The name of this Plugin.
72        :rtype: str
73        """
74        return self._name
75
76    @name.setter
77    def name(self, name):
78        """
79        Sets the name of this Plugin.
80        The plugin name
81
82
83        :param name: The name of this Plugin.
84        :type: str
85        """
86        self._name = name
87
88    @property
89    def version(self):
90        """
91        **[Required]** Gets the version of this Plugin.
92        The plugin version
93
94
95        :return: The version of this Plugin.
96        :rtype: str
97        """
98        return self._version
99
100    @version.setter
101    def version(self, version):
102        """
103        Sets the version of this Plugin.
104        The plugin version
105
106
107        :param version: The version of this Plugin.
108        :type: str
109        """
110        self._version = version
111
112    @property
113    def status(self):
114        """
115        **[Required]** Gets the status of this Plugin.
116        The plugin status
117
118
119        :return: The status of this Plugin.
120        :rtype: str
121        """
122        return self._status
123
124    @status.setter
125    def status(self, status):
126        """
127        Sets the status of this Plugin.
128        The plugin status
129
130
131        :param status: The status of this Plugin.
132        :type: str
133        """
134        self._status = status
135
136    @property
137    def last_update_time(self):
138        """
139        Gets the last_update_time of this Plugin.
140        The last update time of the plugin
141
142
143        :return: The last_update_time of this Plugin.
144        :rtype: datetime
145        """
146        return self._last_update_time
147
148    @last_update_time.setter
149    def last_update_time(self, last_update_time):
150        """
151        Sets the last_update_time of this Plugin.
152        The last update time of the plugin
153
154
155        :param last_update_time: The last_update_time of this Plugin.
156        :type: datetime
157        """
158        self._last_update_time = last_update_time
159
160    @property
161    def message(self):
162        """
163        Gets the message of this Plugin.
164        The optional message from the agent plugin
165
166
167        :return: The message of this Plugin.
168        :rtype: str
169        """
170        return self._message
171
172    @message.setter
173    def message(self, message):
174        """
175        Sets the message of this Plugin.
176        The optional message from the agent plugin
177
178
179        :param message: The message of this Plugin.
180        :type: str
181        """
182        self._message = message
183
184    def __repr__(self):
185        return formatted_flat_dict(self)
186
187    def __eq__(self, other):
188        if other is None:
189            return False
190
191        return self.__dict__ == other.__dict__
192
193    def __ne__(self, other):
194        return not self == other
195