# coding: utf-8

"""
    Prisma Cloud Compute API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

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


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from openapi_client.configuration import Configuration


class SharedPolicyRule(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 = {
        'action': 'list[str]',
        'alert_threshold': 'SharedAlertThreshold',
        'all_compliance': 'bool',
        'audit_allowed': 'bool',
        'block_msg': 'str',
        'block_threshold': 'SharedBlockThreshold',
        'collections': 'list[CollectionCollection]',
        'condition': 'SharedConditions',
        'cve_rules': 'list[SharedCVERule]',
        'disabled': 'bool',
        'effect': 'CommonPolicyEffect',
        'grace_days': 'int',
        'group': 'list[str]',
        'license': 'SharedLicenseConfig',
        'modified': 'datetime',
        'name': 'str',
        'notes': 'str',
        'only_fixed': 'bool',
        'owner': 'str',
        'previous_name': 'str',
        'principal': 'list[str]',
        'tags': 'list[SharedTagRule]',
        'verbose': 'bool'
    }

    attribute_map = {
        'action': 'action',
        'alert_threshold': 'alertThreshold',
        'all_compliance': 'allCompliance',
        'audit_allowed': 'auditAllowed',
        'block_msg': 'blockMsg',
        'block_threshold': 'blockThreshold',
        'collections': 'collections',
        'condition': 'condition',
        'cve_rules': 'cveRules',
        'disabled': 'disabled',
        'effect': 'effect',
        'grace_days': 'graceDays',
        'group': 'group',
        'license': 'license',
        'modified': 'modified',
        'name': 'name',
        'notes': 'notes',
        'only_fixed': 'onlyFixed',
        'owner': 'owner',
        'previous_name': 'previousName',
        'principal': 'principal',
        'tags': 'tags',
        'verbose': 'verbose'
    }

    def __init__(self, action=None, alert_threshold=None, all_compliance=None, audit_allowed=None, block_msg=None, block_threshold=None, collections=None, condition=None, cve_rules=None, disabled=None, effect=None, grace_days=None, group=None, license=None, modified=None, name=None, notes=None, only_fixed=None, owner=None, previous_name=None, principal=None, tags=None, verbose=None, local_vars_configuration=None):  # noqa: E501
        """SharedPolicyRule - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._action = None
        self._alert_threshold = None
        self._all_compliance = None
        self._audit_allowed = None
        self._block_msg = None
        self._block_threshold = None
        self._collections = None
        self._condition = None
        self._cve_rules = None
        self._disabled = None
        self._effect = None
        self._grace_days = None
        self._group = None
        self._license = None
        self._modified = None
        self._name = None
        self._notes = None
        self._only_fixed = None
        self._owner = None
        self._previous_name = None
        self._principal = None
        self._tags = None
        self._verbose = None
        self.discriminator = None

        if action is not None:
            self.action = action
        if alert_threshold is not None:
            self.alert_threshold = alert_threshold
        if all_compliance is not None:
            self.all_compliance = all_compliance
        if audit_allowed is not None:
            self.audit_allowed = audit_allowed
        if block_msg is not None:
            self.block_msg = block_msg
        if block_threshold is not None:
            self.block_threshold = block_threshold
        if collections is not None:
            self.collections = collections
        if condition is not None:
            self.condition = condition
        if cve_rules is not None:
            self.cve_rules = cve_rules
        if disabled is not None:
            self.disabled = disabled
        if effect is not None:
            self.effect = effect
        if grace_days is not None:
            self.grace_days = grace_days
        if group is not None:
            self.group = group
        if license is not None:
            self.license = license
        if modified is not None:
            self.modified = modified
        if name is not None:
            self.name = name
        if notes is not None:
            self.notes = notes
        if only_fixed is not None:
            self.only_fixed = only_fixed
        if owner is not None:
            self.owner = owner
        if previous_name is not None:
            self.previous_name = previous_name
        if principal is not None:
            self.principal = principal
        if tags is not None:
            self.tags = tags
        if verbose is not None:
            self.verbose = verbose

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

        Action to take.   # noqa: E501

        :return: The action of this SharedPolicyRule.  # noqa: E501
        :rtype: list[str]
        """
        return self._action

    @action.setter
    def action(self, action):
        """Sets the action of this SharedPolicyRule.

        Action to take.   # noqa: E501

        :param action: The action of this SharedPolicyRule.  # noqa: E501
        :type action: list[str]
        """

        self._action = action

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


        :return: The alert_threshold of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedAlertThreshold
        """
        return self._alert_threshold

    @alert_threshold.setter
    def alert_threshold(self, alert_threshold):
        """Sets the alert_threshold of this SharedPolicyRule.


        :param alert_threshold: The alert_threshold of this SharedPolicyRule.  # noqa: E501
        :type alert_threshold: SharedAlertThreshold
        """

        self._alert_threshold = alert_threshold

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

        Reports the results of all compliance checks (both passed and failed) (true).   # noqa: E501

        :return: The all_compliance of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._all_compliance

    @all_compliance.setter
    def all_compliance(self, all_compliance):
        """Sets the all_compliance of this SharedPolicyRule.

        Reports the results of all compliance checks (both passed and failed) (true).   # noqa: E501

        :param all_compliance: The all_compliance of this SharedPolicyRule.  # noqa: E501
        :type all_compliance: bool
        """

        self._all_compliance = all_compliance

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

        Specifies if Prisma Cloud audits successful transactions.   # noqa: E501

        :return: The audit_allowed of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._audit_allowed

    @audit_allowed.setter
    def audit_allowed(self, audit_allowed):
        """Sets the audit_allowed of this SharedPolicyRule.

        Specifies if Prisma Cloud audits successful transactions.   # noqa: E501

        :param audit_allowed: The audit_allowed of this SharedPolicyRule.  # noqa: E501
        :type audit_allowed: bool
        """

        self._audit_allowed = audit_allowed

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

        PolicyBlockMsg represent the block message in a Policy  # noqa: E501

        :return: The block_msg of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._block_msg

    @block_msg.setter
    def block_msg(self, block_msg):
        """Sets the block_msg of this SharedPolicyRule.

        PolicyBlockMsg represent the block message in a Policy  # noqa: E501

        :param block_msg: The block_msg of this SharedPolicyRule.  # noqa: E501
        :type block_msg: str
        """

        self._block_msg = block_msg

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


        :return: The block_threshold of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedBlockThreshold
        """
        return self._block_threshold

    @block_threshold.setter
    def block_threshold(self, block_threshold):
        """Sets the block_threshold of this SharedPolicyRule.


        :param block_threshold: The block_threshold of this SharedPolicyRule.  # noqa: E501
        :type block_threshold: SharedBlockThreshold
        """

        self._block_threshold = block_threshold

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

        List of collections. Used to scope the rule.   # noqa: E501

        :return: The collections of this SharedPolicyRule.  # noqa: E501
        :rtype: list[CollectionCollection]
        """
        return self._collections

    @collections.setter
    def collections(self, collections):
        """Sets the collections of this SharedPolicyRule.

        List of collections. Used to scope the rule.   # noqa: E501

        :param collections: The collections of this SharedPolicyRule.  # noqa: E501
        :type collections: list[CollectionCollection]
        """

        self._collections = collections

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


        :return: The condition of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedConditions
        """
        return self._condition

    @condition.setter
    def condition(self, condition):
        """Sets the condition of this SharedPolicyRule.


        :param condition: The condition of this SharedPolicyRule.  # noqa: E501
        :type condition: SharedConditions
        """

        self._condition = condition

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

        List of CVE IDs classified for special handling (also known as exceptions).   # noqa: E501

        :return: The cve_rules of this SharedPolicyRule.  # noqa: E501
        :rtype: list[SharedCVERule]
        """
        return self._cve_rules

    @cve_rules.setter
    def cve_rules(self, cve_rules):
        """Sets the cve_rules of this SharedPolicyRule.

        List of CVE IDs classified for special handling (also known as exceptions).   # noqa: E501

        :param cve_rules: The cve_rules of this SharedPolicyRule.  # noqa: E501
        :type cve_rules: list[SharedCVERule]
        """

        self._cve_rules = cve_rules

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

        Indicates if the rule is currently disabled (true) or not (false).   # noqa: E501

        :return: The disabled of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._disabled

    @disabled.setter
    def disabled(self, disabled):
        """Sets the disabled of this SharedPolicyRule.

        Indicates if the rule is currently disabled (true) or not (false).   # noqa: E501

        :param disabled: The disabled of this SharedPolicyRule.  # noqa: E501
        :type disabled: bool
        """

        self._disabled = disabled

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


        :return: The effect of this SharedPolicyRule.  # noqa: E501
        :rtype: CommonPolicyEffect
        """
        return self._effect

    @effect.setter
    def effect(self, effect):
        """Sets the effect of this SharedPolicyRule.


        :param effect: The effect of this SharedPolicyRule.  # noqa: E501
        :type effect: CommonPolicyEffect
        """

        self._effect = effect

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

        Number of days to suppress the rule's block effect. Measured from date the vuln was fixed. If there's no fix, measured from the date the vuln was published.   # noqa: E501

        :return: The grace_days of this SharedPolicyRule.  # noqa: E501
        :rtype: int
        """
        return self._grace_days

    @grace_days.setter
    def grace_days(self, grace_days):
        """Sets the grace_days of this SharedPolicyRule.

        Number of days to suppress the rule's block effect. Measured from date the vuln was fixed. If there's no fix, measured from the date the vuln was published.   # noqa: E501

        :param grace_days: The grace_days of this SharedPolicyRule.  # noqa: E501
        :type grace_days: int
        """

        self._grace_days = grace_days

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

        Applicable groups.   # noqa: E501

        :return: The group of this SharedPolicyRule.  # noqa: E501
        :rtype: list[str]
        """
        return self._group

    @group.setter
    def group(self, group):
        """Sets the group of this SharedPolicyRule.

        Applicable groups.   # noqa: E501

        :param group: The group of this SharedPolicyRule.  # noqa: E501
        :type group: list[str]
        """

        self._group = group

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


        :return: The license of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedLicenseConfig
        """
        return self._license

    @license.setter
    def license(self, license):
        """Sets the license of this SharedPolicyRule.


        :param license: The license of this SharedPolicyRule.  # noqa: E501
        :type license: SharedLicenseConfig
        """

        self._license = license

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

        Datetime when the rule was last modified.   # noqa: E501

        :return: The modified of this SharedPolicyRule.  # noqa: E501
        :rtype: datetime
        """
        return self._modified

    @modified.setter
    def modified(self, modified):
        """Sets the modified of this SharedPolicyRule.

        Datetime when the rule was last modified.   # noqa: E501

        :param modified: The modified of this SharedPolicyRule.  # noqa: E501
        :type modified: datetime
        """

        self._modified = modified

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

        Name of the rule.   # noqa: E501

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

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

        Name of the rule.   # noqa: E501

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

        self._name = name

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

        Free-form text.   # noqa: E501

        :return: The notes of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._notes

    @notes.setter
    def notes(self, notes):
        """Sets the notes of this SharedPolicyRule.

        Free-form text.   # noqa: E501

        :param notes: The notes of this SharedPolicyRule.  # noqa: E501
        :type notes: str
        """

        self._notes = notes

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

        Applies rule only when vendor fixes are available (true).   # noqa: E501

        :return: The only_fixed of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._only_fixed

    @only_fixed.setter
    def only_fixed(self, only_fixed):
        """Sets the only_fixed of this SharedPolicyRule.

        Applies rule only when vendor fixes are available (true).   # noqa: E501

        :param only_fixed: The only_fixed of this SharedPolicyRule.  # noqa: E501
        :type only_fixed: bool
        """

        self._only_fixed = only_fixed

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

        User who created or last modified the rule.   # noqa: E501

        :return: The owner of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._owner

    @owner.setter
    def owner(self, owner):
        """Sets the owner of this SharedPolicyRule.

        User who created or last modified the rule.   # noqa: E501

        :param owner: The owner of this SharedPolicyRule.  # noqa: E501
        :type owner: str
        """

        self._owner = owner

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

        Previous name of the rule. Required for rule renaming.   # noqa: E501

        :return: The previous_name of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._previous_name

    @previous_name.setter
    def previous_name(self, previous_name):
        """Sets the previous_name of this SharedPolicyRule.

        Previous name of the rule. Required for rule renaming.   # noqa: E501

        :param previous_name: The previous_name of this SharedPolicyRule.  # noqa: E501
        :type previous_name: str
        """

        self._previous_name = previous_name

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

        Applicable users.   # noqa: E501

        :return: The principal of this SharedPolicyRule.  # noqa: E501
        :rtype: list[str]
        """
        return self._principal

    @principal.setter
    def principal(self, principal):
        """Sets the principal of this SharedPolicyRule.

        Applicable users.   # noqa: E501

        :param principal: The principal of this SharedPolicyRule.  # noqa: E501
        :type principal: list[str]
        """

        self._principal = principal

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

        List of tags classified for special handling (also known as exceptions).   # noqa: E501

        :return: The tags of this SharedPolicyRule.  # noqa: E501
        :rtype: list[SharedTagRule]
        """
        return self._tags

    @tags.setter
    def tags(self, tags):
        """Sets the tags of this SharedPolicyRule.

        List of tags classified for special handling (also known as exceptions).   # noqa: E501

        :param tags: The tags of this SharedPolicyRule.  # noqa: E501
        :type tags: list[SharedTagRule]
        """

        self._tags = tags

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

        Displays a detailed message when an operation is blocked (true).   # noqa: E501

        :return: The verbose of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._verbose

    @verbose.setter
    def verbose(self, verbose):
        """Sets the verbose of this SharedPolicyRule.

        Displays a detailed message when an operation is blocked (true).   # noqa: E501

        :param verbose: The verbose of this SharedPolicyRule.  # noqa: E501
        :type verbose: bool
        """

        self._verbose = verbose

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

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: convert(x),
                    value
                ))
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], convert(item[1])),
                    value.items()
                ))
            else:
                result[attr] = convert(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, SharedPolicyRule):
            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, SharedPolicyRule):
            return True

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

# coding: utf-8

"""
    Prisma Cloud Compute API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

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


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from openapi_client.configuration import Configuration


