# coding: utf-8

"""
    Cloudbreak API

    Cloudbreak is a powerful left surf that breaks over a coral reef, a mile off southwest the island of Tavarua, Fiji. Cloudbreak is a cloud agnostic Hadoop as a Service API. Abstracts the provisioning and ease management and monitoring of on-demand clusters. SequenceIQ's Cloudbreak is a RESTful application development platform with the goal of helping developers to build solutions for deploying Hadoop YARN clusters in different environments. Once it is deployed in your favourite servlet container it exposes a REST API allowing to span up Hadoop clusters of arbitary sizes and cloud providers. Provisioning Hadoop has never been easier. Cloudbreak is built on the foundation of cloud providers API (Amazon AWS, Microsoft Azure, Google Cloud Platform, Openstack), Apache Ambari, Docker lightweight containers, Swarm and Consul. For further product documentation follow the link: <a href=\"http://hortonworks.com/apache/cloudbreak/\">http://hortonworks.com/apache/cloudbreak/</a>

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


from pprint import pformat
from six import iteritems
import re


class AuditEvent(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 = {
        'audit_id': 'int',
        'raw_rest_event': 'StructuredRestCallEvent',
        'raw_flow_event': 'StructuredFlowEvent',
        'raw_notification': 'StructuredNotificationEvent',
        'operation': 'OperationDetails',
        'duration': 'int',
        'status': 'str'
    }

    attribute_map = {
        'audit_id': 'auditId',
        'raw_rest_event': 'rawRestEvent',
        'raw_flow_event': 'rawFlowEvent',
        'raw_notification': 'rawNotification',
        'operation': 'operation',
        'duration': 'duration',
        'status': 'status'
    }

    def __init__(self, audit_id=None, raw_rest_event=None, raw_flow_event=None, raw_notification=None, operation=None, duration=None, status=None):
        """
        AuditEvent - a model defined in Swagger
        """

        self._audit_id = None
        self._raw_rest_event = None
        self._raw_flow_event = None
        self._raw_notification = None
        self._operation = None
        self._duration = None
        self._status = None

        if audit_id is not None:
          self.audit_id = audit_id
        if raw_rest_event is not None:
          self.raw_rest_event = raw_rest_event
        if raw_flow_event is not None:
          self.raw_flow_event = raw_flow_event
        if raw_notification is not None:
          self.raw_notification = raw_notification
        if operation is not None:
          self.operation = operation
        if duration is not None:
          self.duration = duration
        if status is not None:
          self.status = status

    @property
    def audit_id(self):
        """
        Gets the audit_id of this AuditEvent.

        :return: The audit_id of this AuditEvent.
        :rtype: int
        """
        return self._audit_id

    @audit_id.setter
    def audit_id(self, audit_id):
        """
        Sets the audit_id of this AuditEvent.

        :param audit_id: The audit_id of this AuditEvent.
        :type: int
        """

        self._audit_id = audit_id

    @property
    def raw_rest_event(self):
        """
        Gets the raw_rest_event of this AuditEvent.

        :return: The raw_rest_event of this AuditEvent.
        :rtype: StructuredRestCallEvent
        """
        return self._raw_rest_event

    @raw_rest_event.setter
    def raw_rest_event(self, raw_rest_event):
        """
        Sets the raw_rest_event of this AuditEvent.

        :param raw_rest_event: The raw_rest_event of this AuditEvent.
        :type: StructuredRestCallEvent
        """

        self._raw_rest_event = raw_rest_event

    @property
    def raw_flow_event(self):
        """
        Gets the raw_flow_event of this AuditEvent.

        :return: The raw_flow_event of this AuditEvent.
        :rtype: StructuredFlowEvent
        """
        return self._raw_flow_event

    @raw_flow_event.setter
    def raw_flow_event(self, raw_flow_event):
        """
        Sets the raw_flow_event of this AuditEvent.

        :param raw_flow_event: The raw_flow_event of this AuditEvent.
        :type: StructuredFlowEvent
        """

        self._raw_flow_event = raw_flow_event

    @property
    def raw_notification(self):
        """
        Gets the raw_notification of this AuditEvent.

        :return: The raw_notification of this AuditEvent.
        :rtype: StructuredNotificationEvent
        """
        return self._raw_notification

    @raw_notification.setter
    def raw_notification(self, raw_notification):
        """
        Sets the raw_notification of this AuditEvent.

        :param raw_notification: The raw_notification of this AuditEvent.
        :type: StructuredNotificationEvent
        """

        self._raw_notification = raw_notification

    @property
    def operation(self):
        """
        Gets the operation of this AuditEvent.

        :return: The operation of this AuditEvent.
        :rtype: OperationDetails
        """
        return self._operation

    @operation.setter
    def operation(self, operation):
        """
        Sets the operation of this AuditEvent.

        :param operation: The operation of this AuditEvent.
        :type: OperationDetails
        """

        self._operation = operation

    @property
    def duration(self):
        """
        Gets the duration of this AuditEvent.

        :return: The duration of this AuditEvent.
        :rtype: int
        """
        return self._duration

    @duration.setter
    def duration(self, duration):
        """
        Sets the duration of this AuditEvent.

        :param duration: The duration of this AuditEvent.
        :type: int
        """

        self._duration = duration

    @property
    def status(self):
        """
        Gets the status of this AuditEvent.

        :return: The status of this AuditEvent.
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """
        Sets the status of this AuditEvent.

        :param status: The status of this AuditEvent.
        :type: str
        """

        self._status = status

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

        for attr, _ in 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

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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, AuditEvent):
            return False

        return self.__dict__ == other.__dict__

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

