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 ConnectHarness(object):
12    """
13    Detailed representation of a connect harness.
14    """
15
16    #: A constant which can be used with the lifecycle_state property of a ConnectHarness.
17    #: This constant has a value of "CREATING"
18    LIFECYCLE_STATE_CREATING = "CREATING"
19
20    #: A constant which can be used with the lifecycle_state property of a ConnectHarness.
21    #: This constant has a value of "ACTIVE"
22    LIFECYCLE_STATE_ACTIVE = "ACTIVE"
23
24    #: A constant which can be used with the lifecycle_state property of a ConnectHarness.
25    #: This constant has a value of "DELETING"
26    LIFECYCLE_STATE_DELETING = "DELETING"
27
28    #: A constant which can be used with the lifecycle_state property of a ConnectHarness.
29    #: This constant has a value of "DELETED"
30    LIFECYCLE_STATE_DELETED = "DELETED"
31
32    #: A constant which can be used with the lifecycle_state property of a ConnectHarness.
33    #: This constant has a value of "FAILED"
34    LIFECYCLE_STATE_FAILED = "FAILED"
35
36    #: A constant which can be used with the lifecycle_state property of a ConnectHarness.
37    #: This constant has a value of "UPDATING"
38    LIFECYCLE_STATE_UPDATING = "UPDATING"
39
40    def __init__(self, **kwargs):
41        """
42        Initializes a new ConnectHarness object with values from keyword arguments.
43        The following keyword arguments are supported (corresponding to the getters/setters of this class):
44
45        :param name:
46            The value to assign to the name property of this ConnectHarness.
47        :type name: str
48
49        :param id:
50            The value to assign to the id property of this ConnectHarness.
51        :type id: str
52
53        :param compartment_id:
54            The value to assign to the compartment_id property of this ConnectHarness.
55        :type compartment_id: str
56
57        :param lifecycle_state:
58            The value to assign to the lifecycle_state property of this ConnectHarness.
59            Allowed values for this property are: "CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "UPDATING", 'UNKNOWN_ENUM_VALUE'.
60            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
61        :type lifecycle_state: str
62
63        :param lifecycle_state_details:
64            The value to assign to the lifecycle_state_details property of this ConnectHarness.
65        :type lifecycle_state_details: str
66
67        :param time_created:
68            The value to assign to the time_created property of this ConnectHarness.
69        :type time_created: datetime
70
71        :param freeform_tags:
72            The value to assign to the freeform_tags property of this ConnectHarness.
73        :type freeform_tags: dict(str, str)
74
75        :param defined_tags:
76            The value to assign to the defined_tags property of this ConnectHarness.
77        :type defined_tags: dict(str, dict(str, object))
78
79        """
80        self.swagger_types = {
81            'name': 'str',
82            'id': 'str',
83            'compartment_id': 'str',
84            'lifecycle_state': 'str',
85            'lifecycle_state_details': 'str',
86            'time_created': 'datetime',
87            'freeform_tags': 'dict(str, str)',
88            'defined_tags': 'dict(str, dict(str, object))'
89        }
90
91        self.attribute_map = {
92            'name': 'name',
93            'id': 'id',
94            'compartment_id': 'compartmentId',
95            'lifecycle_state': 'lifecycleState',
96            'lifecycle_state_details': 'lifecycleStateDetails',
97            'time_created': 'timeCreated',
98            'freeform_tags': 'freeformTags',
99            'defined_tags': 'definedTags'
100        }
101
102        self._name = None
103        self._id = None
104        self._compartment_id = None
105        self._lifecycle_state = None
106        self._lifecycle_state_details = None
107        self._time_created = None
108        self._freeform_tags = None
109        self._defined_tags = None
110
111    @property
112    def name(self):
113        """
114        **[Required]** Gets the name of this ConnectHarness.
115        The name of the connect harness. Avoid entering confidential information.
116
117        Example: `JDBCConnector`
118
119
120        :return: The name of this ConnectHarness.
121        :rtype: str
122        """
123        return self._name
124
125    @name.setter
126    def name(self, name):
127        """
128        Sets the name of this ConnectHarness.
129        The name of the connect harness. Avoid entering confidential information.
130
131        Example: `JDBCConnector`
132
133
134        :param name: The name of this ConnectHarness.
135        :type: str
136        """
137        self._name = name
138
139    @property
140    def id(self):
141        """
142        **[Required]** Gets the id of this ConnectHarness.
143        The OCID of the connect harness.
144
145
146        :return: The id of this ConnectHarness.
147        :rtype: str
148        """
149        return self._id
150
151    @id.setter
152    def id(self, id):
153        """
154        Sets the id of this ConnectHarness.
155        The OCID of the connect harness.
156
157
158        :param id: The id of this ConnectHarness.
159        :type: str
160        """
161        self._id = id
162
163    @property
164    def compartment_id(self):
165        """
166        **[Required]** Gets the compartment_id of this ConnectHarness.
167        The OCID of the compartment that contains the connect harness.
168
169
170        :return: The compartment_id of this ConnectHarness.
171        :rtype: str
172        """
173        return self._compartment_id
174
175    @compartment_id.setter
176    def compartment_id(self, compartment_id):
177        """
178        Sets the compartment_id of this ConnectHarness.
179        The OCID of the compartment that contains the connect harness.
180
181
182        :param compartment_id: The compartment_id of this ConnectHarness.
183        :type: str
184        """
185        self._compartment_id = compartment_id
186
187    @property
188    def lifecycle_state(self):
189        """
190        **[Required]** Gets the lifecycle_state of this ConnectHarness.
191        The current state of the connect harness.
192
193        Allowed values for this property are: "CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "UPDATING", 'UNKNOWN_ENUM_VALUE'.
194        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
195
196
197        :return: The lifecycle_state of this ConnectHarness.
198        :rtype: str
199        """
200        return self._lifecycle_state
201
202    @lifecycle_state.setter
203    def lifecycle_state(self, lifecycle_state):
204        """
205        Sets the lifecycle_state of this ConnectHarness.
206        The current state of the connect harness.
207
208
209        :param lifecycle_state: The lifecycle_state of this ConnectHarness.
210        :type: str
211        """
212        allowed_values = ["CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "UPDATING"]
213        if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
214            lifecycle_state = 'UNKNOWN_ENUM_VALUE'
215        self._lifecycle_state = lifecycle_state
216
217    @property
218    def lifecycle_state_details(self):
219        """
220        Gets the lifecycle_state_details of this ConnectHarness.
221        Any additional details about the current state of the connect harness.
222
223
224        :return: The lifecycle_state_details of this ConnectHarness.
225        :rtype: str
226        """
227        return self._lifecycle_state_details
228
229    @lifecycle_state_details.setter
230    def lifecycle_state_details(self, lifecycle_state_details):
231        """
232        Sets the lifecycle_state_details of this ConnectHarness.
233        Any additional details about the current state of the connect harness.
234
235
236        :param lifecycle_state_details: The lifecycle_state_details of this ConnectHarness.
237        :type: str
238        """
239        self._lifecycle_state_details = lifecycle_state_details
240
241    @property
242    def time_created(self):
243        """
244        **[Required]** Gets the time_created of this ConnectHarness.
245        The date and time the connect harness was created, expressed in in `RFC 3339`__ timestamp format.
246
247        Example: `2018-04-20T00:00:07.405Z`
248
249        __ https://tools.ietf.org/rfc/rfc3339
250
251
252        :return: The time_created of this ConnectHarness.
253        :rtype: datetime
254        """
255        return self._time_created
256
257    @time_created.setter
258    def time_created(self, time_created):
259        """
260        Sets the time_created of this ConnectHarness.
261        The date and time the connect harness was created, expressed in in `RFC 3339`__ timestamp format.
262
263        Example: `2018-04-20T00:00:07.405Z`
264
265        __ https://tools.ietf.org/rfc/rfc3339
266
267
268        :param time_created: The time_created of this ConnectHarness.
269        :type: datetime
270        """
271        self._time_created = time_created
272
273    @property
274    def freeform_tags(self):
275        """
276        Gets the freeform_tags of this ConnectHarness.
277        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. Exists for cross-compatibility only.
278        For more information, see `Resource Tags`__.
279
280        Example: `{\"Department\": \"Finance\"}`
281
282        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
283
284
285        :return: The freeform_tags of this ConnectHarness.
286        :rtype: dict(str, str)
287        """
288        return self._freeform_tags
289
290    @freeform_tags.setter
291    def freeform_tags(self, freeform_tags):
292        """
293        Sets the freeform_tags of this ConnectHarness.
294        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. Exists for cross-compatibility only.
295        For more information, see `Resource Tags`__.
296
297        Example: `{\"Department\": \"Finance\"}`
298
299        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
300
301
302        :param freeform_tags: The freeform_tags of this ConnectHarness.
303        :type: dict(str, str)
304        """
305        self._freeform_tags = freeform_tags
306
307    @property
308    def defined_tags(self):
309        """
310        Gets the defined_tags of this ConnectHarness.
311        Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see `Resource Tags`__.
312
313        Example: `{\"Operations\": {\"CostCenter\": \"42\"}}'
314
315        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
316
317
318        :return: The defined_tags of this ConnectHarness.
319        :rtype: dict(str, dict(str, object))
320        """
321        return self._defined_tags
322
323    @defined_tags.setter
324    def defined_tags(self, defined_tags):
325        """
326        Sets the defined_tags of this ConnectHarness.
327        Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see `Resource Tags`__.
328
329        Example: `{\"Operations\": {\"CostCenter\": \"42\"}}'
330
331        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
332
333
334        :param defined_tags: The defined_tags of this ConnectHarness.
335        :type: dict(str, dict(str, object))
336        """
337        self._defined_tags = defined_tags
338
339    def __repr__(self):
340        return formatted_flat_dict(self)
341
342    def __eq__(self, other):
343        if other is None:
344            return False
345
346        return self.__dict__ == other.__dict__
347
348    def __ne__(self, other):
349        return not self == other
350