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

"""
    test_meraki

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


class UpdateOrganizationSnmp(object):

    """Implementation of the 'updateOrganizationSnmp' model.

    TODO: type model description here.

    Attributes:
        v_2_c_enabled (bool): Boolean indicating whether SNMP version 2c is
            enabled for the organization.
        v_3_enabled (bool): Boolean indicating whether SNMP version 3 is
            enabled for the organization.
        v_3_auth_mode (V3AuthModeEnum): The SNMP version 3 authentication
            mode. Can be either 'MD5' or 'SHA'.
        v_3_auth_pass (string): The SNMP version 3 authentication password.
            Must be at least 8 characters if specified.
        v_3_priv_mode (V3PrivModeEnum): The SNMP version 3 privacy mode. Can
            be either 'DES' or 'AES128'.
        v_3_priv_pass (string): The SNMP version 3 privacy password. Must be
            at least 8 characters if specified.
        peer_ips (string): The IPs that are allowed to access the SNMP server.
            This list should be IPv4 addresses separated by semi-colons (ie.
            "1.2.3.4;2.3.4.5").

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "v_2_c_enabled":'v2cEnabled',
        "v_3_enabled":'v3Enabled',
        "v_3_auth_mode":'v3AuthMode',
        "v_3_auth_pass":'v3AuthPass',
        "v_3_priv_mode":'v3PrivMode',
        "v_3_priv_pass":'v3PrivPass',
        "peer_ips":'peerIps'
    }

    def __init__(self,
                 v_2_c_enabled=None,
                 v_3_enabled=None,
                 v_3_auth_mode=None,
                 v_3_auth_pass=None,
                 v_3_priv_mode=None,
                 v_3_priv_pass=None,
                 peer_ips=None):
        """Constructor for the UpdateOrganizationSnmp class"""

        # Initialize members of the class
        self.v_2_c_enabled = v_2_c_enabled
        self.v_3_enabled = v_3_enabled
        self.v_3_auth_mode = v_3_auth_mode
        self.v_3_auth_pass = v_3_auth_pass
        self.v_3_priv_mode = v_3_priv_mode
        self.v_3_priv_pass = v_3_priv_pass
        self.peer_ips = peer_ips


    @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
        v_2_c_enabled = dictionary.get('v2cEnabled')
        v_3_enabled = dictionary.get('v3Enabled')
        v_3_auth_mode = dictionary.get('v3AuthMode')
        v_3_auth_pass = dictionary.get('v3AuthPass')
        v_3_priv_mode = dictionary.get('v3PrivMode')
        v_3_priv_pass = dictionary.get('v3PrivPass')
        peer_ips = dictionary.get('peerIps')

        # Return an object of this model
        return cls(v_2_c_enabled,
                   v_3_enabled,
                   v_3_auth_mode,
                   v_3_auth_pass,
                   v_3_priv_mode,
                   v_3_priv_pass,
                   peer_ips)


