# coding: utf-8

"""
    Python client for GIG based clouds (pc4g)

    RESTful api client to a GIG based cloud.  # noqa: E501

    OpenAPI spec version: v1.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from pc4g.configuration import Configuration


class DeletedResources(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'objectspaces': 'list[DeletedObjectspace]',
        'cloudspaces': 'list[DeletedCloudspace]',
        'vms': 'list[DeletedMachine]',
        'buckets': 'list[DeletedBucket]',
        'disks': 'list[DeletedDisk]',
        'cdrom_images': 'list[DeletedCDROM]',
        'images': 'list[DeletedImage]'
    }

    attribute_map = {
        'objectspaces': 'objectspaces',
        'cloudspaces': 'cloudspaces',
        'vms': 'vms',
        'buckets': 'buckets',
        'disks': 'disks',
        'cdrom_images': 'cdrom_images',
        'images': 'images'
    }

    def __init__(self, objectspaces=None, cloudspaces=None, vms=None, buckets=None, disks=None, cdrom_images=None, images=None, _configuration=None):  # noqa: E501
        """DeletedResources - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._objectspaces = None
        self._cloudspaces = None
        self._vms = None
        self._buckets = None
        self._disks = None
        self._cdrom_images = None
        self._images = None
        self.discriminator = None

        if objectspaces is not None:
            self.objectspaces = objectspaces
        if cloudspaces is not None:
            self.cloudspaces = cloudspaces
        if vms is not None:
            self.vms = vms
        if buckets is not None:
            self.buckets = buckets
        if disks is not None:
            self.disks = disks
        if cdrom_images is not None:
            self.cdrom_images = cdrom_images
        if images is not None:
            self.images = images

    @property
    def objectspaces(self):
        """Gets the objectspaces of this DeletedResources.  # noqa: E501


        :return: The objectspaces of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedObjectspace]
        """
        return self._objectspaces

    @objectspaces.setter
    def objectspaces(self, objectspaces):
        """Sets the objectspaces of this DeletedResources.


        :param objectspaces: The objectspaces of this DeletedResources.  # noqa: E501
        :type: list[DeletedObjectspace]
        """

        self._objectspaces = objectspaces

    @property
    def cloudspaces(self):
        """Gets the cloudspaces of this DeletedResources.  # noqa: E501


        :return: The cloudspaces of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedCloudspace]
        """
        return self._cloudspaces

    @cloudspaces.setter
    def cloudspaces(self, cloudspaces):
        """Sets the cloudspaces of this DeletedResources.


        :param cloudspaces: The cloudspaces of this DeletedResources.  # noqa: E501
        :type: list[DeletedCloudspace]
        """

        self._cloudspaces = cloudspaces

    @property
    def vms(self):
        """Gets the vms of this DeletedResources.  # noqa: E501


        :return: The vms of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedMachine]
        """
        return self._vms

    @vms.setter
    def vms(self, vms):
        """Sets the vms of this DeletedResources.


        :param vms: The vms of this DeletedResources.  # noqa: E501
        :type: list[DeletedMachine]
        """

        self._vms = vms

    @property
    def buckets(self):
        """Gets the buckets of this DeletedResources.  # noqa: E501


        :return: The buckets of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedBucket]
        """
        return self._buckets

    @buckets.setter
    def buckets(self, buckets):
        """Sets the buckets of this DeletedResources.


        :param buckets: The buckets of this DeletedResources.  # noqa: E501
        :type: list[DeletedBucket]
        """

        self._buckets = buckets

    @property
    def disks(self):
        """Gets the disks of this DeletedResources.  # noqa: E501


        :return: The disks of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedDisk]
        """
        return self._disks

    @disks.setter
    def disks(self, disks):
        """Sets the disks of this DeletedResources.


        :param disks: The disks of this DeletedResources.  # noqa: E501
        :type: list[DeletedDisk]
        """

        self._disks = disks

    @property
    def cdrom_images(self):
        """Gets the cdrom_images of this DeletedResources.  # noqa: E501


        :return: The cdrom_images of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedCDROM]
        """
        return self._cdrom_images

    @cdrom_images.setter
    def cdrom_images(self, cdrom_images):
        """Sets the cdrom_images of this DeletedResources.


        :param cdrom_images: The cdrom_images of this DeletedResources.  # noqa: E501
        :type: list[DeletedCDROM]
        """

        self._cdrom_images = cdrom_images

    @property
    def images(self):
        """Gets the images of this DeletedResources.  # noqa: E501


        :return: The images of this DeletedResources.  # noqa: E501
        :rtype: list[DeletedImage]
        """
        return self._images

    @images.setter
    def images(self, images):
        """Sets the images of this DeletedResources.


        :param images: The images of this DeletedResources.  # noqa: E501
        :type: list[DeletedImage]
        """

        self._images = images

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(DeletedResources, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, DeletedResources):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, DeletedResources):
            return True

        return self.to_dict() != other.to_dict()
