#!/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_wireless_rf_profiles
short_description: Resource module for networks _wireless _rfprofiles
description:
- Manage operations create, update and delete of the resource networks _wireless _rfprofiles.
- Creates new RF profile for this network.
- Delete a RF Profile.
- Updates specified RF profile for this network.
version_added: '2.16.0'
extends_documentation_fragment:
  - cisco.meraki.module
author: Francisco Munoz (@fmunoz)
options:
  apBandSettings:
    description: Settings that will be enabled if selectionType is set to 'ap'.
    suboptions:
      bandOperationMode:
        description: Choice between 'dual', '2.4ghz' or '5ghz'. Defaults to dual.
        type: str
      bandSteeringEnabled:
        description: Steers client to most open band. Can be either true or false. Defaults
          to true.
        type: bool
    type: dict
  bandSelectionType:
    description: Band selection can be set to either 'ssid' or 'ap'. This param is required
      on creation.
    type: str
  clientBalancingEnabled:
    description: Steers client to best available access point. Can be either true or
      false. Defaults to true.
    type: bool
  fiveGhzSettings:
    description: Settings related to 5Ghz band.
    suboptions:
      channelWidth:
        description: Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20',
          '40' or '80'. Defaults to auto.
        type: str
      maxPower:
        description: Sets max power (dBm) of 5Ghz band. Can be integer between 2 and
          30. Defaults to 30.
        type: int
      minBitrate:
        description: Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12',
          '18', '24', '36', '48' or '54'. Defaults to 12.
        type: int
      minPower:
        description: Sets min power (dBm) of 5Ghz band. Can be integer between 2 and
          30. Defaults to 8.
        type: int
      rxsop:
        description: The RX-SOP level controls the sensitivity of the radio. It is strongly
          recommended to use RX-SOP only after consulting a wireless expert. RX-SOP
          can be configured in the range of -65 to -95 (dBm). A value of null will reset
          this to the default.
        type: int
      validAutoChannels:
        description: Sets valid auto channels for 5Ghz band. Can be one of '36', '40',
          '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120',
          '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults
          to 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128,
          132, 136, 140, 144, 149, 153, 157, 161, 165.
        elements: int
        type: list
    type: dict
  minBitrateType:
    description: Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to
      band.
    type: str
  name:
    description: The name of the new profile. Must be unique. This param is required
      on creation.
    type: str
  networkId:
    description: NetworkId path parameter. Network ID.
    type: str
  perSsidSettings:
    description: Per-SSID radio settings by number.
    suboptions:
      '0':
        description: Settings for SSID 0.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '1':
        description: Settings for SSID 1.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '10':
        description: Settings for SSID 10.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '11':
        description: Settings for SSID 11.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '12':
        description: Settings for SSID 12.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '13':
        description: Settings for SSID 13.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '14':
        description: Settings for SSID 14.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '2':
        description: Settings for SSID 2.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '3':
        description: Settings for SSID 3.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '4':
        description: Settings for SSID 4.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '5':
        description: Settings for SSID 5.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '6':
        description: Settings for SSID 6.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '7':
        description: Settings for SSID 7.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '8':
        description: Settings for SSID 8.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
      '9':
        description: Settings for SSID 9.
        suboptions:
          bandOperationMode:
            description: Choice between 'dual', '2.4ghz' or '5ghz'.
            type: str
          bandSteeringEnabled:
            description: Steers client to most open band between 2.4 GHz and 5 GHz.
              Can be either true or false.
            type: bool
          minBitrate:
            description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
              '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
            type: float
        type: dict
    type: dict
  rfProfileId:
    description: RfProfileId path parameter. Rf profile ID.
    type: str
  sixGhzSettings:
    description: Settings related to 6Ghz band.
    suboptions:
      channelWidth:
        description: Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20',
          '40', '80' or '160'. Defaults to 0.
        type: str
      maxPower:
        description: Sets max power (dBm) of 6Ghz band. Can be integer between 2 and
          30. Defaults to 30.
        type: int
      minBitrate:
        description: Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12',
          '18', '24', '36', '48' or '54'. Defaults to 12.
        type: int
      minPower:
        description: Sets min power (dBm) of 6Ghz band. Can be integer between 2 and
          30. Defaults to 8.
        type: int
      rxsop:
        description: The RX-SOP level controls the sensitivity of the radio. It is strongly
          recommended to use RX-SOP only after consulting a wireless expert. RX-SOP
          can be configured in the range of -65 to -95 (dBm). A value of null will reset
          this to the default.
        type: int
      validAutoChannels:
        description: Sets valid auto channels for 6Ghz band. Can be one of '1', '5',
          '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57',
          '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105',
          '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149',
          '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193',
          '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'.Defaults
          to 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73,
          77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137,
          141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197,
          201, 205, 209, 213, 217, 221, 225, 229, 233.
        elements: int
        type: list
    type: dict
  transmission:
    description: Settings related to radio transmission.
    suboptions:
      enabled:
        description: Toggle for radio transmission. When false, radios will not transmit
          at all.
        type: bool
    type: dict
  twoFourGhzSettings:
    description: Settings related to 2.4Ghz band.
    suboptions:
      axEnabled:
        description: Determines whether ax radio on 2.4Ghz band is on or off. Can be
          either true or false. If false, we highly recommend disabling band steering.
          Defaults to true.
        type: bool
      maxPower:
        description: Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and
          30. Defaults to 30.
        type: int
      minBitrate:
        description: Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2',
          '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11.
        type: float
      minPower:
        description: Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and
          30. Defaults to 5.
        type: int
      rxsop:
        description: The RX-SOP level controls the sensitivity of the radio. It is strongly
          recommended to use RX-SOP only after consulting a wireless expert. RX-SOP
          can be configured in the range of -65 to -95 (dBm). A value of null will reset
          this to the default.
        type: int
      validAutoChannels:
        description: Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6'
          or '11'. Defaults to 1, 6, 11.
        elements: int
        type: list
    type: dict
