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