class SharedPolicyRule(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 = {
        'action': 'list[str]',
        'alert_threshold': 'SharedAlertThreshold',
        'all_compliance': 'bool',
        'audit_allowed': 'bool',
        'block_msg': 'str',
        'block_threshold': 'SharedBlockThreshold',
        'collections': 'list[CollectionCollection]',
        'condition': 'SharedConditions',
        'cve_rules': 'list[SharedCVERule]',
        'disabled': 'bool',
        'effect': 'CommonPolicyEffect',
        'grace_days': 'int',
        'group': 'list[str]',
        'license': 'SharedLicenseConfig',
        'modified': 'datetime',
        'name': 'str',
        'notes': 'str',
        'only_fixed': 'bool',
        'owner': 'str',
        'previous_name': 'str',
        'principal': 'list[str]',
        'tags': 'list[SharedTagRule]',
        'verbose': 'bool'
    }

    attribute_map = {
        'action': 'action',
        'alert_threshold': 'alertThreshold',
        'all_compliance': 'allCompliance',
        'audit_allowed': 'auditAllowed',
        'block_msg': 'blockMsg',
        'block_threshold': 'blockThreshold',
        'collections': 'collections',
        'condition': 'condition',
        'cve_rules': 'cveRules',
        'disabled': 'disabled',
        'effect': 'effect',
        'grace_days': 'graceDays',
        'group': 'group',
        'license': 'license',
        'modified': 'modified',
        'name': 'name',
        'notes': 'notes',
        'only_fixed': 'onlyFixed',
        'owner': 'owner',
        'previous_name': 'previousName',
        'principal': 'principal',
        'tags': 'tags',
        'verbose': 'verbose'
    }

    def __init__(self, action=None, alert_threshold=None, all_compliance=None, audit_allowed=None, block_msg=None, block_threshold=None, collections=None, condition=None, cve_rules=None, disabled=None, effect=None, grace_days=None, group=None, license=None, modified=None, name=None, notes=None, only_fixed=None, owner=None, previous_name=None, principal=None, tags=None, verbose=None, local_vars_configuration=None):  # noqa: E501
        """SharedPolicyRule - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._action = None
        self._alert_threshold = None
        self._all_compliance = None
        self._audit_allowed = None
        self._block_msg = None
        self._block_threshold = None
        self._collections = None
        self._condition = None
        self._cve_rules = None
        self._disabled = None
        self._effect = None
        self._grace_days = None
        self._group = None
        self._license = None
        self._modified = None
        self._name = None
        self._notes = None
        self._only_fixed = None
        self._owner = None
        self._previous_name = None
        self._principal = None
        self._tags = None
        self._verbose = None
        self.discriminator = None

        if action is not None:
            self.action = action
        if alert_threshold is not None:
            self.alert_threshold = alert_threshold
        if all_compliance is not None:
            self.all_compliance = all_compliance
        if audit_allowed is not None:
            self.audit_allowed = audit_allowed
        if block_msg is not None:
            self.block_msg = block_msg
        if block_threshold is not None:
            self.block_threshold = block_threshold
        if collections is not None:
            self.collections = collections
        if condition is not None:
            self.condition = condition
        if cve_rules is not None:
            self.cve_rules = cve_rules
        if disabled is not None:
            self.disabled = disabled
        if effect is not None:
            self.effect = effect
        if grace_days is not None:
            self.grace_days = grace_days
        if group is not None:
            self.group = group
        if license is not None:
            self.license = license
        if modified is not None:
            self.modified = modified
        if name is not None:
            self.name = name
        if notes is not None:
            self.notes = notes
        if only_fixed is not None:
            self.only_fixed = only_fixed
        if owner is not None:
            self.owner = owner
        if previous_name is not None:
            self.previous_name = previous_name
        if principal is not None:
            self.principal = principal
        if tags is not None:
            self.tags = tags
        if verbose is not None:
            self.verbose = verbose

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

        Action to take.   # noqa: E501

        :return: The action of this SharedPolicyRule.  # noqa: E501
        :rtype: list[str]
        """
        return self._action

    @action.setter
    def action(self, action):
        """Sets the action of this SharedPolicyRule.

        Action to take.   # noqa: E501

        :param action: The action of this SharedPolicyRule.  # noqa: E501
        :type action: list[str]
        """

        self._action = action

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


        :return: The alert_threshold of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedAlertThreshold
        """
        return self._alert_threshold

    @alert_threshold.setter
    def alert_threshold(self, alert_threshold):
        """Sets the alert_threshold of this SharedPolicyRule.


        :param alert_threshold: The alert_threshold of this SharedPolicyRule.  # noqa: E501
        :type alert_threshold: SharedAlertThreshold
        """

        self._alert_threshold = alert_threshold

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

        Reports the results of all compliance checks (both passed and failed) (true).   # noqa: E501

        :return: The all_compliance of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._all_compliance

    @all_compliance.setter
    def all_compliance(self, all_compliance):
        """Sets the all_compliance of this SharedPolicyRule.

        Reports the results of all compliance checks (both passed and failed) (true).   # noqa: E501

        :param all_compliance: The all_compliance of this SharedPolicyRule.  # noqa: E501
        :type all_compliance: bool
        """

        self._all_compliance = all_compliance

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

        Specifies if Prisma Cloud audits successful transactions.   # noqa: E501

        :return: The audit_allowed of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._audit_allowed

    @audit_allowed.setter
    def audit_allowed(self, audit_allowed):
        """Sets the audit_allowed of this SharedPolicyRule.

        Specifies if Prisma Cloud audits successful transactions.   # noqa: E501

        :param audit_allowed: The audit_allowed of this SharedPolicyRule.  # noqa: E501
        :type audit_allowed: bool
        """

        self._audit_allowed = audit_allowed

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

        PolicyBlockMsg represent the block message in a Policy  # noqa: E501

        :return: The block_msg of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._block_msg

    @block_msg.setter
    def block_msg(self, block_msg):
        """Sets the block_msg of this SharedPolicyRule.

        PolicyBlockMsg represent the block message in a Policy  # noqa: E501

        :param block_msg: The block_msg of this SharedPolicyRule.  # noqa: E501
        :type block_msg: str
        """

        self._block_msg = block_msg

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


        :return: The block_threshold of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedBlockThreshold
        """
        return self._block_threshold

    @block_threshold.setter
    def block_threshold(self, block_threshold):
        """Sets the block_threshold of this SharedPolicyRule.


        :param block_threshold: The block_threshold of this SharedPolicyRule.  # noqa: E501
        :type block_threshold: SharedBlockThreshold
        """

        self._block_threshold = block_threshold

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

        List of collections. Used to scope the rule.   # noqa: E501

        :return: The collections of this SharedPolicyRule.  # noqa: E501
        :rtype: list[CollectionCollection]
        """
        return self._collections

    @collections.setter
    def collections(self, collections):
        """Sets the collections of this SharedPolicyRule.

        List of collections. Used to scope the rule.   # noqa: E501

        :param collections: The collections of this SharedPolicyRule.  # noqa: E501
        :type collections: list[CollectionCollection]
        """

        self._collections = collections

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


        :return: The condition of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedConditions
        """
        return self._condition

    @condition.setter
    def condition(self, condition):
        """Sets the condition of this SharedPolicyRule.


        :param condition: The condition of this SharedPolicyRule.  # noqa: E501
        :type condition: SharedConditions
        """

        self._condition = condition

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

        List of CVE IDs classified for special handling (also known as exceptions).   # noqa: E501

        :return: The cve_rules of this SharedPolicyRule.  # noqa: E501
        :rtype: list[SharedCVERule]
        """
        return self._cve_rules

    @cve_rules.setter
    def cve_rules(self, cve_rules):
        """Sets the cve_rules of this SharedPolicyRule.

        List of CVE IDs classified for special handling (also known as exceptions).   # noqa: E501

        :param cve_rules: The cve_rules of this SharedPolicyRule.  # noqa: E501
        :type cve_rules: list[SharedCVERule]
        """

        self._cve_rules = cve_rules

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

        Indicates if the rule is currently disabled (true) or not (false).   # noqa: E501

        :return: The disabled of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._disabled

    @disabled.setter
    def disabled(self, disabled):
        """Sets the disabled of this SharedPolicyRule.

        Indicates if the rule is currently disabled (true) or not (false).   # noqa: E501

        :param disabled: The disabled of this SharedPolicyRule.  # noqa: E501
        :type disabled: bool
        """

        self._disabled = disabled

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


        :return: The effect of this SharedPolicyRule.  # noqa: E501
        :rtype: CommonPolicyEffect
        """
        return self._effect

    @effect.setter
    def effect(self, effect):
        """Sets the effect of this SharedPolicyRule.


        :param effect: The effect of this SharedPolicyRule.  # noqa: E501
        :type effect: CommonPolicyEffect
        """

        self._effect = effect

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

        Number of days to suppress the rule's block effect. Measured from date the vuln was fixed. If there's no fix, measured from the date the vuln was published.   # noqa: E501

        :return: The grace_days of this SharedPolicyRule.  # noqa: E501
        :rtype: int
        """
        return self._grace_days

    @grace_days.setter
    def grace_days(self, grace_days):
        """Sets the grace_days of this SharedPolicyRule.

        Number of days to suppress the rule's block effect. Measured from date the vuln was fixed. If there's no fix, measured from the date the vuln was published.   # noqa: E501

        :param grace_days: The grace_days of this SharedPolicyRule.  # noqa: E501
        :type grace_days: int
        """

        self._grace_days = grace_days

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

        Applicable groups.   # noqa: E501

        :return: The group of this SharedPolicyRule.  # noqa: E501
        :rtype: list[str]
        """
        return self._group

    @group.setter
    def group(self, group):
        """Sets the group of this SharedPolicyRule.

        Applicable groups.   # noqa: E501

        :param group: The group of this SharedPolicyRule.  # noqa: E501
        :type group: list[str]
        """

        self._group = group

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


        :return: The license of this SharedPolicyRule.  # noqa: E501
        :rtype: SharedLicenseConfig
        """
        return self._license

    @license.setter
    def license(self, license):
        """Sets the license of this SharedPolicyRule.


        :param license: The license of this SharedPolicyRule.  # noqa: E501
        :type license: SharedLicenseConfig
        """

        self._license = license

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

        Datetime when the rule was last modified.   # noqa: E501

        :return: The modified of this SharedPolicyRule.  # noqa: E501
        :rtype: datetime
        """
        return self._modified

    @modified.setter
    def modified(self, modified):
        """Sets the modified of this SharedPolicyRule.

        Datetime when the rule was last modified.   # noqa: E501

        :param modified: The modified of this SharedPolicyRule.  # noqa: E501
        :type modified: datetime
        """

        self._modified = modified

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

        Name of the rule.   # noqa: E501

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

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

        Name of the rule.   # noqa: E501

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

        self._name = name

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

        Free-form text.   # noqa: E501

        :return: The notes of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._notes

    @notes.setter
    def notes(self, notes):
        """Sets the notes of this SharedPolicyRule.

        Free-form text.   # noqa: E501

        :param notes: The notes of this SharedPolicyRule.  # noqa: E501
        :type notes: str
        """

        self._notes = notes

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

        Applies rule only when vendor fixes are available (true).   # noqa: E501

        :return: The only_fixed of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._only_fixed

    @only_fixed.setter
    def only_fixed(self, only_fixed):
        """Sets the only_fixed of this SharedPolicyRule.

        Applies rule only when vendor fixes are available (true).   # noqa: E501

        :param only_fixed: The only_fixed of this SharedPolicyRule.  # noqa: E501
        :type only_fixed: bool
        """

        self._only_fixed = only_fixed

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

        User who created or last modified the rule.   # noqa: E501

        :return: The owner of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._owner

    @owner.setter
    def owner(self, owner):
        """Sets the owner of this SharedPolicyRule.

        User who created or last modified the rule.   # noqa: E501

        :param owner: The owner of this SharedPolicyRule.  # noqa: E501
        :type owner: str
        """

        self._owner = owner

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

        Previous name of the rule. Required for rule renaming.   # noqa: E501

        :return: The previous_name of this SharedPolicyRule.  # noqa: E501
        :rtype: str
        """
        return self._previous_name

    @previous_name.setter
    def previous_name(self, previous_name):
        """Sets the previous_name of this SharedPolicyRule.

        Previous name of the rule. Required for rule renaming.   # noqa: E501

        :param previous_name: The previous_name of this SharedPolicyRule.  # noqa: E501
        :type previous_name: str
        """

        self._previous_name = previous_name

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

        Applicable users.   # noqa: E501

        :return: The principal of this SharedPolicyRule.  # noqa: E501
        :rtype: list[str]
        """
        return self._principal

    @principal.setter
    def principal(self, principal):
        """Sets the principal of this SharedPolicyRule.

        Applicable users.   # noqa: E501

        :param principal: The principal of this SharedPolicyRule.  # noqa: E501
        :type principal: list[str]
        """

        self._principal = principal

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

        List of tags classified for special handling (also known as exceptions).   # noqa: E501

        :return: The tags of this SharedPolicyRule.  # noqa: E501
        :rtype: list[SharedTagRule]
        """
        return self._tags

    @tags.setter
    def tags(self, tags):
        """Sets the tags of this SharedPolicyRule.

        List of tags classified for special handling (also known as exceptions).   # noqa: E501

        :param tags: The tags of this SharedPolicyRule.  # noqa: E501
        :type tags: list[SharedTagRule]
        """

        self._tags = tags

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

        Displays a detailed message when an operation is blocked (true).   # noqa: E501

        :return: The verbose of this SharedPolicyRule.  # noqa: E501
        :rtype: bool
        """
        return self._verbose

    @verbose.setter
    def verbose(self, verbose):
        """Sets the verbose of this SharedPolicyRule.

        Displays a detailed message when an operation is blocked (true).   # noqa: E501

        :param verbose: The verbose of this SharedPolicyRule.  # noqa: E501
        :type verbose: bool
        """

        self._verbose = verbose

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

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: convert(x),
                    value
                ))
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], convert(item[1])),
                    value.items()
                ))
            else:
                result[attr] = convert(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, SharedPolicyRule):
            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, SharedPolicyRule):
            return True

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

