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 User(object):
12    """
13    The summary of a specific User.
14    """
15
16    #: A constant which can be used with the status property of a User.
17    #: This constant has a value of "OPEN"
18    STATUS_OPEN = "OPEN"
19
20    #: A constant which can be used with the status property of a User.
21    #: This constant has a value of "EXPIRED"
22    STATUS_EXPIRED = "EXPIRED"
23
24    #: A constant which can be used with the status property of a User.
25    #: This constant has a value of "EXPIRED_GRACE"
26    STATUS_EXPIRED_GRACE = "EXPIRED_GRACE"
27
28    #: A constant which can be used with the status property of a User.
29    #: This constant has a value of "LOCKED"
30    STATUS_LOCKED = "LOCKED"
31
32    #: A constant which can be used with the status property of a User.
33    #: This constant has a value of "LOCKED_TIMED"
34    STATUS_LOCKED_TIMED = "LOCKED_TIMED"
35
36    #: A constant which can be used with the status property of a User.
37    #: This constant has a value of "EXPIRED_AND_LOCKED"
38    STATUS_EXPIRED_AND_LOCKED = "EXPIRED_AND_LOCKED"
39
40    #: A constant which can be used with the status property of a User.
41    #: This constant has a value of "EXPIRED_GRACE_AND_LOCKED"
42    STATUS_EXPIRED_GRACE_AND_LOCKED = "EXPIRED_GRACE_AND_LOCKED"
43
44    #: A constant which can be used with the status property of a User.
45    #: This constant has a value of "EXPIRED_AND_LOCKED_TIMED"
46    STATUS_EXPIRED_AND_LOCKED_TIMED = "EXPIRED_AND_LOCKED_TIMED"
47
48    #: A constant which can be used with the status property of a User.
49    #: This constant has a value of "EXPIRED_GRACE_AND_LOCKED_TIMED"
50    STATUS_EXPIRED_GRACE_AND_LOCKED_TIMED = "EXPIRED_GRACE_AND_LOCKED_TIMED"
51
52    #: A constant which can be used with the status property of a User.
53    #: This constant has a value of "OPEN_AND_IN_ROLLOVER"
54    STATUS_OPEN_AND_IN_ROLLOVER = "OPEN_AND_IN_ROLLOVER"
55
56    #: A constant which can be used with the status property of a User.
57    #: This constant has a value of "EXPIRED_AND_IN_ROLLOVER"
58    STATUS_EXPIRED_AND_IN_ROLLOVER = "EXPIRED_AND_IN_ROLLOVER"
59
60    #: A constant which can be used with the status property of a User.
61    #: This constant has a value of "LOCKED_AND_IN_ROLLOVER"
62    STATUS_LOCKED_AND_IN_ROLLOVER = "LOCKED_AND_IN_ROLLOVER"
63
64    #: A constant which can be used with the status property of a User.
65    #: This constant has a value of "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER"
66    STATUS_EXPIRED_AND_LOCKED_AND_IN_ROLLOVER = "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER"
67
68    #: A constant which can be used with the status property of a User.
69    #: This constant has a value of "LOCKED_TIMED_AND_IN_ROLLOVER"
70    STATUS_LOCKED_TIMED_AND_IN_ROLLOVER = "LOCKED_TIMED_AND_IN_ROLLOVER"
71
72    #: A constant which can be used with the status property of a User.
73    #: This constant has a value of "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL"
74    STATUS_EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL = "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL"
75
76    #: A constant which can be used with the editions_enabled property of a User.
77    #: This constant has a value of "YES"
78    EDITIONS_ENABLED_YES = "YES"
79
80    #: A constant which can be used with the editions_enabled property of a User.
81    #: This constant has a value of "NO"
82    EDITIONS_ENABLED_NO = "NO"
83
84    #: A constant which can be used with the authentication property of a User.
85    #: This constant has a value of "NONE"
86    AUTHENTICATION_NONE = "NONE"
87
88    #: A constant which can be used with the authentication property of a User.
89    #: This constant has a value of "EXTERNAL"
90    AUTHENTICATION_EXTERNAL = "EXTERNAL"
91
92    #: A constant which can be used with the authentication property of a User.
93    #: This constant has a value of "GLOBAL"
94    AUTHENTICATION_GLOBAL = "GLOBAL"
95
96    #: A constant which can be used with the authentication property of a User.
97    #: This constant has a value of "PASSWORD"
98    AUTHENTICATION_PASSWORD = "PASSWORD"
99
100    #: A constant which can be used with the proxy_connect property of a User.
101    #: This constant has a value of "YES"
102    PROXY_CONNECT_YES = "YES"
103
104    #: A constant which can be used with the proxy_connect property of a User.
105    #: This constant has a value of "NO"
106    PROXY_CONNECT_NO = "NO"
107
108    #: A constant which can be used with the common property of a User.
109    #: This constant has a value of "YES"
110    COMMON_YES = "YES"
111
112    #: A constant which can be used with the common property of a User.
113    #: This constant has a value of "NO"
114    COMMON_NO = "NO"
115
116    #: A constant which can be used with the oracle_maintained property of a User.
117    #: This constant has a value of "YES"
118    ORACLE_MAINTAINED_YES = "YES"
119
120    #: A constant which can be used with the oracle_maintained property of a User.
121    #: This constant has a value of "NO"
122    ORACLE_MAINTAINED_NO = "NO"
123
124    #: A constant which can be used with the inherited property of a User.
125    #: This constant has a value of "YES"
126    INHERITED_YES = "YES"
127
128    #: A constant which can be used with the inherited property of a User.
129    #: This constant has a value of "NO"
130    INHERITED_NO = "NO"
131
132    #: A constant which can be used with the implicit property of a User.
133    #: This constant has a value of "YES"
134    IMPLICIT_YES = "YES"
135
136    #: A constant which can be used with the implicit property of a User.
137    #: This constant has a value of "NO"
138    IMPLICIT_NO = "NO"
139
140    #: A constant which can be used with the all_shared property of a User.
141    #: This constant has a value of "YES"
142    ALL_SHARED_YES = "YES"
143
144    #: A constant which can be used with the all_shared property of a User.
145    #: This constant has a value of "NO"
146    ALL_SHARED_NO = "NO"
147
148    #: A constant which can be used with the external_shared property of a User.
149    #: This constant has a value of "YES"
150    EXTERNAL_SHARED_YES = "YES"
151
152    #: A constant which can be used with the external_shared property of a User.
153    #: This constant has a value of "NO"
154    EXTERNAL_SHARED_NO = "NO"
155
156    def __init__(self, **kwargs):
157        """
158        Initializes a new User object with values from keyword arguments.
159        The following keyword arguments are supported (corresponding to the getters/setters of this class):
160
161        :param name:
162            The value to assign to the name property of this User.
163        :type name: str
164
165        :param status:
166            The value to assign to the status property of this User.
167            Allowed values for this property are: "OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL", 'UNKNOWN_ENUM_VALUE'.
168            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
169        :type status: str
170
171        :param time_locked:
172            The value to assign to the time_locked property of this User.
173        :type time_locked: datetime
174
175        :param time_expiring:
176            The value to assign to the time_expiring property of this User.
177        :type time_expiring: datetime
178
179        :param default_tablespace:
180            The value to assign to the default_tablespace property of this User.
181        :type default_tablespace: str
182
183        :param temp_tablespace:
184            The value to assign to the temp_tablespace property of this User.
185        :type temp_tablespace: str
186
187        :param local_temp_tablespace:
188            The value to assign to the local_temp_tablespace property of this User.
189        :type local_temp_tablespace: str
190
191        :param time_created:
192            The value to assign to the time_created property of this User.
193        :type time_created: datetime
194
195        :param profile:
196            The value to assign to the profile property of this User.
197        :type profile: str
198
199        :param consumer_group:
200            The value to assign to the consumer_group property of this User.
201        :type consumer_group: str
202
203        :param external_name:
204            The value to assign to the external_name property of this User.
205        :type external_name: str
206
207        :param password_versions:
208            The value to assign to the password_versions property of this User.
209        :type password_versions: str
210
211        :param editions_enabled:
212            The value to assign to the editions_enabled property of this User.
213            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
214            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
215        :type editions_enabled: str
216
217        :param authentication:
218            The value to assign to the authentication property of this User.
219            Allowed values for this property are: "NONE", "EXTERNAL", "GLOBAL", "PASSWORD", 'UNKNOWN_ENUM_VALUE'.
220            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
221        :type authentication: str
222
223        :param proxy_connect:
224            The value to assign to the proxy_connect property of this User.
225            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
226            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
227        :type proxy_connect: str
228
229        :param common:
230            The value to assign to the common property of this User.
231            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
232            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
233        :type common: str
234
235        :param time_last_login:
236            The value to assign to the time_last_login property of this User.
237        :type time_last_login: datetime
238
239        :param oracle_maintained:
240            The value to assign to the oracle_maintained property of this User.
241            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
242            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
243        :type oracle_maintained: str
244
245        :param inherited:
246            The value to assign to the inherited property of this User.
247            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
248            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
249        :type inherited: str
250
251        :param default_collation:
252            The value to assign to the default_collation property of this User.
253        :type default_collation: str
254
255        :param implicit:
256            The value to assign to the implicit property of this User.
257            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
258            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
259        :type implicit: str
260
261        :param all_shared:
262            The value to assign to the all_shared property of this User.
263            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
264            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
265        :type all_shared: str
266
267        :param external_shared:
268            The value to assign to the external_shared property of this User.
269            Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
270            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
271        :type external_shared: str
272
273        :param time_password_changed:
274            The value to assign to the time_password_changed property of this User.
275        :type time_password_changed: datetime
276
277        """
278        self.swagger_types = {
279            'name': 'str',
280            'status': 'str',
281            'time_locked': 'datetime',
282            'time_expiring': 'datetime',
283            'default_tablespace': 'str',
284            'temp_tablespace': 'str',
285            'local_temp_tablespace': 'str',
286            'time_created': 'datetime',
287            'profile': 'str',
288            'consumer_group': 'str',
289            'external_name': 'str',
290            'password_versions': 'str',
291            'editions_enabled': 'str',
292            'authentication': 'str',
293            'proxy_connect': 'str',
294            'common': 'str',
295            'time_last_login': 'datetime',
296            'oracle_maintained': 'str',
297            'inherited': 'str',
298            'default_collation': 'str',
299            'implicit': 'str',
300            'all_shared': 'str',
301            'external_shared': 'str',
302            'time_password_changed': 'datetime'
303        }
304
305        self.attribute_map = {
306            'name': 'name',
307            'status': 'status',
308            'time_locked': 'timeLocked',
309            'time_expiring': 'timeExpiring',
310            'default_tablespace': 'defaultTablespace',
311            'temp_tablespace': 'tempTablespace',
312            'local_temp_tablespace': 'localTempTablespace',
313            'time_created': 'timeCreated',
314            'profile': 'profile',
315            'consumer_group': 'consumerGroup',
316            'external_name': 'externalName',
317            'password_versions': 'passwordVersions',
318            'editions_enabled': 'editionsEnabled',
319            'authentication': 'authentication',
320            'proxy_connect': 'proxyConnect',
321            'common': 'common',
322            'time_last_login': 'timeLastLogin',
323            'oracle_maintained': 'oracleMaintained',
324            'inherited': 'inherited',
325            'default_collation': 'defaultCollation',
326            'implicit': 'implicit',
327            'all_shared': 'allShared',
328            'external_shared': 'externalShared',
329            'time_password_changed': 'timePasswordChanged'
330        }
331
332        self._name = None
333        self._status = None
334        self._time_locked = None
335        self._time_expiring = None
336        self._default_tablespace = None
337        self._temp_tablespace = None
338        self._local_temp_tablespace = None
339        self._time_created = None
340        self._profile = None
341        self._consumer_group = None
342        self._external_name = None
343        self._password_versions = None
344        self._editions_enabled = None
345        self._authentication = None
346        self._proxy_connect = None
347        self._common = None
348        self._time_last_login = None
349        self._oracle_maintained = None
350        self._inherited = None
351        self._default_collation = None
352        self._implicit = None
353        self._all_shared = None
354        self._external_shared = None
355        self._time_password_changed = None
356
357    @property
358    def name(self):
359        """
360        **[Required]** Gets the name of this User.
361        The name of the User.
362
363
364        :return: The name of this User.
365        :rtype: str
366        """
367        return self._name
368
369    @name.setter
370    def name(self, name):
371        """
372        Sets the name of this User.
373        The name of the User.
374
375
376        :param name: The name of this User.
377        :type: str
378        """
379        self._name = name
380
381    @property
382    def status(self):
383        """
384        **[Required]** Gets the status of this User.
385        The account status of the User
386
387        Allowed values for this property are: "OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL", 'UNKNOWN_ENUM_VALUE'.
388        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
389
390
391        :return: The status of this User.
392        :rtype: str
393        """
394        return self._status
395
396    @status.setter
397    def status(self, status):
398        """
399        Sets the status of this User.
400        The account status of the User
401
402
403        :param status: The status of this User.
404        :type: str
405        """
406        allowed_values = ["OPEN", "EXPIRED", "EXPIRED_GRACE", "LOCKED", "LOCKED_TIMED", "EXPIRED_AND_LOCKED", "EXPIRED_GRACE_AND_LOCKED", "EXPIRED_AND_LOCKED_TIMED", "EXPIRED_GRACE_AND_LOCKED_TIMED", "OPEN_AND_IN_ROLLOVER", "EXPIRED_AND_IN_ROLLOVER", "LOCKED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_AND_IN_ROLLOVER", "LOCKED_TIMED_AND_IN_ROLLOVER", "EXPIRED_AND_LOCKED_TIMED_AND_IN_ROL"]
407        if not value_allowed_none_or_none_sentinel(status, allowed_values):
408            status = 'UNKNOWN_ENUM_VALUE'
409        self._status = status
410
411    @property
412    def time_locked(self):
413        """
414        Gets the time_locked of this User.
415        The date the account was locked if account status was LOCKED.
416
417
418        :return: The time_locked of this User.
419        :rtype: datetime
420        """
421        return self._time_locked
422
423    @time_locked.setter
424    def time_locked(self, time_locked):
425        """
426        Sets the time_locked of this User.
427        The date the account was locked if account status was LOCKED.
428
429
430        :param time_locked: The time_locked of this User.
431        :type: datetime
432        """
433        self._time_locked = time_locked
434
435    @property
436    def time_expiring(self):
437        """
438        Gets the time_expiring of this User.
439        The date of expiration of the account
440
441
442        :return: The time_expiring of this User.
443        :rtype: datetime
444        """
445        return self._time_expiring
446
447    @time_expiring.setter
448    def time_expiring(self, time_expiring):
449        """
450        Sets the time_expiring of this User.
451        The date of expiration of the account
452
453
454        :param time_expiring: The time_expiring of this User.
455        :type: datetime
456        """
457        self._time_expiring = time_expiring
458
459    @property
460    def default_tablespace(self):
461        """
462        **[Required]** Gets the default_tablespace of this User.
463        The default tablespace for data.
464
465
466        :return: The default_tablespace of this User.
467        :rtype: str
468        """
469        return self._default_tablespace
470
471    @default_tablespace.setter
472    def default_tablespace(self, default_tablespace):
473        """
474        Sets the default_tablespace of this User.
475        The default tablespace for data.
476
477
478        :param default_tablespace: The default_tablespace of this User.
479        :type: str
480        """
481        self._default_tablespace = default_tablespace
482
483    @property
484    def temp_tablespace(self):
485        """
486        **[Required]** Gets the temp_tablespace of this User.
487        The name of the default tablespace for temporary tables or the name of a tablespace group.
488
489
490        :return: The temp_tablespace of this User.
491        :rtype: str
492        """
493        return self._temp_tablespace
494
495    @temp_tablespace.setter
496    def temp_tablespace(self, temp_tablespace):
497        """
498        Sets the temp_tablespace of this User.
499        The name of the default tablespace for temporary tables or the name of a tablespace group.
500
501
502        :param temp_tablespace: The temp_tablespace of this User.
503        :type: str
504        """
505        self._temp_tablespace = temp_tablespace
506
507    @property
508    def local_temp_tablespace(self):
509        """
510        Gets the local_temp_tablespace of this User.
511        The default local temporary tablespace for the User.
512
513
514        :return: The local_temp_tablespace of this User.
515        :rtype: str
516        """
517        return self._local_temp_tablespace
518
519    @local_temp_tablespace.setter
520    def local_temp_tablespace(self, local_temp_tablespace):
521        """
522        Sets the local_temp_tablespace of this User.
523        The default local temporary tablespace for the User.
524
525
526        :param local_temp_tablespace: The local_temp_tablespace of this User.
527        :type: str
528        """
529        self._local_temp_tablespace = local_temp_tablespace
530
531    @property
532    def time_created(self):
533        """
534        **[Required]** Gets the time_created of this User.
535        The User creation date.
536
537
538        :return: The time_created of this User.
539        :rtype: datetime
540        """
541        return self._time_created
542
543    @time_created.setter
544    def time_created(self, time_created):
545        """
546        Sets the time_created of this User.
547        The User creation date.
548
549
550        :param time_created: The time_created of this User.
551        :type: datetime
552        """
553        self._time_created = time_created
554
555    @property
556    def profile(self):
557        """
558        **[Required]** Gets the profile of this User.
559        The User resource profile name.
560
561
562        :return: The profile of this User.
563        :rtype: str
564        """
565        return self._profile
566
567    @profile.setter
568    def profile(self, profile):
569        """
570        Sets the profile of this User.
571        The User resource profile name.
572
573
574        :param profile: The profile of this User.
575        :type: str
576        """
577        self._profile = profile
578
579    @property
580    def consumer_group(self):
581        """
582        Gets the consumer_group of this User.
583        The initial resource consumer group for the User.
584
585
586        :return: The consumer_group of this User.
587        :rtype: str
588        """
589        return self._consumer_group
590
591    @consumer_group.setter
592    def consumer_group(self, consumer_group):
593        """
594        Sets the consumer_group of this User.
595        The initial resource consumer group for the User.
596
597
598        :param consumer_group: The consumer_group of this User.
599        :type: str
600        """
601        self._consumer_group = consumer_group
602
603    @property
604    def external_name(self):
605        """
606        Gets the external_name of this User.
607        The external name of User.
608
609
610        :return: The external_name of this User.
611        :rtype: str
612        """
613        return self._external_name
614
615    @external_name.setter
616    def external_name(self, external_name):
617        """
618        Sets the external_name of this User.
619        The external name of User.
620
621
622        :param external_name: The external_name of this User.
623        :type: str
624        """
625        self._external_name = external_name
626
627    @property
628    def password_versions(self):
629        """
630        Gets the password_versions of this User.
631        The list of versions of the password hashes (also known as \"verifiers\") existing for the account.
632
633
634        :return: The password_versions of this User.
635        :rtype: str
636        """
637        return self._password_versions
638
639    @password_versions.setter
640    def password_versions(self, password_versions):
641        """
642        Sets the password_versions of this User.
643        The list of versions of the password hashes (also known as \"verifiers\") existing for the account.
644
645
646        :param password_versions: The password_versions of this User.
647        :type: str
648        """
649        self._password_versions = password_versions
650
651    @property
652    def editions_enabled(self):
653        """
654        Gets the editions_enabled of this User.
655        Indicates whether editions have been enabled for the corresponding user (Y) or not (N)
656
657        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
658        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
659
660
661        :return: The editions_enabled of this User.
662        :rtype: str
663        """
664        return self._editions_enabled
665
666    @editions_enabled.setter
667    def editions_enabled(self, editions_enabled):
668        """
669        Sets the editions_enabled of this User.
670        Indicates whether editions have been enabled for the corresponding user (Y) or not (N)
671
672
673        :param editions_enabled: The editions_enabled of this User.
674        :type: str
675        """
676        allowed_values = ["YES", "NO"]
677        if not value_allowed_none_or_none_sentinel(editions_enabled, allowed_values):
678            editions_enabled = 'UNKNOWN_ENUM_VALUE'
679        self._editions_enabled = editions_enabled
680
681    @property
682    def authentication(self):
683        """
684        Gets the authentication of this User.
685        The authentication mechanism for the user
686
687        Allowed values for this property are: "NONE", "EXTERNAL", "GLOBAL", "PASSWORD", 'UNKNOWN_ENUM_VALUE'.
688        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
689
690
691        :return: The authentication of this User.
692        :rtype: str
693        """
694        return self._authentication
695
696    @authentication.setter
697    def authentication(self, authentication):
698        """
699        Sets the authentication of this User.
700        The authentication mechanism for the user
701
702
703        :param authentication: The authentication of this User.
704        :type: str
705        """
706        allowed_values = ["NONE", "EXTERNAL", "GLOBAL", "PASSWORD"]
707        if not value_allowed_none_or_none_sentinel(authentication, allowed_values):
708            authentication = 'UNKNOWN_ENUM_VALUE'
709        self._authentication = authentication
710
711    @property
712    def proxy_connect(self):
713        """
714        Gets the proxy_connect of this User.
715        Indicates whether a user can connect directly (N) or whether the account can only be proxied (Y) by users who have proxy privileges
716        for this account (that is, by users who have been granted the \"connect through\" privilege for this account).
717
718        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
719        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
720
721
722        :return: The proxy_connect of this User.
723        :rtype: str
724        """
725        return self._proxy_connect
726
727    @proxy_connect.setter
728    def proxy_connect(self, proxy_connect):
729        """
730        Sets the proxy_connect of this User.
731        Indicates whether a user can connect directly (N) or whether the account can only be proxied (Y) by users who have proxy privileges
732        for this account (that is, by users who have been granted the \"connect through\" privilege for this account).
733
734
735        :param proxy_connect: The proxy_connect of this User.
736        :type: str
737        """
738        allowed_values = ["YES", "NO"]
739        if not value_allowed_none_or_none_sentinel(proxy_connect, allowed_values):
740            proxy_connect = 'UNKNOWN_ENUM_VALUE'
741        self._proxy_connect = proxy_connect
742
743    @property
744    def common(self):
745        """
746        Gets the common of this User.
747        Indicates whether a given user is common(Y) or local(N).
748
749        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
750        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
751
752
753        :return: The common of this User.
754        :rtype: str
755        """
756        return self._common
757
758    @common.setter
759    def common(self, common):
760        """
761        Sets the common of this User.
762        Indicates whether a given user is common(Y) or local(N).
763
764
765        :param common: The common of this User.
766        :type: str
767        """
768        allowed_values = ["YES", "NO"]
769        if not value_allowed_none_or_none_sentinel(common, allowed_values):
770            common = 'UNKNOWN_ENUM_VALUE'
771        self._common = common
772
773    @property
774    def time_last_login(self):
775        """
776        Gets the time_last_login of this User.
777        The time of the last user login.
778        This column is not populated when a user connects to the database with administrative privileges, that is, AS { SYSASM | SYSBACKUP | SYSDBA | SYSDG | SYSOPER | SYSRAC | SYSKM }.
779
780
781        :return: The time_last_login of this User.
782        :rtype: datetime
783        """
784        return self._time_last_login
785
786    @time_last_login.setter
787    def time_last_login(self, time_last_login):
788        """
789        Sets the time_last_login of this User.
790        The time of the last user login.
791        This column is not populated when a user connects to the database with administrative privileges, that is, AS { SYSASM | SYSBACKUP | SYSDBA | SYSDG | SYSOPER | SYSRAC | SYSKM }.
792
793
794        :param time_last_login: The time_last_login of this User.
795        :type: datetime
796        """
797        self._time_last_login = time_last_login
798
799    @property
800    def oracle_maintained(self):
801        """
802        Gets the oracle_maintained of this User.
803        Indicates whether the user was created, and is maintained, by Oracle-supplied scripts (such as catalog.sql or catproc.sql).
804
805        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
806        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
807
808
809        :return: The oracle_maintained of this User.
810        :rtype: str
811        """
812        return self._oracle_maintained
813
814    @oracle_maintained.setter
815    def oracle_maintained(self, oracle_maintained):
816        """
817        Sets the oracle_maintained of this User.
818        Indicates whether the user was created, and is maintained, by Oracle-supplied scripts (such as catalog.sql or catproc.sql).
819
820
821        :param oracle_maintained: The oracle_maintained of this User.
822        :type: str
823        """
824        allowed_values = ["YES", "NO"]
825        if not value_allowed_none_or_none_sentinel(oracle_maintained, allowed_values):
826            oracle_maintained = 'UNKNOWN_ENUM_VALUE'
827        self._oracle_maintained = oracle_maintained
828
829    @property
830    def inherited(self):
831        """
832        Gets the inherited of this User.
833        Indicates whether the user definition was inherited from another container (YES) or not (NO)
834
835        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
836        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
837
838
839        :return: The inherited of this User.
840        :rtype: str
841        """
842        return self._inherited
843
844    @inherited.setter
845    def inherited(self, inherited):
846        """
847        Sets the inherited of this User.
848        Indicates whether the user definition was inherited from another container (YES) or not (NO)
849
850
851        :param inherited: The inherited of this User.
852        :type: str
853        """
854        allowed_values = ["YES", "NO"]
855        if not value_allowed_none_or_none_sentinel(inherited, allowed_values):
856            inherited = 'UNKNOWN_ENUM_VALUE'
857        self._inherited = inherited
858
859    @property
860    def default_collation(self):
861        """
862        Gets the default_collation of this User.
863        The default collation for the user\u2019s schema.
864
865
866        :return: The default_collation of this User.
867        :rtype: str
868        """
869        return self._default_collation
870
871    @default_collation.setter
872    def default_collation(self, default_collation):
873        """
874        Sets the default_collation of this User.
875        The default collation for the user\u2019s schema.
876
877
878        :param default_collation: The default_collation of this User.
879        :type: str
880        """
881        self._default_collation = default_collation
882
883    @property
884    def implicit(self):
885        """
886        Gets the implicit of this User.
887        Indicates whether this user is a common user created by an implicit application (YES) or not (NO)
888
889        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
890        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
891
892
893        :return: The implicit of this User.
894        :rtype: str
895        """
896        return self._implicit
897
898    @implicit.setter
899    def implicit(self, implicit):
900        """
901        Sets the implicit of this User.
902        Indicates whether this user is a common user created by an implicit application (YES) or not (NO)
903
904
905        :param implicit: The implicit of this User.
906        :type: str
907        """
908        allowed_values = ["YES", "NO"]
909        if not value_allowed_none_or_none_sentinel(implicit, allowed_values):
910            implicit = 'UNKNOWN_ENUM_VALUE'
911        self._implicit = implicit
912
913    @property
914    def all_shared(self):
915        """
916        Gets the all_shared of this User.
917        In a sharded database, the value in this column indicates whether the user was created with shard DDL enabled.
918
919        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
920        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
921
922
923        :return: The all_shared of this User.
924        :rtype: str
925        """
926        return self._all_shared
927
928    @all_shared.setter
929    def all_shared(self, all_shared):
930        """
931        Sets the all_shared of this User.
932        In a sharded database, the value in this column indicates whether the user was created with shard DDL enabled.
933
934
935        :param all_shared: The all_shared of this User.
936        :type: str
937        """
938        allowed_values = ["YES", "NO"]
939        if not value_allowed_none_or_none_sentinel(all_shared, allowed_values):
940            all_shared = 'UNKNOWN_ENUM_VALUE'
941        self._all_shared = all_shared
942
943    @property
944    def external_shared(self):
945        """
946        Gets the external_shared of this User.
947        In a federated sharded database, indicates whether the user is an external shard user (YES) or not (NO).
948
949        Allowed values for this property are: "YES", "NO", 'UNKNOWN_ENUM_VALUE'.
950        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
951
952
953        :return: The external_shared of this User.
954        :rtype: str
955        """
956        return self._external_shared
957
958    @external_shared.setter
959    def external_shared(self, external_shared):
960        """
961        Sets the external_shared of this User.
962        In a federated sharded database, indicates whether the user is an external shard user (YES) or not (NO).
963
964
965        :param external_shared: The external_shared of this User.
966        :type: str
967        """
968        allowed_values = ["YES", "NO"]
969        if not value_allowed_none_or_none_sentinel(external_shared, allowed_values):
970            external_shared = 'UNKNOWN_ENUM_VALUE'
971        self._external_shared = external_shared
972
973    @property
974    def time_password_changed(self):
975        """
976        Gets the time_password_changed of this User.
977        The date on which the user's password was last set.
978        This column is populated only when the value of the AUTHENTICATION_TYPE column is PASSWORD. Otherwise, this column is null.
979
980
981        :return: The time_password_changed of this User.
982        :rtype: datetime
983        """
984        return self._time_password_changed
985
986    @time_password_changed.setter
987    def time_password_changed(self, time_password_changed):
988        """
989        Sets the time_password_changed of this User.
990        The date on which the user's password was last set.
991        This column is populated only when the value of the AUTHENTICATION_TYPE column is PASSWORD. Otherwise, this column is null.
992
993
994        :param time_password_changed: The time_password_changed of this User.
995        :type: datetime
996        """
997        self._time_password_changed = time_password_changed
998
999    def __repr__(self):
1000        return formatted_flat_dict(self)
1001
1002    def __eq__(self, other):
1003        if other is None:
1004            return False
1005
1006        return self.__dict__ == other.__dict__
1007
1008    def __ne__(self, other):
1009        return not self == other
1010