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 ProjectSummary(object):
12    """
13    The project summary type contains the audit summary information and the definition of the project.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new ProjectSummary object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param key:
22            The value to assign to the key property of this ProjectSummary.
23        :type key: str
24
25        :param model_type:
26            The value to assign to the model_type property of this ProjectSummary.
27        :type model_type: str
28
29        :param model_version:
30            The value to assign to the model_version property of this ProjectSummary.
31        :type model_version: str
32
33        :param name:
34            The value to assign to the name property of this ProjectSummary.
35        :type name: str
36
37        :param description:
38            The value to assign to the description property of this ProjectSummary.
39        :type description: str
40
41        :param object_status:
42            The value to assign to the object_status property of this ProjectSummary.
43        :type object_status: int
44
45        :param identifier:
46            The value to assign to the identifier property of this ProjectSummary.
47        :type identifier: str
48
49        :param object_version:
50            The value to assign to the object_version property of this ProjectSummary.
51        :type object_version: int
52
53        :param parent_ref:
54            The value to assign to the parent_ref property of this ProjectSummary.
55        :type parent_ref: oci.data_integration.models.ParentReference
56
57        :param metadata:
58            The value to assign to the metadata property of this ProjectSummary.
59        :type metadata: oci.data_integration.models.ObjectMetadata
60
61        :param key_map:
62            The value to assign to the key_map property of this ProjectSummary.
63        :type key_map: dict(str, str)
64
65        """
66        self.swagger_types = {
67            'key': 'str',
68            'model_type': 'str',
69            'model_version': 'str',
70            'name': 'str',
71            'description': 'str',
72            'object_status': 'int',
73            'identifier': 'str',
74            'object_version': 'int',
75            'parent_ref': 'ParentReference',
76            'metadata': 'ObjectMetadata',
77            'key_map': 'dict(str, str)'
78        }
79
80        self.attribute_map = {
81            'key': 'key',
82            'model_type': 'modelType',
83            'model_version': 'modelVersion',
84            'name': 'name',
85            'description': 'description',
86            'object_status': 'objectStatus',
87            'identifier': 'identifier',
88            'object_version': 'objectVersion',
89            'parent_ref': 'parentRef',
90            'metadata': 'metadata',
91            'key_map': 'keyMap'
92        }
93
94        self._key = None
95        self._model_type = None
96        self._model_version = None
97        self._name = None
98        self._description = None
99        self._object_status = None
100        self._identifier = None
101        self._object_version = None
102        self._parent_ref = None
103        self._metadata = None
104        self._key_map = None
105
106    @property
107    def key(self):
108        """
109        Gets the key of this ProjectSummary.
110        Generated key that can be used in API calls to identify project.
111
112
113        :return: The key of this ProjectSummary.
114        :rtype: str
115        """
116        return self._key
117
118    @key.setter
119    def key(self, key):
120        """
121        Sets the key of this ProjectSummary.
122        Generated key that can be used in API calls to identify project.
123
124
125        :param key: The key of this ProjectSummary.
126        :type: str
127        """
128        self._key = key
129
130    @property
131    def model_type(self):
132        """
133        Gets the model_type of this ProjectSummary.
134        The type of the object.
135
136
137        :return: The model_type of this ProjectSummary.
138        :rtype: str
139        """
140        return self._model_type
141
142    @model_type.setter
143    def model_type(self, model_type):
144        """
145        Sets the model_type of this ProjectSummary.
146        The type of the object.
147
148
149        :param model_type: The model_type of this ProjectSummary.
150        :type: str
151        """
152        self._model_type = model_type
153
154    @property
155    def model_version(self):
156        """
157        Gets the model_version of this ProjectSummary.
158        The model version of an object.
159
160
161        :return: The model_version of this ProjectSummary.
162        :rtype: str
163        """
164        return self._model_version
165
166    @model_version.setter
167    def model_version(self, model_version):
168        """
169        Sets the model_version of this ProjectSummary.
170        The model version of an object.
171
172
173        :param model_version: The model_version of this ProjectSummary.
174        :type: str
175        """
176        self._model_version = model_version
177
178    @property
179    def name(self):
180        """
181        Gets the name of this ProjectSummary.
182        Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters.
183
184
185        :return: The name of this ProjectSummary.
186        :rtype: str
187        """
188        return self._name
189
190    @name.setter
191    def name(self, name):
192        """
193        Sets the name of this ProjectSummary.
194        Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters.
195
196
197        :param name: The name of this ProjectSummary.
198        :type: str
199        """
200        self._name = name
201
202    @property
203    def description(self):
204        """
205        Gets the description of this ProjectSummary.
206        A user defined description for the project.
207
208
209        :return: The description of this ProjectSummary.
210        :rtype: str
211        """
212        return self._description
213
214    @description.setter
215    def description(self, description):
216        """
217        Sets the description of this ProjectSummary.
218        A user defined description for the project.
219
220
221        :param description: The description of this ProjectSummary.
222        :type: str
223        """
224        self._description = description
225
226    @property
227    def object_status(self):
228        """
229        Gets the object_status of this ProjectSummary.
230        The status of an object that can be set to value 1 for shallow references across objects, other values reserved.
231
232
233        :return: The object_status of this ProjectSummary.
234        :rtype: int
235        """
236        return self._object_status
237
238    @object_status.setter
239    def object_status(self, object_status):
240        """
241        Sets the object_status of this ProjectSummary.
242        The status of an object that can be set to value 1 for shallow references across objects, other values reserved.
243
244
245        :param object_status: The object_status of this ProjectSummary.
246        :type: int
247        """
248        self._object_status = object_status
249
250    @property
251    def identifier(self):
252        """
253        Gets the identifier of this ProjectSummary.
254        Value can only contain upper case letters, underscore, and numbers. It should begin with upper case letter or underscore. The value can be modified.
255
256
257        :return: The identifier of this ProjectSummary.
258        :rtype: str
259        """
260        return self._identifier
261
262    @identifier.setter
263    def identifier(self, identifier):
264        """
265        Sets the identifier of this ProjectSummary.
266        Value can only contain upper case letters, underscore, and numbers. It should begin with upper case letter or underscore. The value can be modified.
267
268
269        :param identifier: The identifier of this ProjectSummary.
270        :type: str
271        """
272        self._identifier = identifier
273
274    @property
275    def object_version(self):
276        """
277        Gets the object_version of this ProjectSummary.
278        The version of the object that is used to track changes in the object instance.
279
280
281        :return: The object_version of this ProjectSummary.
282        :rtype: int
283        """
284        return self._object_version
285
286    @object_version.setter
287    def object_version(self, object_version):
288        """
289        Sets the object_version of this ProjectSummary.
290        The version of the object that is used to track changes in the object instance.
291
292
293        :param object_version: The object_version of this ProjectSummary.
294        :type: int
295        """
296        self._object_version = object_version
297
298    @property
299    def parent_ref(self):
300        """
301        Gets the parent_ref of this ProjectSummary.
302
303        :return: The parent_ref of this ProjectSummary.
304        :rtype: oci.data_integration.models.ParentReference
305        """
306        return self._parent_ref
307
308    @parent_ref.setter
309    def parent_ref(self, parent_ref):
310        """
311        Sets the parent_ref of this ProjectSummary.
312
313        :param parent_ref: The parent_ref of this ProjectSummary.
314        :type: oci.data_integration.models.ParentReference
315        """
316        self._parent_ref = parent_ref
317
318    @property
319    def metadata(self):
320        """
321        Gets the metadata of this ProjectSummary.
322
323        :return: The metadata of this ProjectSummary.
324        :rtype: oci.data_integration.models.ObjectMetadata
325        """
326        return self._metadata
327
328    @metadata.setter
329    def metadata(self, metadata):
330        """
331        Sets the metadata of this ProjectSummary.
332
333        :param metadata: The metadata of this ProjectSummary.
334        :type: oci.data_integration.models.ObjectMetadata
335        """
336        self._metadata = metadata
337
338    @property
339    def key_map(self):
340        """
341        Gets the key_map of this ProjectSummary.
342        A key map. If provided, the key is replaced with generated key. This structure provides mapping between user provided key and generated key.
343
344
345        :return: The key_map of this ProjectSummary.
346        :rtype: dict(str, str)
347        """
348        return self._key_map
349
350    @key_map.setter
351    def key_map(self, key_map):
352        """
353        Sets the key_map of this ProjectSummary.
354        A key map. If provided, the key is replaced with generated key. This structure provides mapping between user provided key and generated key.
355
356
357        :param key_map: The key_map of this ProjectSummary.
358        :type: dict(str, str)
359        """
360        self._key_map = key_map
361
362    def __repr__(self):
363        return formatted_flat_dict(self)
364
365    def __eq__(self, other):
366        if other is None:
367            return False
368
369        return self.__dict__ == other.__dict__
370
371    def __ne__(self, other):
372        return not self == other
373