requirements:
- meraki >= 2.4.9
- python >= 3.5
seealso:
- name: Cisco Meraki documentation for wireless createNetworkWirelessRfProfile
  description: Complete reference of the createNetworkWirelessRfProfile API.
  link: https://developer.cisco.com/meraki/api-v1/#!create-network-wireless-rf-profile
- name: Cisco Meraki documentation for wireless deleteNetworkWirelessRfProfile
  description: Complete reference of the deleteNetworkWirelessRfProfile API.
  link: https://developer.cisco.com/meraki/api-v1/#!delete-network-wireless-rf-profile
- name: Cisco Meraki documentation for wireless updateNetworkWirelessRfProfile
  description: Complete reference of the updateNetworkWirelessRfProfile API.
  link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-rf-profile
notes:
  - SDK Method used are
    wireless.Wireless.create_network_wireless_rf_profile,
    wireless.Wireless.delete_network_wireless_rf_profile,
    wireless.Wireless.update_network_wireless_rf_profile,

  - Paths used are
    post /networks/{networkId}/wireless/rfProfiles,
    delete /networks/{networkId}/wireless/rfProfiles/{rfProfileId},
    put /networks/{networkId}/wireless/rfProfiles/{rfProfileId},
"""

EXAMPLES = r"""
- name: Create
  cisco.meraki.networks_wireless_rf_profiles:
    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}}"
    state: present
    apBandSettings:
      bandOperationMode: dual
      bandSteeringEnabled: true
    bandSelectionType: ap
    clientBalancingEnabled: true
    fiveGhzSettings:
      channelWidth: auto
      maxPower: 30
      minBitrate: 12
      minPower: 8
      rxsop: -95
      validAutoChannels:
      - 36
      - 40
      - 44
      - 48
      - 52
      - 56
      - 60
      - 64
      - 100
      - 104
      - 108
      - 112
      - 116
      - 120
      - 124
      - 128
      - 132
      - 136
      - 140
      - 144
      - 149
      - 153
      - 157
      - 161
      - 165
    minBitrateType: band
    name: Main Office
    networkId: string
    perSsidSettings:
      '0':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '1':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '10':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '11':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '12':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '13':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '14':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '2':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '3':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '4':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '5':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '6':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '7':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '8':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '9':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
    sixGhzSettings:
      channelWidth: auto
      maxPower: 30
      minBitrate: 12
      minPower: 8
      rxsop: -95
      validAutoChannels:
      - 1
      - 5
      - 9
      - 13
      - 17
      - 21
      - 25
      - 29
      - 33
      - 37
      - 41
      - 45
      - 49
      - 53
      - 57
      - 61
      - 65
      - 69
      - 73
      - 77
      - 81
      - 85
      - 89
      - 93
      - 97
      - 101
      - 105
      - 109
      - 113
      - 117
      - 121
      - 125
      - 129
      - 133
      - 137
      - 141
      - 145
      - 149
      - 153
      - 157
      - 161
      - 165
      - 169
      - 173
      - 177
      - 181
      - 185
      - 189
      - 193
      - 197
      - 201
      - 205
      - 209
      - 213
      - 217
      - 221
      - 225
      - 229
      - 233
    transmission:
      enabled: true
    twoFourGhzSettings:
      axEnabled: true
      maxPower: 30
      minBitrate: 11
      minPower: 5
      rxsop: -95
      validAutoChannels:
      - 1
      - 6
      - 11

