# -*- coding: utf-8 -*-

"""
    test_meraki

    This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io ).
"""


class UpdateNetworkSmAppPolaris(object):

    """Implementation of the 'updateNetworkSmAppPolaris' model.

    TODO: type model description here.

    Attributes:
        scope (string): optional: The scope (one of all, none, automatic,
            withAny, withAll, withoutAny, or withoutAll) and a set of tags of
            the devices to be assigned
        prevent_auto_install (bool): optional: Whether or not SM should
            auto-install this app (one of true or false)
        uses_vpp (bool): optional: Whether or not the app should use VPP by
            device assignment (one of true or false)

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "scope":'scope',
        "prevent_auto_install":'preventAutoInstall',
        "uses_vpp":'usesVPP'
    }

    def __init__(self,
                 scope=None,
                 prevent_auto_install=None,
                 uses_vpp=None):
        """Constructor for the UpdateNetworkSmAppPolaris class"""

        # Initialize members of the class
        self.scope = scope
        self.prevent_auto_install = prevent_auto_install
        self.uses_vpp = uses_vpp


    @classmethod
    def from_dictionary(cls,
                        dictionary):
        """Creates an instance of this model from a dictionary

        Args:
            dictionary (dictionary): A dictionary representation of the object as
            obtained from the deserialization of the server's response. The keys
            MUST match property names in the API description.

        Returns:
            object: An instance of this structure class.

        """
        if dictionary is None:
            return None

        # Extract variables from the dictionary
        scope = dictionary.get('scope')
        prevent_auto_install = dictionary.get('preventAutoInstall')
        uses_vpp = dictionary.get('usesVPP')

        # Return an object of this model
        return cls(scope,
                   prevent_auto_install,
                   uses_vpp)


