cisco-open / terraform-provider-meraki

A Terraform Provider for Cisco Meraki
Mozilla Public License 2.0
15 stars 6 forks source link

meraki_networks_wireless_ssids - additional fields in the request #121

Open mcparaf opened 1 month ago

mcparaf commented 1 month ago

Prerequisites

Describe the bug When trying to create/update wireless ssids fields such as min_bitrate and band_selection always get passed to the request to the API. This makes the API think that the configuration is wrong and reject the request. Sending the request to the API manually without these fields makes the request succeed.

Expected behavior Fields that are not specified in the terraform data do not get passed to the request to the API and the request data corresponds directly to the data provided in terraform.

Successful request:

curl -XPUT -H "Content-Type: application/json" -H "Authorization: Bearer REDACTED" https://api.meraki.com/api/v1/networks/L_709316941310853998/wireless/ssids/0 -d '{
    "authMode": "8021x-radius",
    "availableOnAllAps": true,
    "defaultVlanId": 666,
    "dot11r": {
        "adaptive": false,
        "enabled": false
    },
    "dot11w": {
        "enabled": true,
        "required": true
    },
    "enabled": true,
    "encryptionMode": "wpa",
    "ipAssignmentMode": "Bridge mode",
    "lanIsolationEnabled": false,
    "mandatoryDhcpEnabled": false,
    "name": "CORP",
    "perClientBandwidthLimitDown": 0,
    "perClientBandwidthLimitUp": 0,
    "perSsidBandwidthLimitDown": 0,
    "perSsidBandwidthLimitUp": 0,
    "radiusAccountingEnabled": true,
    "radiusAccountingInterimInterval": 600,
    "radiusAccountingServers": [
        {
            "host": "10.64.0.230",
            "port": 1813,
            "radsecEnabled": false,
            "secret": "cisco123"
        }
    ],
    "radiusAttributeForGroupPolicies": "Filter-Id",
    "radiusCoaEnabled": true,
    "radiusFallbackEnabled": true,
    "radiusOverride": true,
    "radiusProxyEnabled": false,
    "radiusServerAttemptsLimit": 3,
    "radiusServerTimeout": 5,
    "radiusServers": [
        {
            "host": "100.64.0.230",
            "port": 1812,
            "radsecEnabled": false,
            "secret": "abc123"
        }
    ],
    "radiusTestingEnabled": true,
    "speedBurst": {
        "enabled": false
    },
    "splashPage": "None",
    "useVlanTagging": true,
    "visible": true,
    "wpaEncryptionMode": "WPA3 192-bit Security"
}'
{
  "number": 0,
  "name": "CORP",
  "enabled": true,
  "splashPage": "None",
  "ssidAdminAccessible": false,
  "authMode": "8021x-radius",
  "dot11w": {
    "enabled": true,
    "required": true
  },
  "dot11r": {
    "enabled": false,
    "adaptive": false
  },
  "encryptionMode": "wpa-eap",
  "wpaEncryptionMode": "WPA3 192-bit Security",
  "radiusServers": [
    {
      "host": "100.64.0.230",
      "port": 1812,
      "id": "709316941310853847",
      "radsecEnabled": false,
      "openRoamingCertificateId": null,
      "caCertificate": null
    }
  ],
  "radiusAccountingEnabled": true,
  "radiusAccountingServers": [
    {
      "host": "10.64.0.230",
      "port": 1813,
      "id": "709316941310853848",
      "radsecEnabled": false,
      "openRoamingCertificateId": null,
      "caCertificate": null
    }
  ],
  "radiusTestingEnabled": true,
  "radiusServerTimeout": 5,
  "radiusServerAttemptsLimit": 3,
  "radiusFallbackEnabled": true,
  "radiusAccountingInterimInterval": 600,
  "radiusProxyEnabled": false,
  "radiusCoaEnabled": true,
  "radiusCalledStationId": "$NODE_MAC$:$VAP_NAME$",
  "radiusAuthenticationNasId": "$NODE_MAC$:$VAP_NUM$",
  "radiusAttributeForGroupPolicies": "Filter-Id",
  "ipAssignmentMode": "Bridge mode",
  "useVlanTagging": true,
  "defaultVlanId": 666,
  "radiusOverride": true,
  "minBitrate": 11,
  "bandSelection": "Dual band operation",
  "perClientBandwidthLimitUp": 0,
  "perClientBandwidthLimitDown": 0,
  "perSsidBandwidthLimitUp": 0,
  "perSsidBandwidthLimitDown": 0,
  "mandatoryDhcpEnabled": false,
  "lanIsolationEnabled": false,
  "visible": true,
  "availableOnAllAps": true,
  "availabilityTags": [],
  "speedBurst": {
    "enabled": false
  }
}

