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