# coding: utf-8

"""
    Cloudbreak API

    Cloudbreak is a powerful left surf that breaks over a coral reef, a mile off southwest the island of Tavarua, Fiji. Cloudbreak is a cloud agnostic Hadoop as a Service API. Abstracts the provisioning and ease management and monitoring of on-demand clusters. SequenceIQ's Cloudbreak is a RESTful application development platform with the goal of helping developers to build solutions for deploying Hadoop YARN clusters in different environments. Once it is deployed in your favourite servlet container it exposes a REST API allowing to span up Hadoop clusters of arbitary sizes and cloud providers. Provisioning Hadoop has never been easier. Cloudbreak is built on the foundation of cloud providers API (Amazon AWS, Microsoft Azure, Google Cloud Platform, Openstack), Apache Ambari, Docker lightweight containers, Swarm and Consul. For further product documentation follow the link: <a href=\"http://hortonworks.com/apache/cloudbreak/\">http://hortonworks.com/apache/cloudbreak/</a>

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


from pprint import pformat
from six import iteritems
import re


class AuditEvent(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 = {
        'audit_id': 'int',
        'raw_rest_event': 'StructuredRestCallEvent',
        'raw_flow_event': 'StructuredFlowEvent',
        'raw_notification': 'StructuredNotificationEvent',
        'operation': 'OperationDetails',
        'duration': 'int',
        'status': 'str'
    }

    attribute_map = {
        'audit_id': 'auditId',
        'raw_rest_event': 'rawRestEvent',
        'raw_flow_event': 'rawFlowEvent',
        'raw_notification': 'rawNotification',
        'operation': 'operation',
        'duration': 'duration',
        'status': 'status'
    }

    def __init__(self, audit_id=None, raw_rest_event=None, raw_flow_event=None, raw_notification=None, operation=None, duration=None, status=None):
        """
        AuditEvent - a model defined in Swagger
        """

        self._audit_id = None
        self._raw_rest_event = None
        self._raw_flow_event = None
        self._raw_notification = None
        self._operation = None
        self._duration = None
        self._status = None

        if audit_id is not None:
          self.audit_id = audit_id
        if raw_rest_event is not None:
          self.raw_rest_event = raw_rest_event
        if raw_flow_event is not None:
          self.raw_flow_event = raw_flow_event
        if raw_notification is not None:
          self.raw_notification = raw_notification
        if operation is not None:
          self.operation = operation
        if duration is not None:
          self.duration = duration
        if status is not None:
          self.status = status

    @property
    def audit_id(self):
        """
        Gets the audit_id of this AuditEvent.

        :return: The audit_id of this AuditEvent.
        :rtype: int
        """
        return self._audit_id

    @audit_id.setter
    def audit_id(self, audit_id):
        """
        Sets the audit_id of this AuditEvent.

        :param audit_id: The audit_id of this AuditEvent.
        :type: int
        """

        self._audit_id = audit_id

    @property
    def raw_rest_event(self):
        """
        Gets the raw_rest_event of this AuditEvent.

        :return: The raw_rest_event of this AuditEvent.
        :rtype: StructuredRestCallEvent
        """
        return self._raw_rest_event

    @raw_rest_event.setter
    def raw_rest_event(self, raw_rest_event):
        """
        Sets the raw_rest_event of this AuditEvent.

        :param raw_rest_event: The raw_rest_event of this AuditEvent.
        :type: StructuredRestCallEvent
        """

        self._raw_rest_event = raw_rest_event

    @property
    def raw_flow_event(self):
        """
        Gets the raw_flow_event of this AuditEvent.

        :return: The raw_flow_event of this AuditEvent.
        :rtype: StructuredFlowEvent
        """
        return self._raw_flow_event

    @raw_flow_event.setter
    def raw_flow_event(self, raw_flow_event):
        """
        Sets the raw_flow_event of this AuditEvent.

        :param raw_flow_event: The raw_flow_event of this AuditEvent.
        :type: StructuredFlowEvent
        """

        self._raw_flow_event = raw_flow_event

    @property
    def raw_notification(self):
        """
        Gets the raw_notification of this AuditEvent.

        :return: The raw_notification of this AuditEvent.
        :rtype: StructuredNotificationEvent
        """
        return self._raw_notification

    @raw_notification.setter
    def raw_notification(self, raw_notification):
        """
        Sets the raw_notification of this AuditEvent.

        :param raw_notification: The raw_notification of this AuditEvent.
        :type: StructuredNotificationEvent
        """

        self._raw_notification = raw_notification

    @property
    def operation(self):
        """
        Gets the operation of this AuditEvent.

        :return: The operation of this AuditEvent.
        :rtype: OperationDetails
        """
        return self._operation

    @operation.setter
    def operation(self, operation):
        """
        Sets the operation of this AuditEvent.

        :param operation: The operation of this AuditEvent.
        :type: OperationDetails
        """

        self._operation = operation

    @property
    def duration(self):
        """
        Gets the duration of this AuditEvent.

        :return: The duration of this AuditEvent.
        :rtype: int
        """
        return self._duration

    @duration.setter
    def duration(self, duration):
        """
        Sets the duration of this AuditEvent.

        :param duration: The duration of this AuditEvent.
        :type: int
        """

        self._duration = duration

    @property
    def status(self):
        """
        Gets the status of this AuditEvent.

        :return: The status of this AuditEvent.
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """
        Sets the status of this AuditEvent.

        :param status: The status of this AuditEvent.
        :type: str
        """

        self._status = status

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

        for attr, _ in 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

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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, AuditEvent):
            return False

        return self.__dict__ == other.__dict__

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

