<gh_stars>0
# coding: utf-8

"""
    Container Security APIs

    All features of the Container Security are available through REST APIs.<br/>Access support information at www.qualys.com/support/<br/><br/><b>Permissions:</b><br/>User must have the Container module enabled<br/>User must have API ACCESS permission  # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from qualys_cs_api.configuration import Configuration


class ContainerDetails(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'arguments': 'list[str]',
        'command': 'str',
        'container_id': 'str',
        'created': 'str',
        'customer_uuid': 'str',
        'drift': 'Drift',
        'environment': 'list[str]',
        'host': 'Host',
        'hostname': 'str',
        'image_id': 'str',
        'image_sha': 'str',
        'image_uuid': 'str',
        'ipv4': 'str',
        'ipv6': 'str',
        'is_drift': 'bool',
        'is_root': 'bool',
        'label': 'list[Label]',
        'last_scanned': 'str',
        'mac_address': 'str',
        'name': 'str',
        'operating_system': 'str',
        'path': 'str',
        'port_mapping': 'list[PortMapping]',
        'privileged': 'bool',
        'sensor_uuid': 'str',
        'services': 'list[ServiceDetails]',
        'sha': 'str',
        'softwares': 'list[Software]',
        'source': 'str',
        'state': 'str',
        'state_changed': 'str',
        'users': 'list[str]',
        'uuid': 'str',
        'vulnerabilities': 'list[ServiceVulnerabilityDetails]'
    }

    attribute_map = {
        'arguments': 'arguments',
        'command': 'command',
        'container_id': 'containerId',
        'created': 'created',
        'customer_uuid': 'customerUuid',
        'drift': 'drift',
        'environment': 'environment',
        'host': 'host',
        'hostname': 'hostname',
        'image_id': 'imageId',
        'image_sha': 'imageSha',
        'image_uuid': 'imageUuid',
        'ipv4': 'ipv4',
        'ipv6': 'ipv6',
        'is_drift': 'isDrift',
        'is_root': 'isRoot',
        'label': 'label',
        'last_scanned': 'lastScanned',
        'mac_address': 'macAddress',
        'name': 'name',
        'operating_system': 'operatingSystem',
        'path': 'path',
        'port_mapping': 'portMapping',
        'privileged': 'privileged',
        'sensor_uuid': 'sensorUuid',
        'services': 'services',
        'sha': 'sha',
        'softwares': 'softwares',
        'source': 'source',
        'state': 'state',
        'state_changed': 'stateChanged',
        'users': 'users',
        'uuid': 'uuid',
        'vulnerabilities': 'vulnerabilities'
    }

    def __init__(self, arguments=None, command=None, container_id=None, created=None, customer_uuid=None, drift=None, environment=None, host=None, hostname=None, image_id=None, image_sha=None, image_uuid=None, ipv4=None, ipv6=None, is_drift=None, is_root=None, label=None, last_scanned=None, mac_address=None, name=None, operating_system=None, path=None, port_mapping=None, privileged=None, sensor_uuid=None, services=None, sha=None, softwares=None, source=None, state=None, state_changed=None, users=None, uuid=None, vulnerabilities=None, local_vars_configuration=None):  # noqa: E501
        """ContainerDetails - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._arguments = None
        self._command = None
        self._container_id = None
        self._created = None
        self._customer_uuid = None
        self._drift = None
        self._environment = None
        self._host = None
        self._hostname = None
        self._image_id = None
        self._image_sha = None
        self._image_uuid = None
        self._ipv4 = None
        self._ipv6 = None
        self._is_drift = None
        self._is_root = None
        self._label = None
        self._last_scanned = None
        self._mac_address = None
        self._name = None
        self._operating_system = None
        self._path = None
        self._port_mapping = None
        self._privileged = None
        self._sensor_uuid = None
        self._services = None
        self._sha = None
        self._softwares = None
        self._source = None
        self._state = None
        self._state_changed = None
        self._users = None
        self._uuid = None
        self._vulnerabilities = None
        self.discriminator = None

        if arguments is not None:
            self.arguments = arguments
        if command is not None:
            self.command = command
        if container_id is not None:
            self.container_id = container_id
        if created is not None:
            self.created = created
        if customer_uuid is not None:
            self.customer_uuid = customer_uuid
        if drift is not None:
            self.drift = drift
        if environment is not None:
            self.environment = environment
        if host is not None:
            self.host = host
        if hostname is not None:
            self.hostname = hostname
        if image_id is not None:
            self.image_id = image_id
        if image_sha is not None:
            self.image_sha = image_sha
        if image_uuid is not None:
            self.image_uuid = image_uuid
        if ipv4 is not None:
            self.ipv4 = ipv4
        if ipv6 is not None:
            self.ipv6 = ipv6
        if is_drift is not None:
            self.is_drift = is_drift
        if is_root is not None:
            self.is_root = is_root
        if label is not None:
            self.label = label
        if last_scanned is not None:
            self.last_scanned = last_scanned
        if mac_address is not None:
            self.mac_address = mac_address
        if name is not None:
            self.name = name
        if operating_system is not None:
            self.operating_system = operating_system
        if path is not None:
            self.path = path
        if port_mapping is not None:
            self.port_mapping = port_mapping
        if privileged is not None:
            self.privileged = privileged
        if sensor_uuid is not None:
            self.sensor_uuid = sensor_uuid
        if services is not None:
            self.services = services
        if sha is not None:
            self.sha = sha
        if softwares is not None:
            self.softwares = softwares
        if source is not None:
            self.source = source
        if state is not None:
            self.state = state
        if state_changed is not None:
            self.state_changed = state_changed
        if users is not None:
            self.users = users
        if uuid is not None:
            self.uuid = uuid
        if vulnerabilities is not None:
            self.vulnerabilities = vulnerabilities

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


        :return: The arguments of this ContainerDetails.  # noqa: E501
        :rtype: list[str]
        """
        return self._arguments

    @arguments.setter
    def arguments(self, arguments):
        """Sets the arguments of this ContainerDetails.


        :param arguments: The arguments of this ContainerDetails.  # noqa: E501
        :type: list[str]
        """

        self._arguments = arguments

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


        :return: The command of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._command

    @command.setter
    def command(self, command):
        """Sets the command of this ContainerDetails.


        :param command: The command of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._command = command

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


        :return: The container_id of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._container_id

    @container_id.setter
    def container_id(self, container_id):
        """Sets the container_id of this ContainerDetails.


        :param container_id: The container_id of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._container_id = container_id

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


        :return: The created of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._created

    @created.setter
    def created(self, created):
        """Sets the created of this ContainerDetails.


        :param created: The created of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._created = created

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


        :return: The customer_uuid of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._customer_uuid

    @customer_uuid.setter
    def customer_uuid(self, customer_uuid):
        """Sets the customer_uuid of this ContainerDetails.


        :param customer_uuid: The customer_uuid of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._customer_uuid = customer_uuid

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


        :return: The drift of this ContainerDetails.  # noqa: E501
        :rtype: Drift
        """
        return self._drift

    @drift.setter
    def drift(self, drift):
        """Sets the drift of this ContainerDetails.


        :param drift: The drift of this ContainerDetails.  # noqa: E501
        :type: Drift
        """

        self._drift = drift

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


        :return: The environment of this ContainerDetails.  # noqa: E501
        :rtype: list[str]
        """
        return self._environment

    @environment.setter
    def environment(self, environment):
        """Sets the environment of this ContainerDetails.


        :param environment: The environment of this ContainerDetails.  # noqa: E501
        :type: list[str]
        """

        self._environment = environment

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


        :return: The host of this ContainerDetails.  # noqa: E501
        :rtype: Host
        """
        return self._host

    @host.setter
    def host(self, host):
        """Sets the host of this ContainerDetails.


        :param host: The host of this ContainerDetails.  # noqa: E501
        :type: Host
        """

        self._host = host

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


        :return: The hostname of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._hostname

    @hostname.setter
    def hostname(self, hostname):
        """Sets the hostname of this ContainerDetails.


        :param hostname: The hostname of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._hostname = hostname

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


        :return: The image_id of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._image_id

    @image_id.setter
    def image_id(self, image_id):
        """Sets the image_id of this ContainerDetails.


        :param image_id: The image_id of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._image_id = image_id

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


        :return: The image_sha of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._image_sha

    @image_sha.setter
    def image_sha(self, image_sha):
        """Sets the image_sha of this ContainerDetails.


        :param image_sha: The image_sha of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._image_sha = image_sha

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


        :return: The image_uuid of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._image_uuid

    @image_uuid.setter
    def image_uuid(self, image_uuid):
        """Sets the image_uuid of this ContainerDetails.


        :param image_uuid: The image_uuid of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._image_uuid = image_uuid

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


        :return: The ipv4 of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._ipv4

    @ipv4.setter
    def ipv4(self, ipv4):
        """Sets the ipv4 of this ContainerDetails.


        :param ipv4: The ipv4 of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._ipv4 = ipv4

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


        :return: The ipv6 of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._ipv6

    @ipv6.setter
    def ipv6(self, ipv6):
        """Sets the ipv6 of this ContainerDetails.


        :param ipv6: The ipv6 of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._ipv6 = ipv6

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


        :return: The is_drift of this ContainerDetails.  # noqa: E501
        :rtype: bool
        """
        return self._is_drift

    @is_drift.setter
    def is_drift(self, is_drift):
        """Sets the is_drift of this ContainerDetails.


        :param is_drift: The is_drift of this ContainerDetails.  # noqa: E501
        :type: bool
        """

        self._is_drift = is_drift

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


        :return: The is_root of this ContainerDetails.  # noqa: E501
        :rtype: bool
        """
        return self._is_root

    @is_root.setter
    def is_root(self, is_root):
        """Sets the is_root of this ContainerDetails.


        :param is_root: The is_root of this ContainerDetails.  # noqa: E501
        :type: bool
        """

        self._is_root = is_root

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


        :return: The label of this ContainerDetails.  # noqa: E501
        :rtype: list[Label]
        """
        return self._label

    @label.setter
    def label(self, label):
        """Sets the label of this ContainerDetails.


        :param label: The label of this ContainerDetails.  # noqa: E501
        :type: list[Label]
        """

        self._label = label

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


        :return: The last_scanned of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._last_scanned

    @last_scanned.setter
    def last_scanned(self, last_scanned):
        """Sets the last_scanned of this ContainerDetails.


        :param last_scanned: The last_scanned of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._last_scanned = last_scanned

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


        :return: The mac_address of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._mac_address

    @mac_address.setter
    def mac_address(self, mac_address):
        """Sets the mac_address of this ContainerDetails.


        :param mac_address: The mac_address of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._mac_address = mac_address

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


        :return: The name of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this ContainerDetails.


        :param name: The name of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._name = name

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


        :return: The operating_system of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._operating_system

    @operating_system.setter
    def operating_system(self, operating_system):
        """Sets the operating_system of this ContainerDetails.


        :param operating_system: The operating_system of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._operating_system = operating_system

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


        :return: The path of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._path

    @path.setter
    def path(self, path):
        """Sets the path of this ContainerDetails.


        :param path: The path of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._path = path

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


        :return: The port_mapping of this ContainerDetails.  # noqa: E501
        :rtype: list[PortMapping]
        """
        return self._port_mapping

    @port_mapping.setter
    def port_mapping(self, port_mapping):
        """Sets the port_mapping of this ContainerDetails.


        :param port_mapping: The port_mapping of this ContainerDetails.  # noqa: E501
        :type: list[PortMapping]
        """

        self._port_mapping = port_mapping

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


        :return: The privileged of this ContainerDetails.  # noqa: E501
        :rtype: bool
        """
        return self._privileged

    @privileged.setter
    def privileged(self, privileged):
        """Sets the privileged of this ContainerDetails.


        :param privileged: The privileged of this ContainerDetails.  # noqa: E501
        :type: bool
        """

        self._privileged = privileged

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


        :return: The sensor_uuid of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._sensor_uuid

    @sensor_uuid.setter
    def sensor_uuid(self, sensor_uuid):
        """Sets the sensor_uuid of this ContainerDetails.


        :param sensor_uuid: The sensor_uuid of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._sensor_uuid = sensor_uuid

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


        :return: The services of this ContainerDetails.  # noqa: E501
        :rtype: list[ServiceDetails]
        """
        return self._services

    @services.setter
    def services(self, services):
        """Sets the services of this ContainerDetails.


        :param services: The services of this ContainerDetails.  # noqa: E501
        :type: list[ServiceDetails]
        """

        self._services = services

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


        :return: The sha of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._sha

    @sha.setter
    def sha(self, sha):
        """Sets the sha of this ContainerDetails.


        :param sha: The sha of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._sha = sha

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


        :return: The softwares of this ContainerDetails.  # noqa: E501
        :rtype: list[Software]
        """
        return self._softwares

    @softwares.setter
    def softwares(self, softwares):
        """Sets the softwares of this ContainerDetails.


        :param softwares: The softwares of this ContainerDetails.  # noqa: E501
        :type: list[Software]
        """

        self._softwares = softwares

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


        :return: The source of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._source

    @source.setter
    def source(self, source):
        """Sets the source of this ContainerDetails.


        :param source: The source of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._source = source

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


        :return: The state of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._state

    @state.setter
    def state(self, state):
        """Sets the state of this ContainerDetails.


        :param state: The state of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._state = state

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


        :return: The state_changed of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._state_changed

    @state_changed.setter
    def state_changed(self, state_changed):
        """Sets the state_changed of this ContainerDetails.


        :param state_changed: The state_changed of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._state_changed = state_changed

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


        :return: The users of this ContainerDetails.  # noqa: E501
        :rtype: list[str]
        """
        return self._users

    @users.setter
    def users(self, users):
        """Sets the users of this ContainerDetails.


        :param users: The users of this ContainerDetails.  # noqa: E501
        :type: list[str]
        """

        self._users = users

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


        :return: The uuid of this ContainerDetails.  # noqa: E501
        :rtype: str
        """
        return self._uuid

    @uuid.setter
    def uuid(self, uuid):
        """Sets the uuid of this ContainerDetails.


        :param uuid: The uuid of this ContainerDetails.  # noqa: E501
        :type: str
        """

        self._uuid = uuid

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


        :return: The vulnerabilities of this ContainerDetails.  # noqa: E501
        :rtype: list[ServiceVulnerabilityDetails]
        """
        return self._vulnerabilities

    @vulnerabilities.setter
    def vulnerabilities(self, vulnerabilities):
        """Sets the vulnerabilities of this ContainerDetails.


        :param vulnerabilities: The vulnerabilities of this ContainerDetails.  # noqa: E501
        :type: list[ServiceVulnerabilityDetails]
        """

        self._vulnerabilities = vulnerabilities

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

        for attr, _ in six.iteritems(self.openapi_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

        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, ContainerDetails):
            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, ContainerDetails):
            return True

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