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 ServiceCatalogAssociation(object):
12    """
13    The detailed model for service catalog association.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new ServiceCatalogAssociation object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param id:
22            The value to assign to the id property of this ServiceCatalogAssociation.
23        :type id: str
24
25        :param service_catalog_id:
26            The value to assign to the service_catalog_id property of this ServiceCatalogAssociation.
27        :type service_catalog_id: str
28
29        :param entity_id:
30            The value to assign to the entity_id property of this ServiceCatalogAssociation.
31        :type entity_id: str
32
33        :param entity_type:
34            The value to assign to the entity_type property of this ServiceCatalogAssociation.
35        :type entity_type: str
36
37        :param time_created:
38            The value to assign to the time_created property of this ServiceCatalogAssociation.
39        :type time_created: datetime
40
41        """
42        self.swagger_types = {
43            'id': 'str',
44            'service_catalog_id': 'str',
45            'entity_id': 'str',
46            'entity_type': 'str',
47            'time_created': 'datetime'
48        }
49
50        self.attribute_map = {
51            'id': 'id',
52            'service_catalog_id': 'serviceCatalogId',
53            'entity_id': 'entityId',
54            'entity_type': 'entityType',
55            'time_created': 'timeCreated'
56        }
57
58        self._id = None
59        self._service_catalog_id = None
60        self._entity_id = None
61        self._entity_type = None
62        self._time_created = None
63
64    @property
65    def id(self):
66        """
67        **[Required]** Gets the id of this ServiceCatalogAssociation.
68        Identifier of the association.
69
70
71        :return: The id of this ServiceCatalogAssociation.
72        :rtype: str
73        """
74        return self._id
75
76    @id.setter
77    def id(self, id):
78        """
79        Sets the id of this ServiceCatalogAssociation.
80        Identifier of the association.
81
82
83        :param id: The id of this ServiceCatalogAssociation.
84        :type: str
85        """
86        self._id = id
87
88    @property
89    def service_catalog_id(self):
90        """
91        **[Required]** Gets the service_catalog_id of this ServiceCatalogAssociation.
92        Identifier of the service catalog.
93
94
95        :return: The service_catalog_id of this ServiceCatalogAssociation.
96        :rtype: str
97        """
98        return self._service_catalog_id
99
100    @service_catalog_id.setter
101    def service_catalog_id(self, service_catalog_id):
102        """
103        Sets the service_catalog_id of this ServiceCatalogAssociation.
104        Identifier of the service catalog.
105
106
107        :param service_catalog_id: The service_catalog_id of this ServiceCatalogAssociation.
108        :type: str
109        """
110        self._service_catalog_id = service_catalog_id
111
112    @property
113    def entity_id(self):
114        """
115        **[Required]** Gets the entity_id of this ServiceCatalogAssociation.
116        Identifier of the entity being associated with service catalog.
117
118
119        :return: The entity_id of this ServiceCatalogAssociation.
120        :rtype: str
121        """
122        return self._entity_id
123
124    @entity_id.setter
125    def entity_id(self, entity_id):
126        """
127        Sets the entity_id of this ServiceCatalogAssociation.
128        Identifier of the entity being associated with service catalog.
129
130
131        :param entity_id: The entity_id of this ServiceCatalogAssociation.
132        :type: str
133        """
134        self._entity_id = entity_id
135
136    @property
137    def entity_type(self):
138        """
139        Gets the entity_type of this ServiceCatalogAssociation.
140        The type of the entity that is associated with the service catalog.
141
142
143        :return: The entity_type of this ServiceCatalogAssociation.
144        :rtype: str
145        """
146        return self._entity_type
147
148    @entity_type.setter
149    def entity_type(self, entity_type):
150        """
151        Sets the entity_type of this ServiceCatalogAssociation.
152        The type of the entity that is associated with the service catalog.
153
154
155        :param entity_type: The entity_type of this ServiceCatalogAssociation.
156        :type: str
157        """
158        self._entity_type = entity_type
159
160    @property
161    def time_created(self):
162        """
163        **[Required]** Gets the time_created of this ServiceCatalogAssociation.
164        Timestamp of when the resource was associated with service catalog.
165
166
167        :return: The time_created of this ServiceCatalogAssociation.
168        :rtype: datetime
169        """
170        return self._time_created
171
172    @time_created.setter
173    def time_created(self, time_created):
174        """
175        Sets the time_created of this ServiceCatalogAssociation.
176        Timestamp of when the resource was associated with service catalog.
177
178
179        :param time_created: The time_created of this ServiceCatalogAssociation.
180        :type: datetime
181        """
182        self._time_created = time_created
183
184    def __repr__(self):
185        return formatted_flat_dict(self)
186
187    def __eq__(self, other):
188        if other is None:
189            return False
190
191        return self.__dict__ == other.__dict__
192
193    def __ne__(self, other):
194        return not self == other
195