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 AutonomousExadataInfrastructure(object):
12    """
13    AutonomousExadataInfrastructure model.
14    """
15
16    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
17    #: This constant has a value of "PROVISIONING"
18    LIFECYCLE_STATE_PROVISIONING = "PROVISIONING"
19
20    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
21    #: This constant has a value of "AVAILABLE"
22    LIFECYCLE_STATE_AVAILABLE = "AVAILABLE"
23
24    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
25    #: This constant has a value of "UPDATING"
26    LIFECYCLE_STATE_UPDATING = "UPDATING"
27
28    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
29    #: This constant has a value of "TERMINATING"
30    LIFECYCLE_STATE_TERMINATING = "TERMINATING"
31
32    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
33    #: This constant has a value of "TERMINATED"
34    LIFECYCLE_STATE_TERMINATED = "TERMINATED"
35
36    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
37    #: This constant has a value of "FAILED"
38    LIFECYCLE_STATE_FAILED = "FAILED"
39
40    #: A constant which can be used with the lifecycle_state property of a AutonomousExadataInfrastructure.
41    #: This constant has a value of "MAINTENANCE_IN_PROGRESS"
42    LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = "MAINTENANCE_IN_PROGRESS"
43
44    #: A constant which can be used with the license_model property of a AutonomousExadataInfrastructure.
45    #: This constant has a value of "LICENSE_INCLUDED"
46    LICENSE_MODEL_LICENSE_INCLUDED = "LICENSE_INCLUDED"
47
48    #: A constant which can be used with the license_model property of a AutonomousExadataInfrastructure.
49    #: This constant has a value of "BRING_YOUR_OWN_LICENSE"
50    LICENSE_MODEL_BRING_YOUR_OWN_LICENSE = "BRING_YOUR_OWN_LICENSE"
51
52    def __init__(self, **kwargs):
53        """
54        Initializes a new AutonomousExadataInfrastructure object with values from keyword arguments.
55        The following keyword arguments are supported (corresponding to the getters/setters of this class):
56
57        :param id:
58            The value to assign to the id property of this AutonomousExadataInfrastructure.
59        :type id: str
60
61        :param compartment_id:
62            The value to assign to the compartment_id property of this AutonomousExadataInfrastructure.
63        :type compartment_id: str
64
65        :param display_name:
66            The value to assign to the display_name property of this AutonomousExadataInfrastructure.
67        :type display_name: str
68
69        :param availability_domain:
70            The value to assign to the availability_domain property of this AutonomousExadataInfrastructure.
71        :type availability_domain: str
72
73        :param subnet_id:
74            The value to assign to the subnet_id property of this AutonomousExadataInfrastructure.
75        :type subnet_id: str
76
77        :param nsg_ids:
78            The value to assign to the nsg_ids property of this AutonomousExadataInfrastructure.
79        :type nsg_ids: list[str]
80
81        :param shape:
82            The value to assign to the shape property of this AutonomousExadataInfrastructure.
83        :type shape: str
84
85        :param hostname:
86            The value to assign to the hostname property of this AutonomousExadataInfrastructure.
87        :type hostname: str
88
89        :param domain:
90            The value to assign to the domain property of this AutonomousExadataInfrastructure.
91        :type domain: str
92
93        :param lifecycle_state:
94            The value to assign to the lifecycle_state property of this AutonomousExadataInfrastructure.
95            Allowed values for this property are: "PROVISIONING", "AVAILABLE", "UPDATING", "TERMINATING", "TERMINATED", "FAILED", "MAINTENANCE_IN_PROGRESS", 'UNKNOWN_ENUM_VALUE'.
96            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
97        :type lifecycle_state: str
98
99        :param lifecycle_details:
100            The value to assign to the lifecycle_details property of this AutonomousExadataInfrastructure.
101        :type lifecycle_details: str
102
103        :param license_model:
104            The value to assign to the license_model property of this AutonomousExadataInfrastructure.
105            Allowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", 'UNKNOWN_ENUM_VALUE'.
106            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
107        :type license_model: str
108
109        :param time_created:
110            The value to assign to the time_created property of this AutonomousExadataInfrastructure.
111        :type time_created: datetime
112
113        :param maintenance_window:
114            The value to assign to the maintenance_window property of this AutonomousExadataInfrastructure.
115        :type maintenance_window: oci.database.models.MaintenanceWindow
116
117        :param last_maintenance_run_id:
118            The value to assign to the last_maintenance_run_id property of this AutonomousExadataInfrastructure.
119        :type last_maintenance_run_id: str
120
121        :param next_maintenance_run_id:
122            The value to assign to the next_maintenance_run_id property of this AutonomousExadataInfrastructure.
123        :type next_maintenance_run_id: str
124
125        :param freeform_tags:
126            The value to assign to the freeform_tags property of this AutonomousExadataInfrastructure.
127        :type freeform_tags: dict(str, str)
128
129        :param defined_tags:
130            The value to assign to the defined_tags property of this AutonomousExadataInfrastructure.
131        :type defined_tags: dict(str, dict(str, object))
132
133        :param scan_dns_name:
134            The value to assign to the scan_dns_name property of this AutonomousExadataInfrastructure.
135        :type scan_dns_name: str
136
137        :param zone_id:
138            The value to assign to the zone_id property of this AutonomousExadataInfrastructure.
139        :type zone_id: str
140
141        """
142        self.swagger_types = {
143            'id': 'str',
144            'compartment_id': 'str',
145            'display_name': 'str',
146            'availability_domain': 'str',
147            'subnet_id': 'str',
148            'nsg_ids': 'list[str]',
149            'shape': 'str',
150            'hostname': 'str',
151            'domain': 'str',
152            'lifecycle_state': 'str',
153            'lifecycle_details': 'str',
154            'license_model': 'str',
155            'time_created': 'datetime',
156            'maintenance_window': 'MaintenanceWindow',
157            'last_maintenance_run_id': 'str',
158            'next_maintenance_run_id': 'str',
159            'freeform_tags': 'dict(str, str)',
160            'defined_tags': 'dict(str, dict(str, object))',
161            'scan_dns_name': 'str',
162            'zone_id': 'str'
163        }
164
165        self.attribute_map = {
166            'id': 'id',
167            'compartment_id': 'compartmentId',
168            'display_name': 'displayName',
169            'availability_domain': 'availabilityDomain',
170            'subnet_id': 'subnetId',
171            'nsg_ids': 'nsgIds',
172            'shape': 'shape',
173            'hostname': 'hostname',
174            'domain': 'domain',
175            'lifecycle_state': 'lifecycleState',
176            'lifecycle_details': 'lifecycleDetails',
177            'license_model': 'licenseModel',
178            'time_created': 'timeCreated',
179            'maintenance_window': 'maintenanceWindow',
180            'last_maintenance_run_id': 'lastMaintenanceRunId',
181            'next_maintenance_run_id': 'nextMaintenanceRunId',
182            'freeform_tags': 'freeformTags',
183            'defined_tags': 'definedTags',
184            'scan_dns_name': 'scanDnsName',
185            'zone_id': 'zoneId'
186        }
187
188        self._id = None
189        self._compartment_id = None
190        self._display_name = None
191        self._availability_domain = None
192        self._subnet_id = None
193        self._nsg_ids = None
194        self._shape = None
195        self._hostname = None
196        self._domain = None
197        self._lifecycle_state = None
198        self._lifecycle_details = None
199        self._license_model = None
200        self._time_created = None
201        self._maintenance_window = None
202        self._last_maintenance_run_id = None
203        self._next_maintenance_run_id = None
204        self._freeform_tags = None
205        self._defined_tags = None
206        self._scan_dns_name = None
207        self._zone_id = None
208
209    @property
210    def id(self):
211        """
212        **[Required]** Gets the id of this AutonomousExadataInfrastructure.
213        The OCID of the Autonomous Exadata Infrastructure.
214
215
216        :return: The id of this AutonomousExadataInfrastructure.
217        :rtype: str
218        """
219        return self._id
220
221    @id.setter
222    def id(self, id):
223        """
224        Sets the id of this AutonomousExadataInfrastructure.
225        The OCID of the Autonomous Exadata Infrastructure.
226
227
228        :param id: The id of this AutonomousExadataInfrastructure.
229        :type: str
230        """
231        self._id = id
232
233    @property
234    def compartment_id(self):
235        """
236        **[Required]** Gets the compartment_id of this AutonomousExadataInfrastructure.
237        The OCID of the compartment.
238
239
240        :return: The compartment_id of this AutonomousExadataInfrastructure.
241        :rtype: str
242        """
243        return self._compartment_id
244
245    @compartment_id.setter
246    def compartment_id(self, compartment_id):
247        """
248        Sets the compartment_id of this AutonomousExadataInfrastructure.
249        The OCID of the compartment.
250
251
252        :param compartment_id: The compartment_id of this AutonomousExadataInfrastructure.
253        :type: str
254        """
255        self._compartment_id = compartment_id
256
257    @property
258    def display_name(self):
259        """
260        **[Required]** Gets the display_name of this AutonomousExadataInfrastructure.
261        The user-friendly name for the Autonomous Exadata Infrastructure.
262
263
264        :return: The display_name of this AutonomousExadataInfrastructure.
265        :rtype: str
266        """
267        return self._display_name
268
269    @display_name.setter
270    def display_name(self, display_name):
271        """
272        Sets the display_name of this AutonomousExadataInfrastructure.
273        The user-friendly name for the Autonomous Exadata Infrastructure.
274
275
276        :param display_name: The display_name of this AutonomousExadataInfrastructure.
277        :type: str
278        """
279        self._display_name = display_name
280
281    @property
282    def availability_domain(self):
283        """
284        **[Required]** Gets the availability_domain of this AutonomousExadataInfrastructure.
285        The name of the availability domain that the Autonomous Exadata Infrastructure is located in.
286
287
288        :return: The availability_domain of this AutonomousExadataInfrastructure.
289        :rtype: str
290        """
291        return self._availability_domain
292
293    @availability_domain.setter
294    def availability_domain(self, availability_domain):
295        """
296        Sets the availability_domain of this AutonomousExadataInfrastructure.
297        The name of the availability domain that the Autonomous Exadata Infrastructure is located in.
298
299
300        :param availability_domain: The availability_domain of this AutonomousExadataInfrastructure.
301        :type: str
302        """
303        self._availability_domain = availability_domain
304
305    @property
306    def subnet_id(self):
307        """
308        **[Required]** Gets the subnet_id of this AutonomousExadataInfrastructure.
309        The OCID of the subnet the Autonomous Exadata Infrastructure is associated with.
310
311        **Subnet Restrictions:**
312        - For Autonomous Databases with Autonomous Exadata Infrastructure, do not use a subnet that overlaps with 192.168.128.0/20
313
314        These subnets are used by the Oracle Clusterware private interconnect on the database instance.
315        Specifying an overlapping subnet will cause the private interconnect to malfunction.
316        This restriction applies to both the client subnet and backup subnet.
317
318
319        :return: The subnet_id of this AutonomousExadataInfrastructure.
320        :rtype: str
321        """
322        return self._subnet_id
323
324    @subnet_id.setter
325    def subnet_id(self, subnet_id):
326        """
327        Sets the subnet_id of this AutonomousExadataInfrastructure.
328        The OCID of the subnet the Autonomous Exadata Infrastructure is associated with.
329
330        **Subnet Restrictions:**
331        - For Autonomous Databases with Autonomous Exadata Infrastructure, do not use a subnet that overlaps with 192.168.128.0/20
332
333        These subnets are used by the Oracle Clusterware private interconnect on the database instance.
334        Specifying an overlapping subnet will cause the private interconnect to malfunction.
335        This restriction applies to both the client subnet and backup subnet.
336
337
338        :param subnet_id: The subnet_id of this AutonomousExadataInfrastructure.
339        :type: str
340        """
341        self._subnet_id = subnet_id
342
343    @property
344    def nsg_ids(self):
345        """
346        Gets the nsg_ids of this AutonomousExadataInfrastructure.
347        A list of the `OCIDs`__ of the network security groups (NSGs) that this resource belongs to. Setting this to an empty array after the list is created removes the resource from all NSGs. For more information about NSGs, see `Security Rules`__.
348        **NsgIds restrictions:**
349        - Autonomous Databases with private access require at least 1 Network Security Group (NSG). The nsgIds array cannot be empty.
350
351        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
352        __ https://docs.cloud.oracle.com/Content/Network/Concepts/securityrules.htm
353
354
355        :return: The nsg_ids of this AutonomousExadataInfrastructure.
356        :rtype: list[str]
357        """
358        return self._nsg_ids
359
360    @nsg_ids.setter
361    def nsg_ids(self, nsg_ids):
362        """
363        Sets the nsg_ids of this AutonomousExadataInfrastructure.
364        A list of the `OCIDs`__ of the network security groups (NSGs) that this resource belongs to. Setting this to an empty array after the list is created removes the resource from all NSGs. For more information about NSGs, see `Security Rules`__.
365        **NsgIds restrictions:**
366        - Autonomous Databases with private access require at least 1 Network Security Group (NSG). The nsgIds array cannot be empty.
367
368        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
369        __ https://docs.cloud.oracle.com/Content/Network/Concepts/securityrules.htm
370
371
372        :param nsg_ids: The nsg_ids of this AutonomousExadataInfrastructure.
373        :type: list[str]
374        """
375        self._nsg_ids = nsg_ids
376
377    @property
378    def shape(self):
379        """
380        **[Required]** Gets the shape of this AutonomousExadataInfrastructure.
381        The shape of the Autonomous Exadata Infrastructure. The shape determines resources to allocate to the Autonomous Exadata Infrastructure (CPU cores, memory and storage).
382
383
384        :return: The shape of this AutonomousExadataInfrastructure.
385        :rtype: str
386        """
387        return self._shape
388
389    @shape.setter
390    def shape(self, shape):
391        """
392        Sets the shape of this AutonomousExadataInfrastructure.
393        The shape of the Autonomous Exadata Infrastructure. The shape determines resources to allocate to the Autonomous Exadata Infrastructure (CPU cores, memory and storage).
394
395
396        :param shape: The shape of this AutonomousExadataInfrastructure.
397        :type: str
398        """
399        self._shape = shape
400
401    @property
402    def hostname(self):
403        """
404        **[Required]** Gets the hostname of this AutonomousExadataInfrastructure.
405        The host name for the Autonomous Exadata Infrastructure node.
406
407
408        :return: The hostname of this AutonomousExadataInfrastructure.
409        :rtype: str
410        """
411        return self._hostname
412
413    @hostname.setter
414    def hostname(self, hostname):
415        """
416        Sets the hostname of this AutonomousExadataInfrastructure.
417        The host name for the Autonomous Exadata Infrastructure node.
418
419
420        :param hostname: The hostname of this AutonomousExadataInfrastructure.
421        :type: str
422        """
423        self._hostname = hostname
424
425    @property
426    def domain(self):
427        """
428        **[Required]** Gets the domain of this AutonomousExadataInfrastructure.
429        The domain name for the Autonomous Exadata Infrastructure.
430
431
432        :return: The domain of this AutonomousExadataInfrastructure.
433        :rtype: str
434        """
435        return self._domain
436
437    @domain.setter
438    def domain(self, domain):
439        """
440        Sets the domain of this AutonomousExadataInfrastructure.
441        The domain name for the Autonomous Exadata Infrastructure.
442
443
444        :param domain: The domain of this AutonomousExadataInfrastructure.
445        :type: str
446        """
447        self._domain = domain
448
449    @property
450    def lifecycle_state(self):
451        """
452        **[Required]** Gets the lifecycle_state of this AutonomousExadataInfrastructure.
453        The current lifecycle state of the Autonomous Exadata Infrastructure.
454
455        Allowed values for this property are: "PROVISIONING", "AVAILABLE", "UPDATING", "TERMINATING", "TERMINATED", "FAILED", "MAINTENANCE_IN_PROGRESS", 'UNKNOWN_ENUM_VALUE'.
456        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
457
458
459        :return: The lifecycle_state of this AutonomousExadataInfrastructure.
460        :rtype: str
461        """
462        return self._lifecycle_state
463
464    @lifecycle_state.setter
465    def lifecycle_state(self, lifecycle_state):
466        """
467        Sets the lifecycle_state of this AutonomousExadataInfrastructure.
468        The current lifecycle state of the Autonomous Exadata Infrastructure.
469
470
471        :param lifecycle_state: The lifecycle_state of this AutonomousExadataInfrastructure.
472        :type: str
473        """
474        allowed_values = ["PROVISIONING", "AVAILABLE", "UPDATING", "TERMINATING", "TERMINATED", "FAILED", "MAINTENANCE_IN_PROGRESS"]
475        if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
476            lifecycle_state = 'UNKNOWN_ENUM_VALUE'
477        self._lifecycle_state = lifecycle_state
478
479    @property
480    def lifecycle_details(self):
481        """
482        Gets the lifecycle_details of this AutonomousExadataInfrastructure.
483        Additional information about the current lifecycle state of the Autonomous Exadata Infrastructure.
484
485
486        :return: The lifecycle_details of this AutonomousExadataInfrastructure.
487        :rtype: str
488        """
489        return self._lifecycle_details
490
491    @lifecycle_details.setter
492    def lifecycle_details(self, lifecycle_details):
493        """
494        Sets the lifecycle_details of this AutonomousExadataInfrastructure.
495        Additional information about the current lifecycle state of the Autonomous Exadata Infrastructure.
496
497
498        :param lifecycle_details: The lifecycle_details of this AutonomousExadataInfrastructure.
499        :type: str
500        """
501        self._lifecycle_details = lifecycle_details
502
503    @property
504    def license_model(self):
505        """
506        Gets the license_model of this AutonomousExadataInfrastructure.
507        The Oracle license model that applies to all databases in the Autonomous Exadata Infrastructure. The default is BRING_YOUR_OWN_LICENSE.
508
509        Allowed values for this property are: "LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE", 'UNKNOWN_ENUM_VALUE'.
510        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
511
512
513        :return: The license_model of this AutonomousExadataInfrastructure.
514        :rtype: str
515        """
516        return self._license_model
517
518    @license_model.setter
519    def license_model(self, license_model):
520        """
521        Sets the license_model of this AutonomousExadataInfrastructure.
522        The Oracle license model that applies to all databases in the Autonomous Exadata Infrastructure. The default is BRING_YOUR_OWN_LICENSE.
523
524
525        :param license_model: The license_model of this AutonomousExadataInfrastructure.
526        :type: str
527        """
528        allowed_values = ["LICENSE_INCLUDED", "BRING_YOUR_OWN_LICENSE"]
529        if not value_allowed_none_or_none_sentinel(license_model, allowed_values):
530            license_model = 'UNKNOWN_ENUM_VALUE'
531        self._license_model = license_model
532
533    @property
534    def time_created(self):
535        """
536        Gets the time_created of this AutonomousExadataInfrastructure.
537        The date and time the Autonomous Exadata Infrastructure was created.
538
539
540        :return: The time_created of this AutonomousExadataInfrastructure.
541        :rtype: datetime
542        """
543        return self._time_created
544
545    @time_created.setter
546    def time_created(self, time_created):
547        """
548        Sets the time_created of this AutonomousExadataInfrastructure.
549        The date and time the Autonomous Exadata Infrastructure was created.
550
551
552        :param time_created: The time_created of this AutonomousExadataInfrastructure.
553        :type: datetime
554        """
555        self._time_created = time_created
556
557    @property
558    def maintenance_window(self):
559        """
560        **[Required]** Gets the maintenance_window of this AutonomousExadataInfrastructure.
561
562        :return: The maintenance_window of this AutonomousExadataInfrastructure.
563        :rtype: oci.database.models.MaintenanceWindow
564        """
565        return self._maintenance_window
566
567    @maintenance_window.setter
568    def maintenance_window(self, maintenance_window):
569        """
570        Sets the maintenance_window of this AutonomousExadataInfrastructure.
571
572        :param maintenance_window: The maintenance_window of this AutonomousExadataInfrastructure.
573        :type: oci.database.models.MaintenanceWindow
574        """
575        self._maintenance_window = maintenance_window
576
577    @property
578    def last_maintenance_run_id(self):
579        """
580        Gets the last_maintenance_run_id of this AutonomousExadataInfrastructure.
581        The `OCID`__ of the last maintenance run.
582
583        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
584
585
586        :return: The last_maintenance_run_id of this AutonomousExadataInfrastructure.
587        :rtype: str
588        """
589        return self._last_maintenance_run_id
590
591    @last_maintenance_run_id.setter
592    def last_maintenance_run_id(self, last_maintenance_run_id):
593        """
594        Sets the last_maintenance_run_id of this AutonomousExadataInfrastructure.
595        The `OCID`__ of the last maintenance run.
596
597        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
598
599
600        :param last_maintenance_run_id: The last_maintenance_run_id of this AutonomousExadataInfrastructure.
601        :type: str
602        """
603        self._last_maintenance_run_id = last_maintenance_run_id
604
605    @property
606    def next_maintenance_run_id(self):
607        """
608        Gets the next_maintenance_run_id of this AutonomousExadataInfrastructure.
609        The `OCID`__ of the next maintenance run.
610
611        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
612
613
614        :return: The next_maintenance_run_id of this AutonomousExadataInfrastructure.
615        :rtype: str
616        """
617        return self._next_maintenance_run_id
618
619    @next_maintenance_run_id.setter
620    def next_maintenance_run_id(self, next_maintenance_run_id):
621        """
622        Sets the next_maintenance_run_id of this AutonomousExadataInfrastructure.
623        The `OCID`__ of the next maintenance run.
624
625        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
626
627
628        :param next_maintenance_run_id: The next_maintenance_run_id of this AutonomousExadataInfrastructure.
629        :type: str
630        """
631        self._next_maintenance_run_id = next_maintenance_run_id
632
633    @property
634    def freeform_tags(self):
635        """
636        Gets the freeform_tags of this AutonomousExadataInfrastructure.
637        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
638        For more information, see `Resource Tags`__.
639
640        Example: `{\"Department\": \"Finance\"}`
641
642        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
643
644
645        :return: The freeform_tags of this AutonomousExadataInfrastructure.
646        :rtype: dict(str, str)
647        """
648        return self._freeform_tags
649
650    @freeform_tags.setter
651    def freeform_tags(self, freeform_tags):
652        """
653        Sets the freeform_tags of this AutonomousExadataInfrastructure.
654        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
655        For more information, see `Resource Tags`__.
656
657        Example: `{\"Department\": \"Finance\"}`
658
659        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
660
661
662        :param freeform_tags: The freeform_tags of this AutonomousExadataInfrastructure.
663        :type: dict(str, str)
664        """
665        self._freeform_tags = freeform_tags
666
667    @property
668    def defined_tags(self):
669        """
670        Gets the defined_tags of this AutonomousExadataInfrastructure.
671        Defined tags for this resource. Each key is predefined and scoped to a namespace.
672        For more information, see `Resource Tags`__.
673
674        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
675
676
677        :return: The defined_tags of this AutonomousExadataInfrastructure.
678        :rtype: dict(str, dict(str, object))
679        """
680        return self._defined_tags
681
682    @defined_tags.setter
683    def defined_tags(self, defined_tags):
684        """
685        Sets the defined_tags of this AutonomousExadataInfrastructure.
686        Defined tags for this resource. Each key is predefined and scoped to a namespace.
687        For more information, see `Resource Tags`__.
688
689        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
690
691
692        :param defined_tags: The defined_tags of this AutonomousExadataInfrastructure.
693        :type: dict(str, dict(str, object))
694        """
695        self._defined_tags = defined_tags
696
697    @property
698    def scan_dns_name(self):
699        """
700        Gets the scan_dns_name of this AutonomousExadataInfrastructure.
701        The FQDN of the DNS record for the SCAN IP addresses that are associated with the Autonomous Exadata Infrastructure.
702
703
704        :return: The scan_dns_name of this AutonomousExadataInfrastructure.
705        :rtype: str
706        """
707        return self._scan_dns_name
708
709    @scan_dns_name.setter
710    def scan_dns_name(self, scan_dns_name):
711        """
712        Sets the scan_dns_name of this AutonomousExadataInfrastructure.
713        The FQDN of the DNS record for the SCAN IP addresses that are associated with the Autonomous Exadata Infrastructure.
714
715
716        :param scan_dns_name: The scan_dns_name of this AutonomousExadataInfrastructure.
717        :type: str
718        """
719        self._scan_dns_name = scan_dns_name
720
721    @property
722    def zone_id(self):
723        """
724        Gets the zone_id of this AutonomousExadataInfrastructure.
725        The OCID of the zone the Autonomous Exadata Infrastructure is associated with.
726
727
728        :return: The zone_id of this AutonomousExadataInfrastructure.
729        :rtype: str
730        """
731        return self._zone_id
732
733    @zone_id.setter
734    def zone_id(self, zone_id):
735        """
736        Sets the zone_id of this AutonomousExadataInfrastructure.
737        The OCID of the zone the Autonomous Exadata Infrastructure is associated with.
738
739
740        :param zone_id: The zone_id of this AutonomousExadataInfrastructure.
741        :type: str
742        """
743        self._zone_id = zone_id
744
745    def __repr__(self):
746        return formatted_flat_dict(self)
747
748    def __eq__(self, other):
749        if other is None:
750            return False
751
752        return self.__dict__ == other.__dict__
753
754    def __ne__(self, other):
755        return not self == other
756