# coding: utf-8 Cloudbreak API      Cloudbreak is a powerful left surf that breaks over a coral reef, a mile off southwest the island of Tavarua, Fiji. Cloudbreak is a cloud agnostic Hadoop as a Service API. Abstracts the provisioning and ease management and monitoring of on-demand clusters. SequenceIQ's Cloudbreak is a RESTful application development platform with the goal of helping developers to build solutions for deploying Hadoop YARN clusters in different environments. Once it is deployed in your favourite servlet container it exposes a REST API allowing to span up Hadoop clusters of arbitary sizes and cloud providers. Provisioning Hadoop has never been easier. Cloudbreak is built on the foundation of cloud providers API (Amazon AWS, Microsoft Azure, Google Cloud Platform, Openstack), Apache Ambari, Docker lightweight containers, Swarm and Consul. For further product documentation follow the link: <a href=\"http://hortonworks.com/apache/cloudbreak/\">http://hortonworks.com/apache/cloudbreak/</a>      OpenAPI spec version: 2.9.0          Generated by: https://github.com/swagger-api/swagger-codegen.git 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. AuditEvent - a model defined in Swagger Gets the audit_id of this AuditEvent.          :return: The audit_id of this AuditEvent.         :rtype: int Sets the audit_id of this AuditEvent.          :param audit_id: The audit_id of this AuditEvent.         :type: int Gets the raw_rest_event of this AuditEvent.          :return: The raw_rest_event of this AuditEvent.         :rtype: StructuredRestCallEvent Sets the raw_rest_event of this AuditEvent.          :param raw_rest_event: The raw_rest_event of this AuditEvent.         :type: StructuredRestCallEvent Gets the raw_flow_event of this AuditEvent.          :return: The raw_flow_event of this AuditEvent.         :rtype: StructuredFlowEvent Sets the raw_flow_event of this AuditEvent.          :param raw_flow_event: The raw_flow_event of this AuditEvent.         :type: StructuredFlowEvent Gets the raw_notification of this AuditEvent.          :return: The raw_notification of this AuditEvent.         :rtype: StructuredNotificationEvent Sets the raw_notification of this AuditEvent.          :param raw_notification: The raw_notification of this AuditEvent.         :type: StructuredNotificationEvent Gets the operation of this AuditEvent.          :return: The operation of this AuditEvent.         :rtype: OperationDetails Sets the operation of this AuditEvent.          :param operation: The operation of this AuditEvent.         :type: OperationDetails Gets the duration of this AuditEvent.          :return: The duration of this AuditEvent.         :rtype: int Sets the duration of this AuditEvent.          :param duration: The duration of this AuditEvent.         :type: int Gets the status of this AuditEvent.          :return: The status of this AuditEvent.         :rtype: str Sets the status of this AuditEvent.          :param status: The status of this AuditEvent.         :type: str Returns the model properties as a dict Returns the string representation of the model For `print` and `pprint` Returns true if both objects are equal Returns true if both objects are not equal