#!/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"""
author: Francisco Munoz (@fmunoz)
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
    .

    '
extends_documentation_fragment:
  - cisco.meraki.module_info
module: networks_appliance_traffic_shaping_uplink_bandwidth_info
notes:
  - SDK Method used are appliance.Appliance.get_network_appliance_traffic_shaping_uplink_bandwidth,
  - Paths used are get /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth,
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:
  - description: Complete reference of the getNetworkApplianceTrafficShapingUplinkBandwidth
      API.
    link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping-uplink-bandwidth
    name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShapingUplinkBandwidth
short_description: Information module for networks _appliance _traffic _shaping _uplink
  _bandwidth
version_added: 2.16.0
"""

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_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: >
    {
      "cellular": {
        "limitDown": 0,
        "limitUp": 0
      },
      "wan1": {
        "limitDown": 0,
        "limitUp": 0
      },
      "wan2": {
        "limitDown": 0,
        "limitUp": 0
      }
    }
"""
