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 UpdateVmClusterNetworkDetails(object):
12    """
13    Details for an Exadata VM cluster network. Applies to Exadata Cloud@Customer instances only.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new UpdateVmClusterNetworkDetails object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param scans:
22            The value to assign to the scans property of this UpdateVmClusterNetworkDetails.
23        :type scans: list[oci.database.models.ScanDetails]
24
25        :param dns:
26            The value to assign to the dns property of this UpdateVmClusterNetworkDetails.
27        :type dns: list[str]
28
29        :param ntp:
30            The value to assign to the ntp property of this UpdateVmClusterNetworkDetails.
31        :type ntp: list[str]
32
33        :param vm_networks:
34            The value to assign to the vm_networks property of this UpdateVmClusterNetworkDetails.
35        :type vm_networks: list[oci.database.models.VmNetworkDetails]
36
37        :param freeform_tags:
38            The value to assign to the freeform_tags property of this UpdateVmClusterNetworkDetails.
39        :type freeform_tags: dict(str, str)
40
41        :param defined_tags:
42            The value to assign to the defined_tags property of this UpdateVmClusterNetworkDetails.
43        :type defined_tags: dict(str, dict(str, object))
44
45        """
46        self.swagger_types = {
47            'scans': 'list[ScanDetails]',
48            'dns': 'list[str]',
49            'ntp': 'list[str]',
50            'vm_networks': 'list[VmNetworkDetails]',
51            'freeform_tags': 'dict(str, str)',
52            'defined_tags': 'dict(str, dict(str, object))'
53        }
54
55        self.attribute_map = {
56            'scans': 'scans',
57            'dns': 'dns',
58            'ntp': 'ntp',
59            'vm_networks': 'vmNetworks',
60            'freeform_tags': 'freeformTags',
61            'defined_tags': 'definedTags'
62        }
63
64        self._scans = None
65        self._dns = None
66        self._ntp = None
67        self._vm_networks = None
68        self._freeform_tags = None
69        self._defined_tags = None
70
71    @property
72    def scans(self):
73        """
74        Gets the scans of this UpdateVmClusterNetworkDetails.
75        The SCAN details.
76
77
78        :return: The scans of this UpdateVmClusterNetworkDetails.
79        :rtype: list[oci.database.models.ScanDetails]
80        """
81        return self._scans
82
83    @scans.setter
84    def scans(self, scans):
85        """
86        Sets the scans of this UpdateVmClusterNetworkDetails.
87        The SCAN details.
88
89
90        :param scans: The scans of this UpdateVmClusterNetworkDetails.
91        :type: list[oci.database.models.ScanDetails]
92        """
93        self._scans = scans
94
95    @property
96    def dns(self):
97        """
98        Gets the dns of this UpdateVmClusterNetworkDetails.
99        The list of DNS server IP addresses. Maximum of 3 allowed.
100
101
102        :return: The dns of this UpdateVmClusterNetworkDetails.
103        :rtype: list[str]
104        """
105        return self._dns
106
107    @dns.setter
108    def dns(self, dns):
109        """
110        Sets the dns of this UpdateVmClusterNetworkDetails.
111        The list of DNS server IP addresses. Maximum of 3 allowed.
112
113
114        :param dns: The dns of this UpdateVmClusterNetworkDetails.
115        :type: list[str]
116        """
117        self._dns = dns
118
119    @property
120    def ntp(self):
121        """
122        Gets the ntp of this UpdateVmClusterNetworkDetails.
123        The list of NTP server IP addresses. Maximum of 3 allowed.
124
125
126        :return: The ntp of this UpdateVmClusterNetworkDetails.
127        :rtype: list[str]
128        """
129        return self._ntp
130
131    @ntp.setter
132    def ntp(self, ntp):
133        """
134        Sets the ntp of this UpdateVmClusterNetworkDetails.
135        The list of NTP server IP addresses. Maximum of 3 allowed.
136
137
138        :param ntp: The ntp of this UpdateVmClusterNetworkDetails.
139        :type: list[str]
140        """
141        self._ntp = ntp
142
143    @property
144    def vm_networks(self):
145        """
146        Gets the vm_networks of this UpdateVmClusterNetworkDetails.
147        Details of the client and backup networks.
148
149
150        :return: The vm_networks of this UpdateVmClusterNetworkDetails.
151        :rtype: list[oci.database.models.VmNetworkDetails]
152        """
153        return self._vm_networks
154
155    @vm_networks.setter
156    def vm_networks(self, vm_networks):
157        """
158        Sets the vm_networks of this UpdateVmClusterNetworkDetails.
159        Details of the client and backup networks.
160
161
162        :param vm_networks: The vm_networks of this UpdateVmClusterNetworkDetails.
163        :type: list[oci.database.models.VmNetworkDetails]
164        """
165        self._vm_networks = vm_networks
166
167    @property
168    def freeform_tags(self):
169        """
170        Gets the freeform_tags of this UpdateVmClusterNetworkDetails.
171        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
172        For more information, see `Resource Tags`__.
173
174        Example: `{\"Department\": \"Finance\"}`
175
176        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
177
178
179        :return: The freeform_tags of this UpdateVmClusterNetworkDetails.
180        :rtype: dict(str, str)
181        """
182        return self._freeform_tags
183
184    @freeform_tags.setter
185    def freeform_tags(self, freeform_tags):
186        """
187        Sets the freeform_tags of this UpdateVmClusterNetworkDetails.
188        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
189        For more information, see `Resource Tags`__.
190
191        Example: `{\"Department\": \"Finance\"}`
192
193        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
194
195
196        :param freeform_tags: The freeform_tags of this UpdateVmClusterNetworkDetails.
197        :type: dict(str, str)
198        """
199        self._freeform_tags = freeform_tags
200
201    @property
202    def defined_tags(self):
203        """
204        Gets the defined_tags of this UpdateVmClusterNetworkDetails.
205        Defined tags for this resource. Each key is predefined and scoped to a namespace.
206        For more information, see `Resource Tags`__.
207
208        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
209
210
211        :return: The defined_tags of this UpdateVmClusterNetworkDetails.
212        :rtype: dict(str, dict(str, object))
213        """
214        return self._defined_tags
215
216    @defined_tags.setter
217    def defined_tags(self, defined_tags):
218        """
219        Sets the defined_tags of this UpdateVmClusterNetworkDetails.
220        Defined tags for this resource. Each key is predefined and scoped to a namespace.
221        For more information, see `Resource Tags`__.
222
223        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
224
225
226        :param defined_tags: The defined_tags of this UpdateVmClusterNetworkDetails.
227        :type: dict(str, dict(str, object))
228        """
229        self._defined_tags = defined_tags
230
231    def __repr__(self):
232        return formatted_flat_dict(self)
233
234    def __eq__(self, other):
235        if other is None:
236            return False
237
238        return self.__dict__ == other.__dict__
239
240    def __ne__(self, other):
241        return not self == other
242