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 CpeDeviceShapeDetail(object):
12    """
13    The detailed information about a particular CPE device type. Compare with
14    :class:`CpeDeviceShapeSummary`.
15    """
16
17    def __init__(self, **kwargs):
18        """
19        Initializes a new CpeDeviceShapeDetail object with values from keyword arguments.
20        The following keyword arguments are supported (corresponding to the getters/setters of this class):
21
22        :param cpe_device_shape_id:
23            The value to assign to the cpe_device_shape_id property of this CpeDeviceShapeDetail.
24        :type cpe_device_shape_id: str
25
26        :param cpe_device_info:
27            The value to assign to the cpe_device_info property of this CpeDeviceShapeDetail.
28        :type cpe_device_info: oci.core.models.CpeDeviceInfo
29
30        :param parameters:
31            The value to assign to the parameters property of this CpeDeviceShapeDetail.
32        :type parameters: list[oci.core.models.CpeDeviceConfigQuestion]
33
34        :param template:
35            The value to assign to the template property of this CpeDeviceShapeDetail.
36        :type template: str
37
38        """
39        self.swagger_types = {
40            'cpe_device_shape_id': 'str',
41            'cpe_device_info': 'CpeDeviceInfo',
42            'parameters': 'list[CpeDeviceConfigQuestion]',
43            'template': 'str'
44        }
45
46        self.attribute_map = {
47            'cpe_device_shape_id': 'cpeDeviceShapeId',
48            'cpe_device_info': 'cpeDeviceInfo',
49            'parameters': 'parameters',
50            'template': 'template'
51        }
52
53        self._cpe_device_shape_id = None
54        self._cpe_device_info = None
55        self._parameters = None
56        self._template = None
57
58    @property
59    def cpe_device_shape_id(self):
60        """
61        Gets the cpe_device_shape_id of this CpeDeviceShapeDetail.
62        The `OCID`__ of the CPE device shape.
63        This value uniquely identifies the type of CPE device.
64
65        __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
66
67
68        :return: The cpe_device_shape_id of this CpeDeviceShapeDetail.
69        :rtype: str
70        """
71        return self._cpe_device_shape_id
72
73    @cpe_device_shape_id.setter
74    def cpe_device_shape_id(self, cpe_device_shape_id):
75        """
76        Sets the cpe_device_shape_id of this CpeDeviceShapeDetail.
77        The `OCID`__ of the CPE device shape.
78        This value uniquely identifies the type of CPE device.
79
80        __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
81
82
83        :param cpe_device_shape_id: The cpe_device_shape_id of this CpeDeviceShapeDetail.
84        :type: str
85        """
86        self._cpe_device_shape_id = cpe_device_shape_id
87
88    @property
89    def cpe_device_info(self):
90        """
91        Gets the cpe_device_info of this CpeDeviceShapeDetail.
92
93        :return: The cpe_device_info of this CpeDeviceShapeDetail.
94        :rtype: oci.core.models.CpeDeviceInfo
95        """
96        return self._cpe_device_info
97
98    @cpe_device_info.setter
99    def cpe_device_info(self, cpe_device_info):
100        """
101        Sets the cpe_device_info of this CpeDeviceShapeDetail.
102
103        :param cpe_device_info: The cpe_device_info of this CpeDeviceShapeDetail.
104        :type: oci.core.models.CpeDeviceInfo
105        """
106        self._cpe_device_info = cpe_device_info
107
108    @property
109    def parameters(self):
110        """
111        Gets the parameters of this CpeDeviceShapeDetail.
112        For certain CPE devices types, the customer can provide answers to
113        questions that are specific to the device type. This attribute contains
114        a list of those questions. The Networking service merges the answers with
115        other information and renders a set of CPE configuration content. To
116        provide the answers, use
117        :func:`update_tunnel_cpe_device_config`.
118
119
120        :return: The parameters of this CpeDeviceShapeDetail.
121        :rtype: list[oci.core.models.CpeDeviceConfigQuestion]
122        """
123        return self._parameters
124
125    @parameters.setter
126    def parameters(self, parameters):
127        """
128        Sets the parameters of this CpeDeviceShapeDetail.
129        For certain CPE devices types, the customer can provide answers to
130        questions that are specific to the device type. This attribute contains
131        a list of those questions. The Networking service merges the answers with
132        other information and renders a set of CPE configuration content. To
133        provide the answers, use
134        :func:`update_tunnel_cpe_device_config`.
135
136
137        :param parameters: The parameters of this CpeDeviceShapeDetail.
138        :type: list[oci.core.models.CpeDeviceConfigQuestion]
139        """
140        self._parameters = parameters
141
142    @property
143    def template(self):
144        """
145        Gets the template of this CpeDeviceShapeDetail.
146        A template of CPE device configuration information that will be merged with the customer's
147        answers to the questions to render the final CPE device configuration content. Also see:
148
149          * :func:`get_cpe_device_config_content`
150          * :func:`get_ipsec_cpe_device_config_content`
151          * :func:`get_tunnel_cpe_device_config_content`
152
153
154        :return: The template of this CpeDeviceShapeDetail.
155        :rtype: str
156        """
157        return self._template
158
159    @template.setter
160    def template(self, template):
161        """
162        Sets the template of this CpeDeviceShapeDetail.
163        A template of CPE device configuration information that will be merged with the customer's
164        answers to the questions to render the final CPE device configuration content. Also see:
165
166          * :func:`get_cpe_device_config_content`
167          * :func:`get_ipsec_cpe_device_config_content`
168          * :func:`get_tunnel_cpe_device_config_content`
169
170
171        :param template: The template of this CpeDeviceShapeDetail.
172        :type: str
173        """
174        self._template = template
175
176    def __repr__(self):
177        return formatted_flat_dict(self)
178
179    def __eq__(self, other):
180        if other is None:
181            return False
182
183        return self.__dict__ == other.__dict__
184
185    def __ne__(self, other):
186        return not self == other
187