RUCKUS Cloud Required Changes and Migrating to RUCKUS One API's

RUCKUS Cloud Required Changes

The existing RUCKUS Cloud REST APIs have some changes related to the migration to RUCKUS One:

Migration Overview

The RUCKUS One REST APIs have some substantive changes:

RUCKUS Cloud API Breaking Changes

URL Method Breaking changes and remediation
/api/tenant/:tenantId PUT Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET/api/tenant/:tenantId - GET the updated tenant details
/api/tenant/:tenantId/notification-recipient POST Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/notification-recipient - Get the added notification recipient
/api/tenant/:tenantId/notification-recipient DELETE Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId} 
/api/tenant/:tenantId/notification-recipient/:notificationRecipientId PUT Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/notification-recipient/:notificationRecipientId - Get the updated notification values
/api/tenant/:tenantId/notification-recipient/:notificationRecipientId DELETE Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId} 
/api/tenant/:tenantId/delegation POST Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/delegation - Get the added delegation values
/api/tenant/:tenantId/delegation/:delegationId PUT Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/delegation/:delegationId - Get the updated delegation value 
/api/tenant/:tenantId/delegation/:delegationId DELETE Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId} 
/api/tenant/:tenantId/delegation/support POST Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/delegation/ - Get the created delegations
/api/tenant/:tenantId/admin POST Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/admin - Get the newly added admin
/api/tenant/:tenantId/admin PUT Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId}
3. GET /api/tenant/:tenantId/admin - Get the updated  admin
/api/tenant/:tenantId/admin DELETE Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId} 
/api/tenant/:tenantId/admin/{adminId} DELETE Async Response with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{tenantId}/activity/{requestId} 
/api/mspservice/tenant/{mspTenantId}/mspecaccounts POST Changes:
1. Request payload change.
2. Async with Response code 202 with no "tenant_id" in the Response body.
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET /api/mspservice/tenant/{mspTenantId}/mspecaccounts - Gives the list of mspecaccounts, and will include the new account that was created.
4. Look for the newly created tenant in the list. As you are aware, the email ID is unique and can be used for filtering.

Request Payload change:
{
    "tenant_type": "MSP_EC",
    "name": "testCustomer",
    "street_address": "350 W Java Dr, Sunnyvale, CA 94089, USA",
    "service_effective_date": "2023-03-31 02:17:08Z",
    "service_expiration_date": "2023-04-30 02:16:20Z",
    "admin_email": "testCustomer@mail.com",
    "admin_firstname": "test",
    "admin_lastname": "Customer",
    "admin_role": "PRIME_ADMIN",
    "admin_delegations": [
        {
            "msp_admin_id": "747ca061c20f4c96b0e549567e265474",
            "msp_admin_role": "PRIME_ADMIN"
        }
    ],
    "licenses": {
        "assignments": [
            {
                "quantity": 1,
                "action": "ADD",
                "isTrial": false,
                "deviceType": "MSP_WIFI"
            },
            {
                "quantity": 1,
                "action": "ADD",
                "isTrial": false,
                "deviceType": "MSP_SWITCH"
            }
        ]
    }
}

/api/mspservice/tenant/{mspEcTenantId} DELETE Async and Response code 202
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspEcTenantId} - Does not give any data
/api/mspservice/tenant/{mspEcTenantId} PUT Async and Response code 202
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspEcTenantId} - Returns the udpated data
/api/mspservice/tenant/{mspEcTenantId}/deactivation POST
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspEcTenantId} - Returns the udpated data
/api/mspservice/tenant/{mspEcTenantId}/reactivation POST
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspEcTenantId} - Returns the udpated data
/api/mspservice/tenant/{mspTenantId}/msplabel POST Async and Response code 202
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspTenantId}/msplabel - Returns the new created msplabel data
/api/mspservice/tenant/{mspTenantId}/msplabel PUT Async and Response code 202
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspTenantId}/msplabel - Returns the updated msplabel data
/api/mspservice/tenant/{mspEcTenantId}/delegatedmspadmins PUT Async and Response code 202
Remedy Steps:
1. Read the "requestId" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/{mspEcTenantId}/delegatedmspadmins - Returns the delegatedmspadmins list
/api/mspservice/tenant/{mspEcTenantId}/delegation/assignedmspadmins PUT Async and Response code 202
Remedy Steps:
1. Read the ""requestId"" from the response 
2. Poll the activity service with the requestId and wait for SUCCESS using GET /api/tenant/{mspTenantId}/activity/{requestId}
3. GET
/api/mspservice/tenant/assign/{mspEcDelegatedToId} - Returns the delegatedmspadmins list"
/api/switch/tenant/{tenantId}/switch/{serialNumber}/dhcpServer POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/dhcpServer PUT Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/dhcpServer/{dhcpServerId}erverId} DELETE Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/dhcpServers DELETE Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/dhcpServer/query POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/dhcpServer/state POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/reboot POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/upgrade POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/switch/{serialNumber}/sync POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/aclUnion/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/acls/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/vlanUnion/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/vlans/switch/{serialNumber} POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/vlans/switch/{serialNumber}/query GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/vePort/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/vePorts/switch/{serialNumber} POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/lag/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/lags/switch/{serialNumber} POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/configBackup/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/configBackup/switch/{serialNumber} POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/stack/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/vlanVePort/{venueId}/switch/{serialNumber}er} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/port/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/port/switch/{serialNumber} PUT Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/port/switch/{serialNumber}/ports POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/port/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/port/switches/ports POST Use Mac Address to replace the serialNumber in request payload
/api/switch/tenant/{tenantId}/port/switches PUT Use Mac Address to replace the serialNumber in request payload
/api/switch/tenant/{tenantId}/port/switch/{serialNumber}/portId/{unitNum}/{slotNum}/{portNum} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/staticRoute/switch/{serialNumber} GET Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/staticRoute/switch/{serialNumber} POST Use Mac Address to replace the serialNumber
/api/switch/tenant/{tenantId}/cli-template POST Use Mac Address to replace the serialNumber in request payload
/api/switch/tenant/{tenantId}/cli-template PUT Use Mac Address to replace the serialNumber in request payload
/api/switch/tenant/{tenantId}/switches/{id}/configurationHistory/detail/query POST Use Mac Address as id
/api/switch/tenant/{tenantId}/switches/{id}/configurationHistory/detail/{transactionId} POST Use Mac Address as id
/api/tenant/{tenantId}/wifi/guest-user POST Impact the id (UUID format change) for API Response
original format: c34f27f384554e849f144225b5defa09
New format: c34f27f3-8455-4e84-9f14-4225b5defa09 (UUID Standard)
https://en.wikipedia.org/wiki/Universally_unique_identifier
/api/tenant/{tenantId}/wifi/guest-user/{guestUserId}/regenerate POST Impact the id (UUID format change) for API Response
/api/tenant/{tenantId}/wifi/guest-user/{guestUserId} GET Impact the id (UUID format change) for API Response
/api/tenant/{tenantId}/wifi/guest-user GET Impact the id (UUID format change) for API Response
/api/tenant/{tenantId}/wifi/guest-user/import POST Impact the id (UUID format change) for API Response