Environment (please complete the following information):

fmunozmiranda commented 1 month ago

@mcparaf please try it with new version and update us.

mcparaf commented 1 month ago

The create operation now succeeds but the update operation still has the same problem:

2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: ==============================================================================
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: ~~~ REQUEST ~~~
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: PUT  /api/v1/networks/L_709316941310853998/wireless/ssids/0  HTTP/1.1
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: HOST   : api.meraki.com
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: HEADERS:
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    Accept: application/json
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    Authorization: Bearer ****b91c9
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    Content-Type: application/json
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    User-Agent: go-meraki/1.44.1 MerakiTerraform/1.47.0 Cisco
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: BODY   :
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: {
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "authMode": "8021x-radius",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "availableOnAllAps": true,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "bandSelection": "Dual band operation",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "defaultVlanId": 666,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "dot11r": {
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "adaptive": false,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "enabled": false
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    },
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "dot11w": {
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "enabled": true,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "required": true
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    },
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "enabled": true,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "encryptionMode": "wpa",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "ipAssignmentMode": "Bridge mode",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "lanIsolationEnabled": false,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "mandatoryDhcpEnabled": false,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "minBitrate": 11,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "name": "CORP",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "perClientBandwidthLimitDown": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "perClientBandwidthLimitUp": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "perSsidBandwidthLimitDown": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "perSsidBandwidthLimitUp": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAccountingEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAccountingInterimInterval": 600,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAccountingServers": [
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       {
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "host": "10.64.0.230",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "port": 1813,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "radsecEnabled": false,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "secret": "cisco123"
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       }
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    ],
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAttributeForGroupPolicies": "Filter-Id",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusCoaEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusFallbackEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusOverride": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusProxyEnabled": false,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusServerAttemptsLimit": 3,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusServerTimeout": 5,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusServers": [
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       {
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "host": "100.64.0.230",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "port": 1812,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "radsecEnabled": false,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "secret": "abc123"
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       }
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    ],
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusTestingEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "speedBurst": {
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       "enabled": false
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    },
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "splashPage": "None",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "useVlanTagging": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "visible": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "wpaEncryptionMode": "WPA3 192-bit Security"
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: }
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: ------------------------------------------------------------------------------
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: ~~~ RESPONSE ~~~
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: STATUS       : 400 Bad Request
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: PROTO        : HTTP/2.0
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: RECEIVED AT  : 2024-08-08T11:47:59.87882+02:00
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: TIME DURATION: 399.298917ms
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: HEADERS      :
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    Cache-Control: no-cache, no-store, max-age=0, must-revalidate
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    Content-Type: application/json; charset=utf-8
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    Date: Thu, 08 Aug 2024 09:47:59 GMT
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    Expires: Fri, 01 Jan 1990 00:00:00 GMT
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    Pragma: no-cache
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    X-Content-Type-Options: nosniff
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    X-Frame-Options: sameorigin
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    X-Request-Id: 156c47f4fdcedc189ac6b374c12e8f24
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    X-Robots-Tag: none
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    X-Runtime: 0.199708
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    X-Xss-Protection: 1; mode=block
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: BODY         :
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: {
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    "errors": [
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:       "Five ghz valid auto channels Please select a 5-lo channel"
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    ]
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: }
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: ==============================================================================

Please note that the minBitrate and bandSelection fields are still present in the request.

obrigg commented 1 month ago

Thank you. This is strange... I can see the Terraform API calls on our backend and the failed PUT request. However, I am not able to see the successful cURL PUT request.

  1. Can you run the cURL request again, and confirm that you receive a successful response?
  2. Can you kindly share the TF execution plan file so we can reproduce the issue?
mcparaf commented 3 weeks ago

Here are logs from the provider:

