# coding: utf-8
# Copyright (c) 2016, 2026, Oracle and/or its affiliates.  All rights reserved.
# 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.

# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20220509


from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel, to_dict, redact_password_field  # noqa: F401
from oci.decorators import init_model_state_from_kwargs


@init_model_state_from_kwargs
class VolumeGroup(object):
    """
    Volume Group of the host storage
    """

    def __init__(self, **kwargs):
        """
        Initializes a new VolumeGroup object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param id:
            The value to assign to the id property of this VolumeGroup.
        :type id: str

        :param logical_units:
            The value to assign to the logical_units property of this VolumeGroup.
        :type logical_units: list[oci.cloud_bridge.models.LogicalUnit]

        """
        self.swagger_types = {
            'id': 'str',
            'logical_units': 'list[LogicalUnit]'
        }
        self.attribute_map = {
            'id': 'id',
            'logical_units': 'logicalUnits'
        }
        self._redacted_field_paths = [
            ['logical_units', '*', 'password'],
        ]
        self._id = None
        self._logical_units = None

    @property
    def id(self):
        """
        Gets the id of this VolumeGroup.
        A unique identifier of the volume group


        :return: The id of this VolumeGroup.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this VolumeGroup.
        A unique identifier of the volume group


        :param id: The id of this VolumeGroup.
        :type: str
        """
        self._id = id

    @property
    def logical_units(self):
        """
        Gets the logical_units of this VolumeGroup.
        List of logical units of the volume group


        :return: The logical_units of this VolumeGroup.
        :rtype: list[oci.cloud_bridge.models.LogicalUnit]
        """
        return self._logical_units

    @logical_units.setter
    def logical_units(self, logical_units):
        """
        Sets the logical_units of this VolumeGroup.
        List of logical units of the volume group


        :param logical_units: The logical_units of this VolumeGroup.
        :type: list[oci.cloud_bridge.models.LogicalUnit]
        """
        self._logical_units = logical_units

    def __repr__(self):
        as_dict = to_dict(self)
        redact_password_field(as_dict, ['logical_units', '*', 'password'])
        return formatted_flat_dict(as_dict)

    def __eq__(self, other):
        if other is None:
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not self == other
