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 ReferenceSummary(object):
12    """
13    This is the reference summary information.
14    """
15
16    #: A constant which can be used with the type property of a ReferenceSummary.
17    #: This constant has a value of "ORACLE_DATA_ASSET"
18    TYPE_ORACLE_DATA_ASSET = "ORACLE_DATA_ASSET"
19
20    #: A constant which can be used with the type property of a ReferenceSummary.
21    #: This constant has a value of "ORACLE_OBJECT_STORAGE_DATA_ASSET"
22    TYPE_ORACLE_OBJECT_STORAGE_DATA_ASSET = "ORACLE_OBJECT_STORAGE_DATA_ASSET"
23
24    #: A constant which can be used with the type property of a ReferenceSummary.
25    #: This constant has a value of "ORACLE_ATP_DATA_ASSET"
26    TYPE_ORACLE_ATP_DATA_ASSET = "ORACLE_ATP_DATA_ASSET"
27
28    #: A constant which can be used with the type property of a ReferenceSummary.
29    #: This constant has a value of "ORACLE_ADWC_DATA_ASSET"
30    TYPE_ORACLE_ADWC_DATA_ASSET = "ORACLE_ADWC_DATA_ASSET"
31
32    #: A constant which can be used with the type property of a ReferenceSummary.
33    #: This constant has a value of "MYSQL_DATA_ASSET"
34    TYPE_MYSQL_DATA_ASSET = "MYSQL_DATA_ASSET"
35
36    #: A constant which can be used with the type property of a ReferenceSummary.
37    #: This constant has a value of "GENERIC_JDBC_DATA_ASSET"
38    TYPE_GENERIC_JDBC_DATA_ASSET = "GENERIC_JDBC_DATA_ASSET"
39
40    def __init__(self, **kwargs):
41        """
42        Initializes a new ReferenceSummary object with values from keyword arguments.
43        The following keyword arguments are supported (corresponding to the getters/setters of this class):
44
45        :param key:
46            The value to assign to the key property of this ReferenceSummary.
47        :type key: str
48
49        :param name:
50            The value to assign to the name property of this ReferenceSummary.
51        :type name: str
52
53        :param identifier:
54            The value to assign to the identifier property of this ReferenceSummary.
55        :type identifier: str
56
57        :param identifier_path:
58            The value to assign to the identifier_path property of this ReferenceSummary.
59        :type identifier_path: str
60
61        :param description:
62            The value to assign to the description property of this ReferenceSummary.
63        :type description: str
64
65        :param type:
66            The value to assign to the type property of this ReferenceSummary.
67            Allowed values for this property are: "ORACLE_DATA_ASSET", "ORACLE_OBJECT_STORAGE_DATA_ASSET", "ORACLE_ATP_DATA_ASSET", "ORACLE_ADWC_DATA_ASSET", "MYSQL_DATA_ASSET", "GENERIC_JDBC_DATA_ASSET", 'UNKNOWN_ENUM_VALUE'.
68            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
69        :type type: str
70
71        :param target_object:
72            The value to assign to the target_object property of this ReferenceSummary.
73        :type target_object: object
74
75        :param aggregator_key:
76            The value to assign to the aggregator_key property of this ReferenceSummary.
77        :type aggregator_key: str
78
79        :param used_by:
80            The value to assign to the used_by property of this ReferenceSummary.
81        :type used_by: list[oci.data_integration.models.ReferenceUsedBy]
82
83        :param child_references:
84            The value to assign to the child_references property of this ReferenceSummary.
85        :type child_references: list[oci.data_integration.models.ChildReference]
86
87        """
88        self.swagger_types = {
89            'key': 'str',
90            'name': 'str',
91            'identifier': 'str',
92            'identifier_path': 'str',
93            'description': 'str',
94            'type': 'str',
95            'target_object': 'object',
96            'aggregator_key': 'str',
97            'used_by': 'list[ReferenceUsedBy]',
98            'child_references': 'list[ChildReference]'
99        }
100
101        self.attribute_map = {
102            'key': 'key',
103            'name': 'name',
104            'identifier': 'identifier',
105            'identifier_path': 'identifierPath',
106            'description': 'description',
107            'type': 'type',
108            'target_object': 'targetObject',
109            'aggregator_key': 'aggregatorKey',
110            'used_by': 'usedBy',
111            'child_references': 'childReferences'
112        }
113
114        self._key = None
115        self._name = None
116        self._identifier = None
117        self._identifier_path = None
118        self._description = None
119        self._type = None
120        self._target_object = None
121        self._aggregator_key = None
122        self._used_by = None
123        self._child_references = None
124
125    @property
126    def key(self):
127        """
128        Gets the key of this ReferenceSummary.
129        The reference's key, key of the object that is being used by a published object or its dependents.
130
131
132        :return: The key of this ReferenceSummary.
133        :rtype: str
134        """
135        return self._key
136
137    @key.setter
138    def key(self, key):
139        """
140        Sets the key of this ReferenceSummary.
141        The reference's key, key of the object that is being used by a published object or its dependents.
142
143
144        :param key: The key of this ReferenceSummary.
145        :type: str
146        """
147        self._key = key
148
149    @property
150    def name(self):
151        """
152        Gets the name of this ReferenceSummary.
153        The name of reference object.
154
155
156        :return: The name of this ReferenceSummary.
157        :rtype: str
158        """
159        return self._name
160
161    @name.setter
162    def name(self, name):
163        """
164        Sets the name of this ReferenceSummary.
165        The name of reference object.
166
167
168        :param name: The name of this ReferenceSummary.
169        :type: str
170        """
171        self._name = name
172
173    @property
174    def identifier(self):
175        """
176        Gets the identifier of this ReferenceSummary.
177        The identifier of reference object.
178
179
180        :return: The identifier of this ReferenceSummary.
181        :rtype: str
182        """
183        return self._identifier
184
185    @identifier.setter
186    def identifier(self, identifier):
187        """
188        Sets the identifier of this ReferenceSummary.
189        The identifier of reference object.
190
191
192        :param identifier: The identifier of this ReferenceSummary.
193        :type: str
194        """
195        self._identifier = identifier
196
197    @property
198    def identifier_path(self):
199        """
200        Gets the identifier_path of this ReferenceSummary.
201        The identifier path of reference object.
202
203
204        :return: The identifier_path of this ReferenceSummary.
205        :rtype: str
206        """
207        return self._identifier_path
208
209    @identifier_path.setter
210    def identifier_path(self, identifier_path):
211        """
212        Sets the identifier_path of this ReferenceSummary.
213        The identifier path of reference object.
214
215
216        :param identifier_path: The identifier_path of this ReferenceSummary.
217        :type: str
218        """
219        self._identifier_path = identifier_path
220
221    @property
222    def description(self):
223        """
224        Gets the description of this ReferenceSummary.
225        The description of reference object.
226
227
228        :return: The description of this ReferenceSummary.
229        :rtype: str
230        """
231        return self._description
232
233    @description.setter
234    def description(self, description):
235        """
236        Sets the description of this ReferenceSummary.
237        The description of reference object.
238
239
240        :param description: The description of this ReferenceSummary.
241        :type: str
242        """
243        self._description = description
244
245    @property
246    def type(self):
247        """
248        Gets the type of this ReferenceSummary.
249        The type of reference object.
250
251        Allowed values for this property are: "ORACLE_DATA_ASSET", "ORACLE_OBJECT_STORAGE_DATA_ASSET", "ORACLE_ATP_DATA_ASSET", "ORACLE_ADWC_DATA_ASSET", "MYSQL_DATA_ASSET", "GENERIC_JDBC_DATA_ASSET", 'UNKNOWN_ENUM_VALUE'.
252        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
253
254
255        :return: The type of this ReferenceSummary.
256        :rtype: str
257        """
258        return self._type
259
260    @type.setter
261    def type(self, type):
262        """
263        Sets the type of this ReferenceSummary.
264        The type of reference object.
265
266
267        :param type: The type of this ReferenceSummary.
268        :type: str
269        """
270        allowed_values = ["ORACLE_DATA_ASSET", "ORACLE_OBJECT_STORAGE_DATA_ASSET", "ORACLE_ATP_DATA_ASSET", "ORACLE_ADWC_DATA_ASSET", "MYSQL_DATA_ASSET", "GENERIC_JDBC_DATA_ASSET"]
271        if not value_allowed_none_or_none_sentinel(type, allowed_values):
272            type = 'UNKNOWN_ENUM_VALUE'
273        self._type = type
274
275    @property
276    def target_object(self):
277        """
278        Gets the target_object of this ReferenceSummary.
279        The target object referenced. References are made to data assets and child references are made to connections. The type defining this reference is mentioned in the property type.
280
281
282        :return: The target_object of this ReferenceSummary.
283        :rtype: object
284        """
285        return self._target_object
286
287    @target_object.setter
288    def target_object(self, target_object):
289        """
290        Sets the target_object of this ReferenceSummary.
291        The target object referenced. References are made to data assets and child references are made to connections. The type defining this reference is mentioned in the property type.
292
293
294        :param target_object: The target_object of this ReferenceSummary.
295        :type: object
296        """
297        self._target_object = target_object
298
299    @property
300    def aggregator_key(self):
301        """
302        Gets the aggregator_key of this ReferenceSummary.
303        The aggregator of reference object.
304
305
306        :return: The aggregator_key of this ReferenceSummary.
307        :rtype: str
308        """
309        return self._aggregator_key
310
311    @aggregator_key.setter
312    def aggregator_key(self, aggregator_key):
313        """
314        Sets the aggregator_key of this ReferenceSummary.
315        The aggregator of reference object.
316
317
318        :param aggregator_key: The aggregator_key of this ReferenceSummary.
319        :type: str
320        """
321        self._aggregator_key = aggregator_key
322
323    @property
324    def used_by(self):
325        """
326        Gets the used_by of this ReferenceSummary.
327        List of published objects where this is used.
328
329
330        :return: The used_by of this ReferenceSummary.
331        :rtype: list[oci.data_integration.models.ReferenceUsedBy]
332        """
333        return self._used_by
334
335    @used_by.setter
336    def used_by(self, used_by):
337        """
338        Sets the used_by of this ReferenceSummary.
339        List of published objects where this is used.
340
341
342        :param used_by: The used_by of this ReferenceSummary.
343        :type: list[oci.data_integration.models.ReferenceUsedBy]
344        """
345        self._used_by = used_by
346
347    @property
348    def child_references(self):
349        """
350        Gets the child_references of this ReferenceSummary.
351        List of references that are dependent on this reference.
352
353
354        :return: The child_references of this ReferenceSummary.
355        :rtype: list[oci.data_integration.models.ChildReference]
356        """
357        return self._child_references
358
359    @child_references.setter
360    def child_references(self, child_references):
361        """
362        Sets the child_references of this ReferenceSummary.
363        List of references that are dependent on this reference.
364
365
366        :param child_references: The child_references of this ReferenceSummary.
367        :type: list[oci.data_integration.models.ChildReference]
368        """
369        self._child_references = child_references
370
371    def __repr__(self):
372        return formatted_flat_dict(self)
373
374    def __eq__(self, other):
375        if other is None:
376            return False
377
378        return self.__dict__ == other.__dict__
379
380    def __ne__(self, other):
381        return not self == other
382