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

"""
    test_meraki

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

from test_meraki.decorators import lazy_property
from test_meraki.configuration import Configuration
from test_meraki.controllers.api_usage_controller import APIUsageController
from test_meraki.controllers.action_batches_controller import ActionBatchesController
from test_meraki.controllers.admins_controller import AdminsController
from test_meraki.controllers.alert_settings_controller import AlertSettingsController
from test_meraki.controllers.bluetooth_clients_controller import BluetoothClientsController
from test_meraki.controllers.cameras_controller import CamerasController
from test_meraki.controllers.clients_controller import ClientsController
from test_meraki.controllers.config_templates_controller import ConfigTemplatesController
from test_meraki.controllers.connectivity_monitoring_destinations_controller import ConnectivityMonitoringDestinationsController
from test_meraki.controllers.content_filtering_categories_controller import ContentFilteringCategoriesController
from test_meraki.controllers.content_filtering_rules_controller import ContentFilteringRulesController
from test_meraki.controllers.dashboard_branding_policies_controller import DashboardBrandingPoliciesController
from test_meraki.controllers.devices_controller import DevicesController
from test_meraki.controllers.events_controller import EventsController
from test_meraki.controllers.firewalled_services_controller import FirewalledServicesController
from test_meraki.controllers.floorplans_controller import FloorplansController
from test_meraki.controllers.group_policies_controller import GroupPoliciesController
from test_meraki.controllers.http_servers_controller import HTTPServersController
from test_meraki.controllers.intrusion_settings_controller import IntrusionSettingsController
from test_meraki.controllers.licenses_controller import LicensesController
from test_meraki.controllers.mrl_3_firewall_controller import MRL3FirewallController
from test_meraki.controllers.mv_sense_controller import MVSenseController
from test_meraki.controllers.mx_11_nat_rules_controller import MX11NATRulesController
from test_meraki.controllers.mx_1_many_nat_rules_controller import MX1ManyNATRulesController
from test_meraki.controllers.mxl_3_firewall_controller import MXL3FirewallController
from test_meraki.controllers.mxl_7_application_categories_controller import MXL7ApplicationCategoriesController
from test_meraki.controllers.mxl_7_firewall_controller import MXL7FirewallController
from test_meraki.controllers.mxvlan_ports_controller import MXVLANPortsController
from test_meraki.controllers.mxvpn_firewall_controller import MXVPNFirewallController
from test_meraki.controllers.mx_cellular_firewall_controller import MXCellularFirewallController
from test_meraki.controllers.mx_port_forwarding_rules_controller import MXPortForwardingRulesController
from test_meraki.controllers.mx_static_routes_controller import MXStaticRoutesController
from test_meraki.controllers.mx_warm_spare_settings_controller import MXWarmSpareSettingsController
from test_meraki.controllers.malware_settings_controller import MalwareSettingsController
from test_meraki.controllers.management_interface_settings_controller import ManagementInterfaceSettingsController
from test_meraki.controllers.meraki_auth_users_controller import MerakiAuthUsersController
from test_meraki.controllers.named_tag_scope_controller import NamedTagScopeController
from test_meraki.controllers.net_flow_settings_controller import NetFlowSettingsController
from test_meraki.controllers.networks_controller import NetworksController
from test_meraki.controllers.open_api_spec_controller import OpenAPISpecController
from test_meraki.controllers.organizations_controller import OrganizationsController
from test_meraki.controllers.pii_controller import PIIController
from test_meraki.controllers.radio_settings_controller import RadioSettingsController
from test_meraki.controllers.saml_roles_controller import SAMLRolesController
from test_meraki.controllers.sm_controller import SMController
from test_meraki.controllers.snmp_settings_controller import SNMPSettingsController
from test_meraki.controllers.ssi_ds_controller import SSIDsController
from test_meraki.controllers.security_events_controller import SecurityEventsController
from test_meraki.controllers.splash_login_attempts_controller import SplashLoginAttemptsController
from test_meraki.controllers.splash_settings_controller import SplashSettingsController
from test_meraki.controllers.switch_ac_ls_controller import SwitchACLsController
from test_meraki.controllers.switch_port_schedules_controller import SwitchPortSchedulesController
from test_meraki.controllers.switch_ports_controller import SwitchPortsController
from test_meraki.controllers.switch_profiles_controller import SwitchProfilesController
from test_meraki.controllers.switch_settings_controller import SwitchSettingsController
from test_meraki.controllers.switch_stacks_controller import SwitchStacksController
from test_meraki.controllers.syslog_servers_controller import SyslogServersController
from test_meraki.controllers.traffic_analysis_settings_controller import TrafficAnalysisSettingsController
from test_meraki.controllers.traffic_shaping_controller import TrafficShapingController
from test_meraki.controllers.uplink_settings_controller import UplinkSettingsController
from test_meraki.controllers.vla_ns_controller import VLANsController
from test_meraki.controllers.webhook_logs_controller import WebhookLogsController
from test_meraki.controllers.wireless_health_controller import WirelessHealthController
from test_meraki.controllers.wireless_settings_controller import WirelessSettingsController


class TestMerakiClient(object):

    config = Configuration

    @lazy_property
    def api_usage(self):
        return APIUsageController()

    @lazy_property
    def action_batches(self):
        return ActionBatchesController()

    @lazy_property
    def admins(self):
        return AdminsController()

    @lazy_property
    def alert_settings(self):
        return AlertSettingsController()

    @lazy_property
    def bluetooth_clients(self):
        return BluetoothClientsController()

    @lazy_property
    def cameras(self):
        return CamerasController()

    @lazy_property
    def clients(self):
        return ClientsController()

    @lazy_property
    def config_templates(self):
        return ConfigTemplatesController()

    @lazy_property
    def connectivity_monitoring_destinations(self):
        return ConnectivityMonitoringDestinationsController()

    @lazy_property
    def content_filtering_categories(self):
        return ContentFilteringCategoriesController()

    @lazy_property
    def content_filtering_rules(self):
        return ContentFilteringRulesController()

    @lazy_property
    def dashboard_branding_policies(self):
        return DashboardBrandingPoliciesController()

    @lazy_property
    def devices(self):
        return DevicesController()

    @lazy_property
    def events(self):
        return EventsController()

    @lazy_property
    def firewalled_services(self):
        return FirewalledServicesController()

    @lazy_property
    def floorplans(self):
        return FloorplansController()

    @lazy_property
    def group_policies(self):
        return GroupPoliciesController()

    @lazy_property
    def http_servers(self):
        return HTTPServersController()

    @lazy_property
    def intrusion_settings(self):
        return IntrusionSettingsController()

    @lazy_property
    def licenses(self):
        return LicensesController()

    @lazy_property
    def mr_l_3_firewall(self):
        return MRL3FirewallController()

    @lazy_property
    def mv_sense(self):
        return MVSenseController()

    @lazy_property
    def mx_1_1_nat_rules(self):
        return MX11NATRulesController()

    @lazy_property
    def mx_1_many_nat_rules(self):
        return MX1ManyNATRulesController()

    @lazy_property
    def mx_l_3_firewall(self):
        return MXL3FirewallController()

    @lazy_property
    def mx_l_7_application_categories(self):
        return MXL7ApplicationCategoriesController()

    @lazy_property
    def mx_l_7_firewall(self):
        return MXL7FirewallController()

    @lazy_property
    def mx_vlan_ports(self):
        return MXVLANPortsController()

    @lazy_property
    def mx_vpn_firewall(self):
        return MXVPNFirewallController()

    @lazy_property
    def mx_cellular_firewall(self):
        return MXCellularFirewallController()

    @lazy_property
    def mx_port_forwarding_rules(self):
        return MXPortForwardingRulesController()

    @lazy_property
    def mx_static_routes(self):
        return MXStaticRoutesController()

    @lazy_property
    def mx_warm_spare_settings(self):
        return MXWarmSpareSettingsController()

    @lazy_property
    def malware_settings(self):
        return MalwareSettingsController()

    @lazy_property
    def management_interface_settings(self):
        return ManagementInterfaceSettingsController()

    @lazy_property
    def meraki_auth_users(self):
        return MerakiAuthUsersController()

    @lazy_property
    def named_tag_scope(self):
        return NamedTagScopeController()

    @lazy_property
    def net_flow_settings(self):
        return NetFlowSettingsController()

    @lazy_property
    def networks(self):
        return NetworksController()

    @lazy_property
    def open_api_spec(self):
        return OpenAPISpecController()

    @lazy_property
    def organizations(self):
        return OrganizationsController()

    @lazy_property
    def pii(self):
        return PIIController()

    @lazy_property
    def radio_settings(self):
        return RadioSettingsController()

    @lazy_property
    def saml_roles(self):
        return SAMLRolesController()

    @lazy_property
    def sm(self):
        return SMController()

    @lazy_property
    def snmp_settings(self):
        return SNMPSettingsController()

    @lazy_property
    def ssi_ds(self):
        return SSIDsController()

    @lazy_property
    def security_events(self):
        return SecurityEventsController()

    @lazy_property
    def splash_login_attempts(self):
        return SplashLoginAttemptsController()

    @lazy_property
    def splash_settings(self):
        return SplashSettingsController()

    @lazy_property
    def switch_ac_ls(self):
        return SwitchACLsController()

    @lazy_property
    def switch_port_schedules(self):
        return SwitchPortSchedulesController()

    @lazy_property
    def switch_ports(self):
        return SwitchPortsController()

    @lazy_property
    def switch_profiles(self):
        return SwitchProfilesController()

    @lazy_property
    def switch_settings(self):
        return SwitchSettingsController()

    @lazy_property
    def switch_stacks(self):
        return SwitchStacksController()

    @lazy_property
    def syslog_servers(self):
        return SyslogServersController()

    @lazy_property
    def traffic_analysis_settings(self):
        return TrafficAnalysisSettingsController()

    @lazy_property
    def traffic_shaping(self):
        return TrafficShapingController()

    @lazy_property
    def uplink_settings(self):
        return UplinkSettingsController()

    @lazy_property
    def vla_ns(self):
        return VLANsController()

    @lazy_property
    def webhook_logs(self):
        return WebhookLogsController()

    @lazy_property
    def wireless_health(self):
        return WirelessHealthController()

    @lazy_property
    def wireless_settings(self):
        return WirelessSettingsController()


    def __init__(self,
                 x_cisco_meraki_api_key=None):
        if x_cisco_meraki_api_key is not None:
            Configuration.x_cisco_meraki_api_key = x_cisco_meraki_api_key

