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 Variable(object):
12    """
13    Variable definitions in the pipeline.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new Variable object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param key:
22            The value to assign to the key property of this Variable.
23        :type key: str
24
25        :param model_version:
26            The value to assign to the model_version property of this Variable.
27        :type model_version: str
28
29        :param model_type:
30            The value to assign to the model_type property of this Variable.
31        :type model_type: str
32
33        :param parent_ref:
34            The value to assign to the parent_ref property of this Variable.
35        :type parent_ref: oci.data_integration.models.ParentReference
36
37        :param name:
38            The value to assign to the name property of this Variable.
39        :type name: str
40
41        :param description:
42            The value to assign to the description property of this Variable.
43        :type description: str
44
45        :param object_version:
46            The value to assign to the object_version property of this Variable.
47        :type object_version: int
48
49        :param object_status:
50            The value to assign to the object_status property of this Variable.
51        :type object_status: int
52
53        :param identifier:
54            The value to assign to the identifier property of this Variable.
55        :type identifier: str
56
57        :param type:
58            The value to assign to the type property of this Variable.
59        :type type: oci.data_integration.models.BaseType
60
61        :param config_values:
62            The value to assign to the config_values property of this Variable.
63        :type config_values: oci.data_integration.models.ConfigValues
64
65        :param default_value:
66            The value to assign to the default_value property of this Variable.
67        :type default_value: object
68
69        :param root_object_default_value:
70            The value to assign to the root_object_default_value property of this Variable.
71        :type root_object_default_value: oci.data_integration.models.RootObject
72
73        """
74        self.swagger_types = {
75            'key': 'str',
76            'model_version': 'str',
77            'model_type': 'str',
78            'parent_ref': 'ParentReference',
79            'name': 'str',
80            'description': 'str',
81            'object_version': 'int',
82            'object_status': 'int',
83            'identifier': 'str',
84            'type': 'BaseType',
85            'config_values': 'ConfigValues',
86            'default_value': 'object',
87            'root_object_default_value': 'RootObject'
88        }
89
90        self.attribute_map = {
91            'key': 'key',
92            'model_version': 'modelVersion',
93            'model_type': 'modelType',
94            'parent_ref': 'parentRef',
95            'name': 'name',
96            'description': 'description',
97            'object_version': 'objectVersion',
98            'object_status': 'objectStatus',
99            'identifier': 'identifier',
100            'type': 'type',
101            'config_values': 'configValues',
102            'default_value': 'defaultValue',
103            'root_object_default_value': 'rootObjectDefaultValue'
104        }
105
106        self._key = None
107        self._model_version = None
108        self._model_type = None
109        self._parent_ref = None
110        self._name = None
111        self._description = None
112        self._object_version = None
113        self._object_status = None
114        self._identifier = None
115        self._type = None
116        self._config_values = None
117        self._default_value = None
118        self._root_object_default_value = None
119
120    @property
121    def key(self):
122        """
123        Gets the key of this Variable.
124        Generated key that can be used in API calls to identify variable. On scenarios where reference to the variable is needed, a value can be passed in create.
125
126
127        :return: The key of this Variable.
128        :rtype: str
129        """
130        return self._key
131
132    @key.setter
133    def key(self, key):
134        """
135        Sets the key of this Variable.
136        Generated key that can be used in API calls to identify variable. On scenarios where reference to the variable is needed, a value can be passed in create.
137
138
139        :param key: The key of this Variable.
140        :type: str
141        """
142        self._key = key
143
144    @property
145    def model_version(self):
146        """
147        Gets the model_version of this Variable.
148        This is a version number that is used by the service to upgrade objects if needed through releases of the service.
149
150
151        :return: The model_version of this Variable.
152        :rtype: str
153        """
154        return self._model_version
155
156    @model_version.setter
157    def model_version(self, model_version):
158        """
159        Sets the model_version of this Variable.
160        This is a version number that is used by the service to upgrade objects if needed through releases of the service.
161
162
163        :param model_version: The model_version of this Variable.
164        :type: str
165        """
166        self._model_version = model_version
167
168    @property
169    def model_type(self):
170        """
171        Gets the model_type of this Variable.
172        The type of the object.
173
174
175        :return: The model_type of this Variable.
176        :rtype: str
177        """
178        return self._model_type
179
180    @model_type.setter
181    def model_type(self, model_type):
182        """
183        Sets the model_type of this Variable.
184        The type of the object.
185
186
187        :param model_type: The model_type of this Variable.
188        :type: str
189        """
190        self._model_type = model_type
191
192    @property
193    def parent_ref(self):
194        """
195        Gets the parent_ref of this Variable.
196
197        :return: The parent_ref of this Variable.
198        :rtype: oci.data_integration.models.ParentReference
199        """
200        return self._parent_ref
201
202    @parent_ref.setter
203    def parent_ref(self, parent_ref):
204        """
205        Sets the parent_ref of this Variable.
206
207        :param parent_ref: The parent_ref of this Variable.
208        :type: oci.data_integration.models.ParentReference
209        """
210        self._parent_ref = parent_ref
211
212    @property
213    def name(self):
214        """
215        Gets the name of this Variable.
216        Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters.
217
218
219        :return: The name of this Variable.
220        :rtype: str
221        """
222        return self._name
223
224    @name.setter
225    def name(self, name):
226        """
227        Sets the name of this Variable.
228        Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters.
229
230
231        :param name: The name of this Variable.
232        :type: str
233        """
234        self._name = name
235
236    @property
237    def description(self):
238        """
239        Gets the description of this Variable.
240        Detailed description for the object.
241
242
243        :return: The description of this Variable.
244        :rtype: str
245        """
246        return self._description
247
248    @description.setter
249    def description(self, description):
250        """
251        Sets the description of this Variable.
252        Detailed description for the object.
253
254
255        :param description: The description of this Variable.
256        :type: str
257        """
258        self._description = description
259
260    @property
261    def object_version(self):
262        """
263        Gets the object_version of this Variable.
264        This is used by the service for optimistic locking of the object, to prevent multiple users from simultaneously updating the object.
265
266
267        :return: The object_version of this Variable.
268        :rtype: int
269        """
270        return self._object_version
271
272    @object_version.setter
273    def object_version(self, object_version):
274        """
275        Sets the object_version of this Variable.
276        This is used by the service for optimistic locking of the object, to prevent multiple users from simultaneously updating the object.
277
278
279        :param object_version: The object_version of this Variable.
280        :type: int
281        """
282        self._object_version = object_version
283
284    @property
285    def object_status(self):
286        """
287        Gets the object_status of this Variable.
288        The status of an object that can be set to value 1 for shallow references across objects, other values reserved.
289
290
291        :return: The object_status of this Variable.
292        :rtype: int
293        """
294        return self._object_status
295
296    @object_status.setter
297    def object_status(self, object_status):
298        """
299        Sets the object_status of this Variable.
300        The status of an object that can be set to value 1 for shallow references across objects, other values reserved.
301
302
303        :param object_status: The object_status of this Variable.
304        :type: int
305        """
306        self._object_status = object_status
307
308    @property
309    def identifier(self):
310        """
311        Gets the identifier of this Variable.
312        Value can only contain upper case letters, underscore, and numbers. It should begin with upper case letter or underscore. The value can be modified.
313
314
315        :return: The identifier of this Variable.
316        :rtype: str
317        """
318        return self._identifier
319
320    @identifier.setter
321    def identifier(self, identifier):
322        """
323        Sets the identifier of this Variable.
324        Value can only contain upper case letters, underscore, and numbers. It should begin with upper case letter or underscore. The value can be modified.
325
326
327        :param identifier: The identifier of this Variable.
328        :type: str
329        """
330        self._identifier = identifier
331
332    @property
333    def type(self):
334        """
335        Gets the type of this Variable.
336
337        :return: The type of this Variable.
338        :rtype: oci.data_integration.models.BaseType
339        """
340        return self._type
341
342    @type.setter
343    def type(self, type):
344        """
345        Sets the type of this Variable.
346
347        :param type: The type of this Variable.
348        :type: oci.data_integration.models.BaseType
349        """
350        self._type = type
351
352    @property
353    def config_values(self):
354        """
355        Gets the config_values of this Variable.
356
357        :return: The config_values of this Variable.
358        :rtype: oci.data_integration.models.ConfigValues
359        """
360        return self._config_values
361
362    @config_values.setter
363    def config_values(self, config_values):
364        """
365        Sets the config_values of this Variable.
366
367        :param config_values: The config_values of this Variable.
368        :type: oci.data_integration.models.ConfigValues
369        """
370        self._config_values = config_values
371
372    @property
373    def default_value(self):
374        """
375        Gets the default_value of this Variable.
376        A default value for the vairable.
377
378
379        :return: The default_value of this Variable.
380        :rtype: object
381        """
382        return self._default_value
383
384    @default_value.setter
385    def default_value(self, default_value):
386        """
387        Sets the default_value of this Variable.
388        A default value for the vairable.
389
390
391        :param default_value: The default_value of this Variable.
392        :type: object
393        """
394        self._default_value = default_value
395
396    @property
397    def root_object_default_value(self):
398        """
399        Gets the root_object_default_value of this Variable.
400
401        :return: The root_object_default_value of this Variable.
402        :rtype: oci.data_integration.models.RootObject
403        """
404        return self._root_object_default_value
405
406    @root_object_default_value.setter
407    def root_object_default_value(self, root_object_default_value):
408        """
409        Sets the root_object_default_value of this Variable.
410
411        :param root_object_default_value: The root_object_default_value of this Variable.
412        :type: oci.data_integration.models.RootObject
413        """
414        self._root_object_default_value = root_object_default_value
415
416    def __repr__(self):
417        return formatted_flat_dict(self)
418
419    def __eq__(self, other):
420        if other is None:
421            return False
422
423        return self.__dict__ == other.__dict__
424
425    def __ne__(self, other):
426        return not self == other
427