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 CreateSteeringPolicyAttachmentDetails(object):
12    """
13    The body for defining an attachment between a steering policy and a domain.
14
15
16    **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
17    """
18
19    def __init__(self, **kwargs):
20        """
21        Initializes a new CreateSteeringPolicyAttachmentDetails object with values from keyword arguments.
22        The following keyword arguments are supported (corresponding to the getters/setters of this class):
23
24        :param steering_policy_id:
25            The value to assign to the steering_policy_id property of this CreateSteeringPolicyAttachmentDetails.
26        :type steering_policy_id: str
27
28        :param zone_id:
29            The value to assign to the zone_id property of this CreateSteeringPolicyAttachmentDetails.
30        :type zone_id: str
31
32        :param domain_name:
33            The value to assign to the domain_name property of this CreateSteeringPolicyAttachmentDetails.
34        :type domain_name: str
35
36        :param display_name:
37            The value to assign to the display_name property of this CreateSteeringPolicyAttachmentDetails.
38        :type display_name: str
39
40        """
41        self.swagger_types = {
42            'steering_policy_id': 'str',
43            'zone_id': 'str',
44            'domain_name': 'str',
45            'display_name': 'str'
46        }
47
48        self.attribute_map = {
49            'steering_policy_id': 'steeringPolicyId',
50            'zone_id': 'zoneId',
51            'domain_name': 'domainName',
52            'display_name': 'displayName'
53        }
54
55        self._steering_policy_id = None
56        self._zone_id = None
57        self._domain_name = None
58        self._display_name = None
59
60    @property
61    def steering_policy_id(self):
62        """
63        **[Required]** Gets the steering_policy_id of this CreateSteeringPolicyAttachmentDetails.
64        The OCID of the attached steering policy.
65
66
67        :return: The steering_policy_id of this CreateSteeringPolicyAttachmentDetails.
68        :rtype: str
69        """
70        return self._steering_policy_id
71
72    @steering_policy_id.setter
73    def steering_policy_id(self, steering_policy_id):
74        """
75        Sets the steering_policy_id of this CreateSteeringPolicyAttachmentDetails.
76        The OCID of the attached steering policy.
77
78
79        :param steering_policy_id: The steering_policy_id of this CreateSteeringPolicyAttachmentDetails.
80        :type: str
81        """
82        self._steering_policy_id = steering_policy_id
83
84    @property
85    def zone_id(self):
86        """
87        **[Required]** Gets the zone_id of this CreateSteeringPolicyAttachmentDetails.
88        The OCID of the attached zone.
89
90
91        :return: The zone_id of this CreateSteeringPolicyAttachmentDetails.
92        :rtype: str
93        """
94        return self._zone_id
95
96    @zone_id.setter
97    def zone_id(self, zone_id):
98        """
99        Sets the zone_id of this CreateSteeringPolicyAttachmentDetails.
100        The OCID of the attached zone.
101
102
103        :param zone_id: The zone_id of this CreateSteeringPolicyAttachmentDetails.
104        :type: str
105        """
106        self._zone_id = zone_id
107
108    @property
109    def domain_name(self):
110        """
111        **[Required]** Gets the domain_name of this CreateSteeringPolicyAttachmentDetails.
112        The attached domain within the attached zone.
113
114
115        :return: The domain_name of this CreateSteeringPolicyAttachmentDetails.
116        :rtype: str
117        """
118        return self._domain_name
119
120    @domain_name.setter
121    def domain_name(self, domain_name):
122        """
123        Sets the domain_name of this CreateSteeringPolicyAttachmentDetails.
124        The attached domain within the attached zone.
125
126
127        :param domain_name: The domain_name of this CreateSteeringPolicyAttachmentDetails.
128        :type: str
129        """
130        self._domain_name = domain_name
131
132    @property
133    def display_name(self):
134        """
135        Gets the display_name of this CreateSteeringPolicyAttachmentDetails.
136        A user-friendly name for the steering policy attachment.
137        Does not have to be unique and can be changed.
138        Avoid entering confidential information.
139
140
141        :return: The display_name of this CreateSteeringPolicyAttachmentDetails.
142        :rtype: str
143        """
144        return self._display_name
145
146    @display_name.setter
147    def display_name(self, display_name):
148        """
149        Sets the display_name of this CreateSteeringPolicyAttachmentDetails.
150        A user-friendly name for the steering policy attachment.
151        Does not have to be unique and can be changed.
152        Avoid entering confidential information.
153
154
155        :param display_name: The display_name of this CreateSteeringPolicyAttachmentDetails.
156        :type: str
157        """
158        self._display_name = display_name
159
160    def __repr__(self):
161        return formatted_flat_dict(self)
162
163    def __eq__(self, other):
164        if other is None:
165            return False
166
167        return self.__dict__ == other.__dict__
168
169    def __ne__(self, other):
170        return not self == other
171