#!/usr/bin/python
# -*- coding: utf-8 -*-

# Copyright (c) 2021, Cisco Systems
# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)

DOCUMENTATION = r"""
module: networks_appliance_traffic_shaping_uplink_bandwidth_info
short_description: Information module for networks _appliance _trafficshaping _uplinkbandwidth
description:
  - Information module for Networks Appliance Trafficshaping Uplinkbandwidth Info.
  - Get all networks _appliance _trafficshaping _uplinkbandwidth.
  - >
    Returns the uplink bandwidth limits for your MX network. This may not reflect
    the affected device's hardware capabilities. For more information on your device's
    hardware capabilities, please consult our MX Family Datasheet - https //meraki.cisco.com/product-collateral/mx-family-datasheet/?file
    .
version_added: '1.0.0'
extends_documentation_fragment:
  - cisco.meraki.module_info
author: Francisco Munoz (@fmunoz)
options:
  headers:
    description: Additional headers.
    type: dict
  networkId:
    description:
      - Information module for Networks Appliance Trafficshaping Uplinkbandwidth Info.
      - NetworkId path parameter. Network ID.
    type: str
requirements:
  - meraki >= 2.4.9
  - python >= 3.5
seealso:
  - name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShapingUplinkBandwidth
    description: Complete reference of the getNetworkApplianceTrafficShapingUplinkBandwidth
      API.
    link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping-uplink-bandwidth
notes:
  - SDK Method used are
    appliance.Appliance.get_network_appliance_traffic_shaping_uplink_bandwidth,
  - Paths used are
    get /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth,
"""

EXAMPLES = r"""
- name: Get all networks _appliance _trafficshaping _uplinkbandwidth
  cisco.meraki.networks_appliance_traffic_shaping_uplink_bandwidth_info:
    meraki_api_key: "{{ meraki_api_key }}"
    meraki_base_url: "{{ meraki_base_url }}"
    meraki_single_request_timeout: "{{ meraki_single_request_timeout }}"
    meraki_certificate_path: "{{ meraki_certificate_path }}"
    meraki_requests_proxy: "{{ meraki_requests_proxy }}"
    meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}"
    meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}"
    meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}"
    meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}"
    meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}"
    meraki_maximum_retries: "{{ meraki_maximum_retries }}"
    meraki_output_log: "{{ meraki_output_log }}"
    meraki_log_file_prefix: "{{ meraki_log_file_prefix }}"
    meraki_log_path: "{{ meraki_log_path }}"
    meraki_print_console: "{{ meraki_print_console }}"
    meraki_suppress_logging: "{{ meraki_suppress_logging }}"
    meraki_simulate: "{{ meraki_simulate }}"
    meraki_be_geo_id: "{{ meraki_be_geo_id }}"
    meraki_caller: "{{ meraki_caller }}"
    meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}"
    meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}"
    networkId: string
  register: result
"""
RETURN = r"""
meraki_response:
  description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
  returned: always
  type: dict
  sample: >
    {
      "wan1": {
        "limitUp": 0,
        "limitDown": 0
      },
      "wan2": {
        "limitUp": 0,
        "limitDown": 0
      },
      "cellular": {
        "limitUp": 0,
        "limitDown": 0
      }
    }
"""