- name: Update by id
  cisco.meraki.networks_wireless_rf_profiles:
    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}}"
    state: present
    apBandSettings:
      bandOperationMode: dual
      bandSteeringEnabled: true
    bandSelectionType: ap
    clientBalancingEnabled: true
    fiveGhzSettings:
      channelWidth: auto
      maxPower: 30
      minBitrate: 12
      minPower: 8
      rxsop: -95
      validAutoChannels:
      - 36
      - 40
      - 44
      - 48
      - 52
      - 56
      - 60
      - 64
      - 100
      - 104
      - 108
      - 112
      - 116
      - 120
      - 124
      - 128
      - 132
      - 136
      - 140
      - 144
      - 149
      - 153
      - 157
      - 161
      - 165
    minBitrateType: band
    name: '1234'
    networkId: string
    perSsidSettings:
      '0':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '1':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '10':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '11':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '12':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '13':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '14':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '2':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '3':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '4':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '5':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '6':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '7':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '8':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
      '9':
        bandOperationMode: dual
        bandSteeringEnabled: true
        minBitrate: 11
    rfProfileId: string
    sixGhzSettings:
      channelWidth: auto
      maxPower: 30
      minBitrate: 12
      minPower: 8
      rxsop: -95
      validAutoChannels:
      - 1
      - 5
      - 9
      - 13
      - 17
      - 21
      - 25
      - 29
      - 33
      - 37
      - 41
      - 45
      - 49
      - 53
      - 57
      - 61
      - 65
      - 69
      - 73
      - 77
      - 81
      - 85
      - 89
      - 93
      - 97
      - 101
      - 105
      - 109
      - 113
      - 117
      - 121
      - 125
      - 129
      - 133
      - 137
      - 141
      - 145
      - 149
      - 153
      - 157
      - 161
      - 165
      - 169
      - 173
      - 177
      - 181
      - 185
      - 189
      - 193
      - 197
      - 201
      - 205
      - 209
      - 213
      - 217
      - 221
      - 225
      - 229
      - 233
    transmission:
      enabled: true
    twoFourGhzSettings:
      axEnabled: true
      maxPower: 30
      minBitrate: 11
      minPower: 5
      rxsop: -95
      validAutoChannels:
      - 1
      - 6
      - 11

- name: Delete by id
  cisco.meraki.networks_wireless_rf_profiles:
    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}}"
    state: absent
    networkId: string
    rfProfileId: string

"""
RETURN = r"""
meraki_response:
  description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
  returned: always
  type: dict
  sample: >
    {
      "id": "string",
      "networkId": "string",
      "name": "string",
      "clientBalancingEnabled": true,
      "minBitrateType": "string",
      "bandSelectionType": "string",
      "apBandSettings": {
        "bandOperationMode": "string",
        "bandSteeringEnabled": true
      },
      "twoFourGhzSettings": {
        "maxPower": 0,
        "minPower": 0,
        "minBitrate": 0,
        "validAutoChannels": [
          0
        ],
        "axEnabled": true,
        "rxsop": 0
      },
      "fiveGhzSettings": {
        "maxPower": 0,
        "minPower": 0,
        "minBitrate": 0,
        "validAutoChannels": [
          0
        ],
        "channelWidth": "string",
        "rxsop": 0
      },
      "transmission": {
        "enabled": true
      },
      "perSsidSettings": {
        "0": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "1": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "2": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "3": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "4": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "5": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "6": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "7": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "8": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "9": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "10": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "11": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "12": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "13": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        },
        "14": {
          "name": "string",
          "minBitrate": 0,
          "bandOperationMode": "string",
          "bandSteeringEnabled": true
        }
      }
    }
"""