2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ~~~ REQUEST ~~~
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: PUT  /api/v1/networks/L_709316941310853998/wireless/ssids/0  HTTP/1.1
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: HOST   : api.meraki.com
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: HEADERS:
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Accept: application/json
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Authorization: Bearer ****b91c9
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Content-Type: application/json
2024-08-19T14:03:34.877+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  User-Agent: go-meraki/1.44.1 MerakiTerraform/1.47.0 Cisco
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: BODY   :
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: {
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "authMode": "8021x-radius",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "availableOnAllAps": true,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "bandSelection": "Dual band operation",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "defaultVlanId": 666,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "dot11r": {
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "adaptive": false,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "enabled": false
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    },
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "dot11w": {
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "enabled": true,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "required": true
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    },
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "enabled": true,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "encryptionMode": "wpa",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "ipAssignmentMode": "Bridge mode",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "lanIsolationEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "mandatoryDhcpEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "minBitrate": 11,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "name": "CORP",
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perClientBandwidthLimitDown": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perClientBandwidthLimitUp": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perSsidBandwidthLimitDown": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perSsidBandwidthLimitUp": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAccountingEnabled": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAccountingInterimInterval": 600,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAccountingServers": [
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       {
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "host": "10.64.0.230",
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "port": 1813,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "radsecEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "secret": "cisco123"
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       }
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    ],
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAttributeForGroupPolicies": "Filter-Id",
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusCoaEnabled": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusFallbackEnabled": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusOverride": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusProxyEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusServerAttemptsLimit": 3,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusServerTimeout": 5,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusServers": [
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       {
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "host": "100.64.0.230",
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "port": 1812,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "radsecEnabled": false,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "secret": "abc123"
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       }
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    ],
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusTestingEnabled": true,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "speedBurst": {
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "enabled": false
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    },
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "splashPage": "None",
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "useVlanTagging": true,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "visible": true,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "wpaEncryptionMode": "WPA3 192-bit Security"
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: }
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ------------------------------------------------------------------------------
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ~~~ RESPONSE ~~~
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: STATUS       : 400 Bad Request
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: PROTO        : HTTP/2.0
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: RECEIVED AT  : 2024-08-19T14:03:34.873664+02:00
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: TIME DURATION: 384.590375ms
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: HEADERS      :
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Cache-Control: no-cache, no-store, max-age=0, must-revalidate
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Content-Type: application/json; charset=utf-8
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Date: Mon, 19 Aug 2024 12:03:34 GMT
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Expires: Fri, 01 Jan 1990 00:00:00 GMT
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Pragma: no-cache
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  X-Content-Type-Options: nosniff
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  X-Frame-Options: sameorigin
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  X-Request-Id: c3301cc40a5aeed5e1c3c05f507861e6
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  X-Robots-Tag: none
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  X-Runtime: 0.235360
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:  X-Xss-Protection: 1; mode=block
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: BODY         :
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: {
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "errors": [
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "Five ghz valid auto channels Please select a 5-lo channel"
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    ]
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: }
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ==============================================================================

Here is the curl request that mirrors the request sent by the provider (with the same error result):

curl -XPUT -H "Content-Type: application/json" -H "Authorization: Bearer REDACTED" https://api.meraki.com/api/v1/networks/L_709316941310853998/wireless/ssids/0 -d '{
   "authMode": "8021x-radius",
   "availableOnAllAps": true,
   "bandSelection": "Dual band operation",
   "defaultVlanId": 666,
   "dot11r": {
      "adaptive": false,
      "enabled": false
   },
   "dot11w": {
      "enabled": true,
      "required": true
   },
   "enabled": true,
   "encryptionMode": "wpa",
   "ipAssignmentMode": "Bridge mode",
   "lanIsolationEnabled": false,
   "mandatoryDhcpEnabled": false,
   "minBitrate": 11,
   "name": "CORP",
   "perClientBandwidthLimitDown": 0,
   "perClientBandwidthLimitUp": 0,
   "perSsidBandwidthLimitDown": 0,
   "perSsidBandwidthLimitUp": 0,
   "radiusAccountingEnabled": true,
   "radiusAccountingInterimInterval": 600,
   "radiusAccountingServers": [
      {
         "host": "10.64.0.230",
         "port": 1813,
         "radsecEnabled": false,
         "secret": "cisco123"
      }
   ],
   "radiusAttributeForGroupPolicies": "Filter-Id",
   "radiusCoaEnabled": true,
   "radiusFallbackEnabled": true,
   "radiusOverride": true,
   "radiusProxyEnabled": false,
   "radiusServerAttemptsLimit": 3,
   "radiusServerTimeout": 5,
   "radiusServers": [
      {
         "host": "100.64.0.230",
         "port": 1812,
         "radsecEnabled": false,
         "secret": "abc123"
      }
   ],
   "radiusTestingEnabled": true,
   "speedBurst": {
      "enabled": false
   },
   "splashPage": "None",
   "useVlanTagging": true,
   "visible": true,
   "wpaEncryptionMode": "WPA3 192-bit Security"
}'

And here is a fixed curl request that works. The difference between the fixed one and the broken one is that the fields "minBitrate" and "bandSelection" are absent, as specified by the Terraform configuration:

