#!/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 _traffic _shaping _uplink
  _bandwidth
description:
  - Get all networks _appliance _traffic _shaping _uplink _bandwidth. - > 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:
      - 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 _traffic _shaping _uplink _bandwidth
  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
      }
    }
"""