# coding: utf-8 Prisma Cloud Compute API      No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501      The version of the OpenAPI document: 21.04.439     Generated by: https://openapi-generator.tech # noqa: F401 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. # noqa: E501 SharedPolicyRule - a model defined in OpenAPI # noqa: E501 Gets the action of this SharedPolicyRule.  # noqa: E501          Action to take.   # noqa: E501          :return: The action of this SharedPolicyRule.  # noqa: E501         :rtype: list[str] Sets the action of this SharedPolicyRule.          Action to take.   # noqa: E501          :param action: The action of this SharedPolicyRule.  # noqa: E501         :type action: list[str] Gets the alert_threshold of this SharedPolicyRule.  # noqa: E501           :return: The alert_threshold of this SharedPolicyRule.  # noqa: E501         :rtype: SharedAlertThreshold Sets the alert_threshold of this SharedPolicyRule.           :param alert_threshold: The alert_threshold of this SharedPolicyRule.  # noqa: E501         :type alert_threshold: SharedAlertThreshold Gets the all_compliance of this SharedPolicyRule.  # noqa: E501          Reports the results of all compliance checks (both passed and failed) (true).   # noqa: E501          :return: The all_compliance of this SharedPolicyRule.  # noqa: E501         :rtype: bool Sets the all_compliance of this SharedPolicyRule.          Reports the results of all compliance checks (both passed and failed) (true).   # noqa: E501          :param all_compliance: The all_compliance of this SharedPolicyRule.  # noqa: E501         :type all_compliance: bool Gets the audit_allowed of this SharedPolicyRule.  # noqa: E501          Specifies if Prisma Cloud audits successful transactions.   # noqa: E501          :return: The audit_allowed of this SharedPolicyRule.  # noqa: E501         :rtype: bool Sets the audit_allowed of this SharedPolicyRule.          Specifies if Prisma Cloud audits successful transactions.   # noqa: E501          :param audit_allowed: The audit_allowed of this SharedPolicyRule.  # noqa: E501         :type audit_allowed: bool Gets the block_msg of this SharedPolicyRule.  # noqa: E501          PolicyBlockMsg represent the block message in a Policy  # noqa: E501          :return: The block_msg of this SharedPolicyRule.  # noqa: E501         :rtype: str Sets the block_msg of this SharedPolicyRule.          PolicyBlockMsg represent the block message in a Policy  # noqa: E501          :param block_msg: The block_msg of this SharedPolicyRule.  # noqa: E501         :type block_msg: str Gets the block_threshold of this SharedPolicyRule.  # noqa: E501           :return: The block_threshold of this SharedPolicyRule.  # noqa: E501         :rtype: SharedBlockThreshold Sets the block_threshold of this SharedPolicyRule.           :param block_threshold: The block_threshold of this SharedPolicyRule.  # noqa: E501         :type block_threshold: SharedBlockThreshold Gets the collections of this SharedPolicyRule.  # noqa: E501          List of collections. Used to scope the rule.   # noqa: E501          :return: The collections of this SharedPolicyRule.  # noqa: E501         :rtype: list[CollectionCollection] Sets the collections of this SharedPolicyRule.          List of collections. Used to scope the rule.   # noqa: E501          :param collections: The collections of this SharedPolicyRule.  # noqa: E501         :type collections: list[CollectionCollection] Gets the condition of this SharedPolicyRule.  # noqa: E501           :return: The condition of this SharedPolicyRule.  # noqa: E501         :rtype: SharedConditions Sets the condition of this SharedPolicyRule.           :param condition: The condition of this SharedPolicyRule.  # noqa: E501         :type condition: SharedConditions Gets the cve_rules of this SharedPolicyRule.  # noqa: E501          List of CVE IDs classified for special handling (also known as exceptions).   # noqa: E501          :return: The cve_rules of this SharedPolicyRule.  # noqa: E501         :rtype: list[SharedCVERule] Sets the cve_rules of this SharedPolicyRule.          List of CVE IDs classified for special handling (also known as exceptions).   # noqa: E501          :param cve_rules: The cve_rules of this SharedPolicyRule.  # noqa: E501         :type cve_rules: list[SharedCVERule] Gets the disabled of this SharedPolicyRule.  # noqa: E501          Indicates if the rule is currently disabled (true) or not (false).   # noqa: E501          :return: The disabled of this SharedPolicyRule.  # noqa: E501         :rtype: bool Sets the disabled of this SharedPolicyRule.          Indicates if the rule is currently disabled (true) or not (false).   # noqa: E501          :param disabled: The disabled of this SharedPolicyRule.  # noqa: E501         :type disabled: bool Gets the effect of this SharedPolicyRule.  # noqa: E501           :return: The effect of this SharedPolicyRule.  # noqa: E501         :rtype: CommonPolicyEffect Sets the effect of this SharedPolicyRule.           :param effect: The effect of this SharedPolicyRule.  # noqa: E501         :type effect: CommonPolicyEffect Gets the grace_days of this SharedPolicyRule.  # noqa: E501          Number of days to suppress the rule's block effect. Measured from date the vuln was fixed. If there's no fix, measured from the date the vuln was published.   # noqa: E501          :return: The grace_days of this SharedPolicyRule.  # noqa: E501         :rtype: int Sets the grace_days of this SharedPolicyRule.          Number of days to suppress the rule's block effect. Measured from date the vuln was fixed. If there's no fix, measured from the date the vuln was published.   # noqa: E501          :param grace_days: The grace_days of this SharedPolicyRule.  # noqa: E501         :type grace_days: int Gets the group of this SharedPolicyRule.  # noqa: E501          Applicable groups.   # noqa: E501          :return: The group of this SharedPolicyRule.  # noqa: E501         :rtype: list[str] Sets the group of this SharedPolicyRule.          Applicable groups.   # noqa: E501          :param group: The group of this SharedPolicyRule.  # noqa: E501         :type group: list[str] Gets the license of this SharedPolicyRule.  # noqa: E501           :return: The license of this SharedPolicyRule.  # noqa: E501         :rtype: SharedLicenseConfig Sets the license of this SharedPolicyRule.           :param license: The license of this SharedPolicyRule.  # noqa: E501         :type license: SharedLicenseConfig Gets the modified of this SharedPolicyRule.  # noqa: E501          Datetime when the rule was last modified.   # noqa: E501          :return: The modified of this SharedPolicyRule.  # noqa: E501         :rtype: datetime Sets the modified of this SharedPolicyRule.          Datetime when the rule was last modified.   # noqa: E501          :param modified: The modified of this SharedPolicyRule.  # noqa: E501         :type modified: datetime Gets the name of this SharedPolicyRule.  # noqa: E501          Name of the rule.   # noqa: E501          :return: The name of this SharedPolicyRule.  # noqa: E501         :rtype: str Sets the name of this SharedPolicyRule.          Name of the rule.   # noqa: E501          :param name: The name of this SharedPolicyRule.  # noqa: E501         :type name: str Gets the notes of this SharedPolicyRule.  # noqa: E501          Free-form text.   # noqa: E501          :return: The notes of this SharedPolicyRule.  # noqa: E501         :rtype: str Sets the notes of this SharedPolicyRule.          Free-form text.   # noqa: E501          :param notes: The notes of this SharedPolicyRule.  # noqa: E501         :type notes: str Gets the only_fixed of this SharedPolicyRule.  # noqa: E501          Applies rule only when vendor fixes are available (true).   # noqa: E501          :return: The only_fixed of this SharedPolicyRule.  # noqa: E501         :rtype: bool Sets the only_fixed of this SharedPolicyRule.          Applies rule only when vendor fixes are available (true).   # noqa: E501          :param only_fixed: The only_fixed of this SharedPolicyRule.  # noqa: E501         :type only_fixed: bool Gets the owner of this SharedPolicyRule.  # noqa: E501          User who created or last modified the rule.   # noqa: E501          :return: The owner of this SharedPolicyRule.  # noqa: E501         :rtype: str Sets the owner of this SharedPolicyRule.          User who created or last modified the rule.   # noqa: E501          :param owner: The owner of this SharedPolicyRule.  # noqa: E501         :type owner: str Gets the previous_name of this SharedPolicyRule.  # noqa: E501          Previous name of the rule. Required for rule renaming.   # noqa: E501          :return: The previous_name of this SharedPolicyRule.  # noqa: E501         :rtype: str Sets the previous_name of this SharedPolicyRule.          Previous name of the rule. Required for rule renaming.   # noqa: E501          :param previous_name: The previous_name of this SharedPolicyRule.  # noqa: E501         :type previous_name: str Gets the principal of this SharedPolicyRule.  # noqa: E501          Applicable users.   # noqa: E501          :return: The principal of this SharedPolicyRule.  # noqa: E501         :rtype: list[str] Sets the principal of this SharedPolicyRule.          Applicable users.   # noqa: E501          :param principal: The principal of this SharedPolicyRule.  # noqa: E501         :type principal: list[str] Gets the tags of this SharedPolicyRule.  # noqa: E501          List of tags classified for special handling (also known as exceptions).   # noqa: E501          :return: The tags of this SharedPolicyRule.  # noqa: E501         :rtype: list[SharedTagRule] Sets the tags of this SharedPolicyRule.          List of tags classified for special handling (also known as exceptions).   # noqa: E501          :param tags: The tags of this SharedPolicyRule.  # noqa: E501         :type tags: list[SharedTagRule] Gets the verbose of this SharedPolicyRule.  # noqa: E501          Displays a detailed message when an operation is blocked (true).   # noqa: E501          :return: The verbose of this SharedPolicyRule.  # noqa: E501         :rtype: bool Sets the verbose of this SharedPolicyRule.          Displays a detailed message when an operation is blocked (true).   # noqa: E501          :param verbose: The verbose of this SharedPolicyRule.  # noqa: E501         :type verbose: bool 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