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 BlockVolumeReplicaInfo(object):
12    """
13    Information about the block volume replica in the destination availability domain.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new BlockVolumeReplicaInfo object with values from keyword arguments.
19        The following keyword arguments are supported (corresponding to the getters/setters of this class):
20
21        :param display_name:
22            The value to assign to the display_name property of this BlockVolumeReplicaInfo.
23        :type display_name: str
24
25        :param block_volume_replica_id:
26            The value to assign to the block_volume_replica_id property of this BlockVolumeReplicaInfo.
27        :type block_volume_replica_id: str
28
29        :param availability_domain:
30            The value to assign to the availability_domain property of this BlockVolumeReplicaInfo.
31        :type availability_domain: str
32
33        """
34        self.swagger_types = {
35            'display_name': 'str',
36            'block_volume_replica_id': 'str',
37            'availability_domain': 'str'
38        }
39
40        self.attribute_map = {
41            'display_name': 'displayName',
42            'block_volume_replica_id': 'blockVolumeReplicaId',
43            'availability_domain': 'availabilityDomain'
44        }
45
46        self._display_name = None
47        self._block_volume_replica_id = None
48        self._availability_domain = None
49
50    @property
51    def display_name(self):
52        """
53        **[Required]** Gets the display_name of this BlockVolumeReplicaInfo.
54        A user-friendly name. Does not have to be unique, and it's changeable.
55        Avoid entering confidential information.
56
57
58        :return: The display_name of this BlockVolumeReplicaInfo.
59        :rtype: str
60        """
61        return self._display_name
62
63    @display_name.setter
64    def display_name(self, display_name):
65        """
66        Sets the display_name of this BlockVolumeReplicaInfo.
67        A user-friendly name. Does not have to be unique, and it's changeable.
68        Avoid entering confidential information.
69
70
71        :param display_name: The display_name of this BlockVolumeReplicaInfo.
72        :type: str
73        """
74        self._display_name = display_name
75
76    @property
77    def block_volume_replica_id(self):
78        """
79        **[Required]** Gets the block_volume_replica_id of this BlockVolumeReplicaInfo.
80        The block volume replica's Oracle ID (OCID).
81
82
83        :return: The block_volume_replica_id of this BlockVolumeReplicaInfo.
84        :rtype: str
85        """
86        return self._block_volume_replica_id
87
88    @block_volume_replica_id.setter
89    def block_volume_replica_id(self, block_volume_replica_id):
90        """
91        Sets the block_volume_replica_id of this BlockVolumeReplicaInfo.
92        The block volume replica's Oracle ID (OCID).
93
94
95        :param block_volume_replica_id: The block_volume_replica_id of this BlockVolumeReplicaInfo.
96        :type: str
97        """
98        self._block_volume_replica_id = block_volume_replica_id
99
100    @property
101    def availability_domain(self):
102        """
103        **[Required]** Gets the availability_domain of this BlockVolumeReplicaInfo.
104        The availability domain of the block volume replica.
105
106        Example: `Uocm:PHX-AD-1`
107
108
109        :return: The availability_domain of this BlockVolumeReplicaInfo.
110        :rtype: str
111        """
112        return self._availability_domain
113
114    @availability_domain.setter
115    def availability_domain(self, availability_domain):
116        """
117        Sets the availability_domain of this BlockVolumeReplicaInfo.
118        The availability domain of the block volume replica.
119
120        Example: `Uocm:PHX-AD-1`
121
122
123        :param availability_domain: The availability_domain of this BlockVolumeReplicaInfo.
124        :type: str
125        """
126        self._availability_domain = availability_domain
127
128    def __repr__(self):
129        return formatted_flat_dict(self)
130
131    def __eq__(self, other):
132        if other is None:
133            return False
134
135        return self.__dict__ == other.__dict__
136
137    def __ne__(self, other):
138        return not self == other
139