curl -XPUT -H "Content-Type: application/json" -H "Authorization: Bearer REDACTED" https://api.meraki.com/api/v1/networks/L_709316941310853998/wireless/ssids/0 -d '{
   "authMode": "8021x-radius",
   "availableOnAllAps": true,
   "defaultVlanId": 666,
   "dot11r": {
      "adaptive": false,
      "enabled": false
   },
   "dot11w": {
      "enabled": true,
      "required": true
   },
   "enabled": true,
   "encryptionMode": "wpa",
   "ipAssignmentMode": "Bridge mode",
   "lanIsolationEnabled": false,
   "mandatoryDhcpEnabled": false,
   "name": "CORP",
   "perClientBandwidthLimitDown": 0,
   "perClientBandwidthLimitUp": 0,
   "perSsidBandwidthLimitDown": 0,
   "perSsidBandwidthLimitUp": 0,
   "radiusAccountingEnabled": true,
   "radiusAccountingInterimInterval": 600,
   "radiusAccountingServers": [
      {
         "host": "10.64.0.230",
         "port": 1813,
         "radsecEnabled": false,
         "secret": "cisco123"
      }
   ],
   "radiusAttributeForGroupPolicies": "Filter-Id",
   "radiusCoaEnabled": true,
   "radiusFallbackEnabled": true,
   "radiusOverride": true,
   "radiusProxyEnabled": false,
   "radiusServerAttemptsLimit": 3,
   "radiusServerTimeout": 5,
   "radiusServers": [
      {
         "host": "100.64.0.230",
         "port": 1812,
         "radsecEnabled": false,
         "secret": "abc123"
      }
   ],
   "radiusTestingEnabled": true,
   "speedBurst": {
      "enabled": false
   },
   "splashPage": "None",
   "useVlanTagging": true,
   "visible": true,
   "wpaEncryptionMode": "WPA3 192-bit Security"
}'

Please note that the create operation works well, it is only the update operation that fails. The fix has to be applied across all operations. The terraform plan:

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # module.meraki.meraki_networks_switch_access_policies.net_switch_access_policies["0"] will be updated in-place
  ~ resource "meraki_networks_switch_access_policies" "net_switch_access_policies" {
      ~ guest_port_bouncing                = true -> false
        name                               = "Test Policy"
      ~ radius                             = {
          ~ critical_auth       = {
              + data_vlan_id        = (known after apply)
                # (1 unchanged attribute hidden)
            }
          + failed_auth_vlan_id = (known after apply)
        }
        # (17 unchanged attributes hidden)
    }

  # module.meraki.meraki_networks_switch_link_aggregations.net_switch_link_aggregations["0"] will be created
  + resource "meraki_networks_switch_link_aggregations" "net_switch_link_aggregations" {
      + id                   = (known after apply)
      + link_aggregation_id  = (known after apply)
      + network_id           = "L_709316941310853998"
      + switch_ports         = [
          + {
              + port_id = "7"
              + serial  = "Q5JC-C2Z2-PHZU"
            },
          + {
              + port_id = "8"
              + serial  = "Q5JC-C2Z2-PHZU"
            },
        ]
      + switch_profile_ports = (known after apply)
    }

  # module.meraki.meraki_networks_switch_routing_ospf.net_switch_routing_ospf["0"] will be updated in-place
  ~ resource "meraki_networks_switch_routing_ospf" "net_switch_routing_ospf" {
      ~ v3                         = {
          ~ enabled                = true -> false
            # (3 unchanged attributes hidden)
        }
        # (7 unchanged attributes hidden)
    }

  # module.meraki.meraki_networks_wireless_ssids.net_wireless_ssids["0"] will be updated in-place
  ~ resource "meraki_networks_wireless_ssids" "net_wireless_ssids" {
      ~ encryption_mode                     = "wpa-eap" -> "wpa"
        name                                = "CORP"
        # (41 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_login_security.login_security["1576797"] will be updated in-place
  ~ resource "meraki_organizations_login_security" "login_security" {
      + login_ip_ranges             = []
        # (13 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_login_security.login_security["1576869"] will be updated in-place
  ~ resource "meraki_organizations_login_security" "login_security" {
      + login_ip_ranges             = []
        # (13 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_login_security.login_security["709316941310853137"] will be updated in-place
  ~ resource "meraki_organizations_login_security" "login_security" {
      + login_ip_ranges             = []
        # (13 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_snmp.snmp["1576797"] will be updated in-place
  ~ resource "meraki_organizations_snmp" "snmp" {
      + peer_ips            = []
        # (11 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_snmp.snmp["1576869"] will be updated in-place
  ~ resource "meraki_organizations_snmp" "snmp" {
      + peer_ips            = []
        # (11 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_snmp.snmp["709316941310853137"] will be updated in-place
  ~ resource "meraki_organizations_snmp" "snmp" {
      + peer_ips            = []
        # (11 unchanged attributes hidden)
    }

This, however, does not result from any changes introduced in my terraform or yaml files. These changes are simply introduced every time. In the case of wireless SSID 0 the encryption mode is being "changed", I suspect that there is an inconsistency somewhere.