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