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 UpdateStreamPoolDetails(object):
12    """
13    Object used to update the stream pool's details.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new UpdateStreamPoolDetails object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param name:
22            The value to assign to the name property of this UpdateStreamPoolDetails.
23        :type name: str
24
25        :param kafka_settings:
26            The value to assign to the kafka_settings property of this UpdateStreamPoolDetails.
27        :type kafka_settings: oci.streaming.models.KafkaSettings
28
29        :param custom_encryption_key_details:
30            The value to assign to the custom_encryption_key_details property of this UpdateStreamPoolDetails.
31        :type custom_encryption_key_details: oci.streaming.models.CustomEncryptionKeyDetails
32
33        :param freeform_tags:
34            The value to assign to the freeform_tags property of this UpdateStreamPoolDetails.
35        :type freeform_tags: dict(str, str)
36
37        :param defined_tags:
38            The value to assign to the defined_tags property of this UpdateStreamPoolDetails.
39        :type defined_tags: dict(str, dict(str, object))
40
41        """
42        self.swagger_types = {
43            'name': 'str',
44            'kafka_settings': 'KafkaSettings',
45            'custom_encryption_key_details': 'CustomEncryptionKeyDetails',
46            'freeform_tags': 'dict(str, str)',
47            'defined_tags': 'dict(str, dict(str, object))'
48        }
49
50        self.attribute_map = {
51            'name': 'name',
52            'kafka_settings': 'kafkaSettings',
53            'custom_encryption_key_details': 'customEncryptionKeyDetails',
54            'freeform_tags': 'freeformTags',
55            'defined_tags': 'definedTags'
56        }
57
58        self._name = None
59        self._kafka_settings = None
60        self._custom_encryption_key_details = None
61        self._freeform_tags = None
62        self._defined_tags = None
63
64    @property
65    def name(self):
66        """
67        Gets the name of this UpdateStreamPoolDetails.
68
69        :return: The name of this UpdateStreamPoolDetails.
70        :rtype: str
71        """
72        return self._name
73
74    @name.setter
75    def name(self, name):
76        """
77        Sets the name of this UpdateStreamPoolDetails.
78
79        :param name: The name of this UpdateStreamPoolDetails.
80        :type: str
81        """
82        self._name = name
83
84    @property
85    def kafka_settings(self):
86        """
87        Gets the kafka_settings of this UpdateStreamPoolDetails.
88
89        :return: The kafka_settings of this UpdateStreamPoolDetails.
90        :rtype: oci.streaming.models.KafkaSettings
91        """
92        return self._kafka_settings
93
94    @kafka_settings.setter
95    def kafka_settings(self, kafka_settings):
96        """
97        Sets the kafka_settings of this UpdateStreamPoolDetails.
98
99        :param kafka_settings: The kafka_settings of this UpdateStreamPoolDetails.
100        :type: oci.streaming.models.KafkaSettings
101        """
102        self._kafka_settings = kafka_settings
103
104    @property
105    def custom_encryption_key_details(self):
106        """
107        Gets the custom_encryption_key_details of this UpdateStreamPoolDetails.
108
109        :return: The custom_encryption_key_details of this UpdateStreamPoolDetails.
110        :rtype: oci.streaming.models.CustomEncryptionKeyDetails
111        """
112        return self._custom_encryption_key_details
113
114    @custom_encryption_key_details.setter
115    def custom_encryption_key_details(self, custom_encryption_key_details):
116        """
117        Sets the custom_encryption_key_details of this UpdateStreamPoolDetails.
118
119        :param custom_encryption_key_details: The custom_encryption_key_details of this UpdateStreamPoolDetails.
120        :type: oci.streaming.models.CustomEncryptionKeyDetails
121        """
122        self._custom_encryption_key_details = custom_encryption_key_details
123
124    @property
125    def freeform_tags(self):
126        """
127        Gets the freeform_tags of this UpdateStreamPoolDetails.
128        Free-form tags for this resource. Each tag is a simple key-value pair that is applied with no predefined name, type, or namespace. Exists for cross-compatibility only.
129        For more information, see `Resource Tags`__.
130
131        Example: `{\"Department\": \"Finance\"}`
132
133        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
134
135
136        :return: The freeform_tags of this UpdateStreamPoolDetails.
137        :rtype: dict(str, str)
138        """
139        return self._freeform_tags
140
141    @freeform_tags.setter
142    def freeform_tags(self, freeform_tags):
143        """
144        Sets the freeform_tags of this UpdateStreamPoolDetails.
145        Free-form tags for this resource. Each tag is a simple key-value pair that is applied with no predefined name, type, or namespace. Exists for cross-compatibility only.
146        For more information, see `Resource Tags`__.
147
148        Example: `{\"Department\": \"Finance\"}`
149
150        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
151
152
153        :param freeform_tags: The freeform_tags of this UpdateStreamPoolDetails.
154        :type: dict(str, str)
155        """
156        self._freeform_tags = freeform_tags
157
158    @property
159    def defined_tags(self):
160        """
161        Gets the defined_tags of this UpdateStreamPoolDetails.
162        Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see `Resource Tags`__.
163
164        Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
165
166        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
167
168
169        :return: The defined_tags of this UpdateStreamPoolDetails.
170        :rtype: dict(str, dict(str, object))
171        """
172        return self._defined_tags
173
174    @defined_tags.setter
175    def defined_tags(self, defined_tags):
176        """
177        Sets the defined_tags of this UpdateStreamPoolDetails.
178        Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see `Resource Tags`__.
179
180        Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
181
182        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm
183
184
185        :param defined_tags: The defined_tags of this UpdateStreamPoolDetails.
186        :type: dict(str, dict(str, object))
187        """
188        self._defined_tags = defined_tags
189
190    def __repr__(self):
191        return formatted_flat_dict(self)
192
193    def __eq__(self, other):
194        if other is None:
195            return False
196
197        return self.__dict__ == other.__dict__
198
199    def __ne__(self, other):
200        return not self == other
201