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 EntitySummary(object):
12    """
13    Summary of an data entity. A representation of data with a set of attributes, normally representing a single
14    business entity. Synonymous with 'table' or 'view' in a database, or a single logical file structure
15    that one or many files may match.
16    """
17
18    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
19    #: This constant has a value of "CREATING"
20    LIFECYCLE_STATE_CREATING = "CREATING"
21
22    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
23    #: This constant has a value of "ACTIVE"
24    LIFECYCLE_STATE_ACTIVE = "ACTIVE"
25
26    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
27    #: This constant has a value of "INACTIVE"
28    LIFECYCLE_STATE_INACTIVE = "INACTIVE"
29
30    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
31    #: This constant has a value of "UPDATING"
32    LIFECYCLE_STATE_UPDATING = "UPDATING"
33
34    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
35    #: This constant has a value of "DELETING"
36    LIFECYCLE_STATE_DELETING = "DELETING"
37
38    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
39    #: This constant has a value of "DELETED"
40    LIFECYCLE_STATE_DELETED = "DELETED"
41
42    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
43    #: This constant has a value of "FAILED"
44    LIFECYCLE_STATE_FAILED = "FAILED"
45
46    #: A constant which can be used with the lifecycle_state property of a EntitySummary.
47    #: This constant has a value of "MOVING"
48    LIFECYCLE_STATE_MOVING = "MOVING"
49
50    def __init__(self, **kwargs):
51        """
52        Initializes a new EntitySummary object with values from keyword arguments.
53        The following keyword arguments are supported (corresponding to the getters/setters of this class):
54
55        :param key:
56            The value to assign to the key property of this EntitySummary.
57        :type key: str
58
59        :param display_name:
60            The value to assign to the display_name property of this EntitySummary.
61        :type display_name: str
62
63        :param business_name:
64            The value to assign to the business_name property of this EntitySummary.
65        :type business_name: str
66
67        :param description:
68            The value to assign to the description property of this EntitySummary.
69        :type description: str
70
71        :param is_logical:
72            The value to assign to the is_logical property of this EntitySummary.
73        :type is_logical: bool
74
75        :param is_partition:
76            The value to assign to the is_partition property of this EntitySummary.
77        :type is_partition: bool
78
79        :param data_asset_key:
80            The value to assign to the data_asset_key property of this EntitySummary.
81        :type data_asset_key: str
82
83        :param folder_key:
84            The value to assign to the folder_key property of this EntitySummary.
85        :type folder_key: str
86
87        :param folder_name:
88            The value to assign to the folder_name property of this EntitySummary.
89        :type folder_name: str
90
91        :param external_key:
92            The value to assign to the external_key property of this EntitySummary.
93        :type external_key: str
94
95        :param pattern_key:
96            The value to assign to the pattern_key property of this EntitySummary.
97        :type pattern_key: str
98
99        :param type_key:
100            The value to assign to the type_key property of this EntitySummary.
101        :type type_key: str
102
103        :param realized_expression:
104            The value to assign to the realized_expression property of this EntitySummary.
105        :type realized_expression: str
106
107        :param path:
108            The value to assign to the path property of this EntitySummary.
109        :type path: str
110
111        :param time_created:
112            The value to assign to the time_created property of this EntitySummary.
113        :type time_created: datetime
114
115        :param time_updated:
116            The value to assign to the time_updated property of this EntitySummary.
117        :type time_updated: datetime
118
119        :param updated_by_id:
120            The value to assign to the updated_by_id property of this EntitySummary.
121        :type updated_by_id: str
122
123        :param uri:
124            The value to assign to the uri property of this EntitySummary.
125        :type uri: str
126
127        :param lifecycle_state:
128            The value to assign to the lifecycle_state property of this EntitySummary.
129            Allowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "MOVING", 'UNKNOWN_ENUM_VALUE'.
130            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
131        :type lifecycle_state: str
132
133        :param properties:
134            The value to assign to the properties property of this EntitySummary.
135        :type properties: dict(str, dict(str, str))
136
137        """
138        self.swagger_types = {
139            'key': 'str',
140            'display_name': 'str',
141            'business_name': 'str',
142            'description': 'str',
143            'is_logical': 'bool',
144            'is_partition': 'bool',
145            'data_asset_key': 'str',
146            'folder_key': 'str',
147            'folder_name': 'str',
148            'external_key': 'str',
149            'pattern_key': 'str',
150            'type_key': 'str',
151            'realized_expression': 'str',
152            'path': 'str',
153            'time_created': 'datetime',
154            'time_updated': 'datetime',
155            'updated_by_id': 'str',
156            'uri': 'str',
157            'lifecycle_state': 'str',
158            'properties': 'dict(str, dict(str, str))'
159        }
160
161        self.attribute_map = {
162            'key': 'key',
163            'display_name': 'displayName',
164            'business_name': 'businessName',
165            'description': 'description',
166            'is_logical': 'isLogical',
167            'is_partition': 'isPartition',
168            'data_asset_key': 'dataAssetKey',
169            'folder_key': 'folderKey',
170            'folder_name': 'folderName',
171            'external_key': 'externalKey',
172            'pattern_key': 'patternKey',
173            'type_key': 'typeKey',
174            'realized_expression': 'realizedExpression',
175            'path': 'path',
176            'time_created': 'timeCreated',
177            'time_updated': 'timeUpdated',
178            'updated_by_id': 'updatedById',
179            'uri': 'uri',
180            'lifecycle_state': 'lifecycleState',
181            'properties': 'properties'
182        }
183
184        self._key = None
185        self._display_name = None
186        self._business_name = None
187        self._description = None
188        self._is_logical = None
189        self._is_partition = None
190        self._data_asset_key = None
191        self._folder_key = None
192        self._folder_name = None
193        self._external_key = None
194        self._pattern_key = None
195        self._type_key = None
196        self._realized_expression = None
197        self._path = None
198        self._time_created = None
199        self._time_updated = None
200        self._updated_by_id = None
201        self._uri = None
202        self._lifecycle_state = None
203        self._properties = None
204
205    @property
206    def key(self):
207        """
208        **[Required]** Gets the key of this EntitySummary.
209        Unique data entity key that is immutable.
210
211
212        :return: The key of this EntitySummary.
213        :rtype: str
214        """
215        return self._key
216
217    @key.setter
218    def key(self, key):
219        """
220        Sets the key of this EntitySummary.
221        Unique data entity key that is immutable.
222
223
224        :param key: The key of this EntitySummary.
225        :type: str
226        """
227        self._key = key
228
229    @property
230    def display_name(self):
231        """
232        Gets the display_name of this EntitySummary.
233        A user-friendly display name. Does not have to be unique, and it's changeable.
234        Avoid entering confidential information.
235
236
237        :return: The display_name of this EntitySummary.
238        :rtype: str
239        """
240        return self._display_name
241
242    @display_name.setter
243    def display_name(self, display_name):
244        """
245        Sets the display_name of this EntitySummary.
246        A user-friendly display name. Does not have to be unique, and it's changeable.
247        Avoid entering confidential information.
248
249
250        :param display_name: The display_name of this EntitySummary.
251        :type: str
252        """
253        self._display_name = display_name
254
255    @property
256    def business_name(self):
257        """
258        Gets the business_name of this EntitySummary.
259        Optional user friendly business name of the data entity. If set, this supplements the harvested display name of the object.
260
261
262        :return: The business_name of this EntitySummary.
263        :rtype: str
264        """
265        return self._business_name
266
267    @business_name.setter
268    def business_name(self, business_name):
269        """
270        Sets the business_name of this EntitySummary.
271        Optional user friendly business name of the data entity. If set, this supplements the harvested display name of the object.
272
273
274        :param business_name: The business_name of this EntitySummary.
275        :type: str
276        """
277        self._business_name = business_name
278
279    @property
280    def description(self):
281        """
282        Gets the description of this EntitySummary.
283        Detailed description of a data entity.
284
285
286        :return: The description of this EntitySummary.
287        :rtype: str
288        """
289        return self._description
290
291    @description.setter
292    def description(self, description):
293        """
294        Sets the description of this EntitySummary.
295        Detailed description of a data entity.
296
297
298        :param description: The description of this EntitySummary.
299        :type: str
300        """
301        self._description = description
302
303    @property
304    def is_logical(self):
305        """
306        Gets the is_logical of this EntitySummary.
307        Property that identifies if the object is a physical object (materialized) or virtual/logical object
308        defined on other objects.
309
310
311        :return: The is_logical of this EntitySummary.
312        :rtype: bool
313        """
314        return self._is_logical
315
316    @is_logical.setter
317    def is_logical(self, is_logical):
318        """
319        Sets the is_logical of this EntitySummary.
320        Property that identifies if the object is a physical object (materialized) or virtual/logical object
321        defined on other objects.
322
323
324        :param is_logical: The is_logical of this EntitySummary.
325        :type: bool
326        """
327        self._is_logical = is_logical
328
329    @property
330    def is_partition(self):
331        """
332        Gets the is_partition of this EntitySummary.
333        Property that identifies if an object is a sub object of a physical or materialized parent object.
334
335
336        :return: The is_partition of this EntitySummary.
337        :rtype: bool
338        """
339        return self._is_partition
340
341    @is_partition.setter
342    def is_partition(self, is_partition):
343        """
344        Sets the is_partition of this EntitySummary.
345        Property that identifies if an object is a sub object of a physical or materialized parent object.
346
347
348        :param is_partition: The is_partition of this EntitySummary.
349        :type: bool
350        """
351        self._is_partition = is_partition
352
353    @property
354    def data_asset_key(self):
355        """
356        Gets the data_asset_key of this EntitySummary.
357        Unique key of the parent data asset.
358
359
360        :return: The data_asset_key of this EntitySummary.
361        :rtype: str
362        """
363        return self._data_asset_key
364
365    @data_asset_key.setter
366    def data_asset_key(self, data_asset_key):
367        """
368        Sets the data_asset_key of this EntitySummary.
369        Unique key of the parent data asset.
370
371
372        :param data_asset_key: The data_asset_key of this EntitySummary.
373        :type: str
374        """
375        self._data_asset_key = data_asset_key
376
377    @property
378    def folder_key(self):
379        """
380        Gets the folder_key of this EntitySummary.
381        Key of the associated folder.
382
383
384        :return: The folder_key of this EntitySummary.
385        :rtype: str
386        """
387        return self._folder_key
388
389    @folder_key.setter
390    def folder_key(self, folder_key):
391        """
392        Sets the folder_key of this EntitySummary.
393        Key of the associated folder.
394
395
396        :param folder_key: The folder_key of this EntitySummary.
397        :type: str
398        """
399        self._folder_key = folder_key
400
401    @property
402    def folder_name(self):
403        """
404        Gets the folder_name of this EntitySummary.
405        Name of the associated folder. This name is harvested from the source data asset when the parent folder for the entiy is harvested.
406
407
408        :return: The folder_name of this EntitySummary.
409        :rtype: str
410        """
411        return self._folder_name
412
413    @folder_name.setter
414    def folder_name(self, folder_name):
415        """
416        Sets the folder_name of this EntitySummary.
417        Name of the associated folder. This name is harvested from the source data asset when the parent folder for the entiy is harvested.
418
419
420        :param folder_name: The folder_name of this EntitySummary.
421        :type: str
422        """
423        self._folder_name = folder_name
424
425    @property
426    def external_key(self):
427        """
428        Gets the external_key of this EntitySummary.
429        Unique external key of this object in the source system.
430
431
432        :return: The external_key of this EntitySummary.
433        :rtype: str
434        """
435        return self._external_key
436
437    @external_key.setter
438    def external_key(self, external_key):
439        """
440        Sets the external_key of this EntitySummary.
441        Unique external key of this object in the source system.
442
443
444        :param external_key: The external_key of this EntitySummary.
445        :type: str
446        """
447        self._external_key = external_key
448
449    @property
450    def pattern_key(self):
451        """
452        Gets the pattern_key of this EntitySummary.
453        Key of the associated pattern if this is a logical entity.
454
455
456        :return: The pattern_key of this EntitySummary.
457        :rtype: str
458        """
459        return self._pattern_key
460
461    @pattern_key.setter
462    def pattern_key(self, pattern_key):
463        """
464        Sets the pattern_key of this EntitySummary.
465        Key of the associated pattern if this is a logical entity.
466
467
468        :param pattern_key: The pattern_key of this EntitySummary.
469        :type: str
470        """
471        self._pattern_key = pattern_key
472
473    @property
474    def type_key(self):
475        """
476        Gets the type_key of this EntitySummary.
477        The type of data entity object. Type keys can be found via the '/types' endpoint.
478
479
480        :return: The type_key of this EntitySummary.
481        :rtype: str
482        """
483        return self._type_key
484
485    @type_key.setter
486    def type_key(self, type_key):
487        """
488        Sets the type_key of this EntitySummary.
489        The type of data entity object. Type keys can be found via the '/types' endpoint.
490
491
492        :param type_key: The type_key of this EntitySummary.
493        :type: str
494        """
495        self._type_key = type_key
496
497    @property
498    def realized_expression(self):
499        """
500        Gets the realized_expression of this EntitySummary.
501        The expression realized after resolving qualifiers . Used in deriving this logical entity
502
503
504        :return: The realized_expression of this EntitySummary.
505        :rtype: str
506        """
507        return self._realized_expression
508
509    @realized_expression.setter
510    def realized_expression(self, realized_expression):
511        """
512        Sets the realized_expression of this EntitySummary.
513        The expression realized after resolving qualifiers . Used in deriving this logical entity
514
515
516        :param realized_expression: The realized_expression of this EntitySummary.
517        :type: str
518        """
519        self._realized_expression = realized_expression
520
521    @property
522    def path(self):
523        """
524        Gets the path of this EntitySummary.
525        Full path of the data entity.
526
527
528        :return: The path of this EntitySummary.
529        :rtype: str
530        """
531        return self._path
532
533    @path.setter
534    def path(self, path):
535        """
536        Sets the path of this EntitySummary.
537        Full path of the data entity.
538
539
540        :param path: The path of this EntitySummary.
541        :type: str
542        """
543        self._path = path
544
545    @property
546    def time_created(self):
547        """
548        Gets the time_created of this EntitySummary.
549        The date and time the data entity was created, in the format defined by `RFC3339`__.
550        Example: `2019-03-25T21:10:29.600Z`
551
552        __ https://tools.ietf.org/html/rfc3339
553
554
555        :return: The time_created of this EntitySummary.
556        :rtype: datetime
557        """
558        return self._time_created
559
560    @time_created.setter
561    def time_created(self, time_created):
562        """
563        Sets the time_created of this EntitySummary.
564        The date and time the data entity was created, in the format defined by `RFC3339`__.
565        Example: `2019-03-25T21:10:29.600Z`
566
567        __ https://tools.ietf.org/html/rfc3339
568
569
570        :param time_created: The time_created of this EntitySummary.
571        :type: datetime
572        """
573        self._time_created = time_created
574
575    @property
576    def time_updated(self):
577        """
578        Gets the time_updated of this EntitySummary.
579        The last time that any change was made to the data entity. An `RFC3339`__ formatted datetime string.
580
581        __ https://tools.ietf.org/html/rfc3339
582
583
584        :return: The time_updated of this EntitySummary.
585        :rtype: datetime
586        """
587        return self._time_updated
588
589    @time_updated.setter
590    def time_updated(self, time_updated):
591        """
592        Sets the time_updated of this EntitySummary.
593        The last time that any change was made to the data entity. An `RFC3339`__ formatted datetime string.
594
595        __ https://tools.ietf.org/html/rfc3339
596
597
598        :param time_updated: The time_updated of this EntitySummary.
599        :type: datetime
600        """
601        self._time_updated = time_updated
602
603    @property
604    def updated_by_id(self):
605        """
606        Gets the updated_by_id of this EntitySummary.
607        OCID of the user who updated this object in the data catalog.
608
609
610        :return: The updated_by_id of this EntitySummary.
611        :rtype: str
612        """
613        return self._updated_by_id
614
615    @updated_by_id.setter
616    def updated_by_id(self, updated_by_id):
617        """
618        Sets the updated_by_id of this EntitySummary.
619        OCID of the user who updated this object in the data catalog.
620
621
622        :param updated_by_id: The updated_by_id of this EntitySummary.
623        :type: str
624        """
625        self._updated_by_id = updated_by_id
626
627    @property
628    def uri(self):
629        """
630        Gets the uri of this EntitySummary.
631        URI to the data entity instance in the API.
632
633
634        :return: The uri of this EntitySummary.
635        :rtype: str
636        """
637        return self._uri
638
639    @uri.setter
640    def uri(self, uri):
641        """
642        Sets the uri of this EntitySummary.
643        URI to the data entity instance in the API.
644
645
646        :param uri: The uri of this EntitySummary.
647        :type: str
648        """
649        self._uri = uri
650
651    @property
652    def lifecycle_state(self):
653        """
654        Gets the lifecycle_state of this EntitySummary.
655        State of the data entity.
656
657        Allowed values for this property are: "CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "MOVING", 'UNKNOWN_ENUM_VALUE'.
658        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
659
660
661        :return: The lifecycle_state of this EntitySummary.
662        :rtype: str
663        """
664        return self._lifecycle_state
665
666    @lifecycle_state.setter
667    def lifecycle_state(self, lifecycle_state):
668        """
669        Sets the lifecycle_state of this EntitySummary.
670        State of the data entity.
671
672
673        :param lifecycle_state: The lifecycle_state of this EntitySummary.
674        :type: str
675        """
676        allowed_values = ["CREATING", "ACTIVE", "INACTIVE", "UPDATING", "DELETING", "DELETED", "FAILED", "MOVING"]
677        if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
678            lifecycle_state = 'UNKNOWN_ENUM_VALUE'
679        self._lifecycle_state = lifecycle_state
680
681    @property
682    def properties(self):
683        """
684        Gets the properties of this EntitySummary.
685        A map of maps that contains the properties which are specific to the entity type. Each entity type
686        definition defines it's set of required and optional properties. The map keys are category names and the
687        values are maps of property name to property value. Every property is contained inside of a category. Most
688        data entities have required properties within the \"default\" category.
689        Example: `{\"properties\": { \"default\": { \"key1\": \"value1\"}}}`
690
691
692        :return: The properties of this EntitySummary.
693        :rtype: dict(str, dict(str, str))
694        """
695        return self._properties
696
697    @properties.setter
698    def properties(self, properties):
699        """
700        Sets the properties of this EntitySummary.
701        A map of maps that contains the properties which are specific to the entity type. Each entity type
702        definition defines it's set of required and optional properties. The map keys are category names and the
703        values are maps of property name to property value. Every property is contained inside of a category. Most
704        data entities have required properties within the \"default\" category.
705        Example: `{\"properties\": { \"default\": { \"key1\": \"value1\"}}}`
706
707
708        :param properties: The properties of this EntitySummary.
709        :type: dict(str, dict(str, str))
710        """
711        self._properties = properties
712
713    def __repr__(self):
714        return formatted_flat_dict(self)
715
716    def __eq__(self, other):
717        if other is None:
718            return False
719
720        return self.__dict__ == other.__dict__
721
722    def __ne__(self, other):
723        return not self == other
724