<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions xmlns:plink="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap11enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap11env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:soap12env="http://www.w3.org/2003/05/soap-envelope" xmlns:tns="http://www.sonos.com/Services/1.1" xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sonos.com/Services/1.1" name="SonosSoap"><wsdl:types><xs:schema targetNamespace="http://www.sonos.com/Services/1.1" elementFormDefault="qualified"><xs:complexType name="NotLinkedRetryError"/><xs:complexType name="CreateItemResponse"/><xs:complexType name="DeleteContainer"/><xs:complexType name="DeleteItemResponse"/><xs:complexType name="MediaCollection"><xs:sequence><xs:element name="canScroll" type="xs:boolean" minOccurs="0" nillable="true"/><xs:element name="itemType" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="artist" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="title" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="canEnumerate" type="xs:boolean" minOccurs="0" nillable="true"/><xs:element name="albumArtURI" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="artistId" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="canPlay" type="xs:boolean" minOccurs="0" nillable="true"/><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence><xs:attribute name="userContent" type="xs:boolean"/><xs:attribute name="readOnly" type="xs:boolean"/><xs:attribute name="renameable" type="xs:boolean"/></xs:complexType><xs:complexType name="TrackMetadata"><xs:sequence><xs:element name="artist" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="albumArtURI" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="canPlay" type="xs:boolean" minOccurs="0" nillable="true"/><xs:element name="canSkip" type="xs:boolean" minOccurs="0" nillable="true"/><xs:element name="duration" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="artist_id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="MediaMetadata"><xs:sequence><xs:element name="mimeType" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="itemType" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="title" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="trackMetadata" type="tns:TrackMetadata" minOccurs="0" nillable="true"/><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="RemoveFromContainer"/><xs:complexType name="RenameContainer"/><xs:complexType name="ReorderContainer"/><xs:complexType name="ReportAccountAction"/><xs:complexType name="ReportPlayStatus"/><xs:complexType name="ReportStatus"/><xs:complexType name="getLastUpdate"/><xs:complexType name="setPlayedSecondsResponse"/><xs:complexType name="AddToContainer"><xs:sequence><xs:element name="uniqueId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="CreateContainer"><xs:sequence><xs:element name="updateId" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="DeviceAuthToken"><xs:sequence><xs:element name="authToken" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="privateKey" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="DeviceLinkCodeResponse"><xs:sequence><xs:element name="linkDeviceId" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="regUrl" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="showLinkCode" type="xs:boolean" minOccurs="0" nillable="true"/><xs:element name="linkCode" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="LastUpdateResponse"><xs:sequence><xs:element name="catalog" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="favorites" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="LoginToken"><xs:sequence><xs:element name="token" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="key" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="householdId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="MetadataResponse"><xs:sequence><xs:element name="count" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="index" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="mediaCollection" type="tns:MediaCollection" minOccurs="0" maxOccurs="100" nillable="true"/><xs:element name="mediaMetadata" type="tns:MediaMetadata" minOccurs="0" maxOccurs="100" nillable="true"/><xs:element name="total" type="xs:integer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="RelatedBrowse"><xs:sequence><xs:element name="type" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="RelatedText"><xs:sequence><xs:element name="type" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="ReportPlaySeconds"><xs:sequence><xs:element name="interval" type="xs:integer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="addToContainer"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="parentId" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="index" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="updateId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="createContainer"><xs:sequence><xs:element name="containerType" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="title" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="parentId" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="seedId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="createItem"><xs:sequence><xs:element name="favorite" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="createItemResponse"><xs:sequence><xs:element name="createItemResult" type="tns:CreateItemResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="deleteContainer"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="deleteContainerResponse"><xs:sequence><xs:element name="deleteContainerResult" type="tns:DeleteContainer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="deleteItem"><xs:sequence><xs:element name="favorite" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="deleteItemResponse"><xs:sequence><xs:element name="deleteItemResult" type="tns:DeleteItemResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getDeviceAuthToken"><xs:sequence><xs:element name="householdId" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="linkCode" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="linkDeviceId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getDeviceLinkCode"><xs:sequence><xs:element name="householdId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getExtendedMetadata"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getExtendedMetadataText"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="type" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getExtendedMetadataTextResponse"><xs:sequence><xs:element name="getExtendedMetadataTextResult" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getMediaMetadata"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getMediaURI"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getMediaURIResponse"><xs:sequence><xs:element name="getMediaURIResult" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getMetadata"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="index" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="count" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="recursive" type="xs:boolean" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="removeFromContainer"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="indices" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="updateId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="removeFromContainerResponse"><xs:sequence><xs:element name="removeFromContainerResult" type="tns:RemoveFromContainer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="renameContainer"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="title" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="renameContainerResponse"><xs:sequence><xs:element name="renameContainerResult" type="tns:RenameContainer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reorderContainer"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="from" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="to" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="updateId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reorderContainerResponse"><xs:sequence><xs:element name="reorderContainerResult" type="tns:ReorderContainer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportAccountAction"><xs:sequence><xs:element name="type" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportAccountActionResponse"><xs:sequence><xs:element name="reportAccountActionResult" type="tns:ReportAccountAction" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportPlaySeconds"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="seconds" type="xs:integer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportPlayStatus"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="status" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportPlayStatusResponse"><xs:sequence><xs:element name="reportPlayStatusResult" type="tns:ReportPlayStatus" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportStatus"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="errorCode" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="message" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportStatusResponse"><xs:sequence><xs:element name="reportStatusResult" type="tns:ReportStatus" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="search"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="term" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="index" type="xs:integer" minOccurs="0" nillable="true"/><xs:element name="count" type="xs:integer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="setPlayedSeconds"><xs:sequence><xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="seconds" type="xs:integer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="credentials"><xs:sequence><xs:element name="loginToken" type="tns:LoginToken" minOccurs="0" nillable="true"/><xs:element name="deviceProvider" type="xs:string" minOccurs="0" nillable="true"/><xs:element name="deviceId" type="xs:string" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="addToContainerResponse"><xs:sequence><xs:element name="addToContainerResult" type="tns:AddToContainer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="createContainerResponse"><xs:sequence><xs:element name="createContainerResult" type="tns:CreateContainer" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getDeviceAuthTokenResponse"><xs:sequence><xs:element name="getDeviceAuthTokenResult" type="tns:DeviceAuthToken" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getDeviceLinkCodeResponse"><xs:sequence><xs:element name="getDeviceLinkCodeResult" type="tns:DeviceLinkCodeResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getLastUpdateResponse"><xs:sequence><xs:element name="getLastUpdateResult" type="tns:LastUpdateResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getMetadataResponse"><xs:sequence><xs:element name="getMetadataResult" type="tns:MetadataResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="reportPlaySecondsResponse"><xs:sequence><xs:element name="reportPlaySecondsResult" type="tns:ReportPlaySeconds" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="searchResponse"><xs:sequence><xs:element name="searchResult" type="tns:MetadataResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="ExtendedMetadataResponse"><xs:sequence><xs:element name="mediaCollection" type="tns:MediaCollection" minOccurs="0" nillable="true"/><xs:element name="relatedBrowse" type="tns:RelatedBrowse" minOccurs="0" maxOccurs="100" nillable="true"/><xs:element name="mediaMetadata" type="tns:MediaMetadata" minOccurs="0" nillable="true"/><xs:element name="relatedText" type="tns:RelatedText" minOccurs="0" maxOccurs="100" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getMediaMetadataResponse"><xs:sequence><xs:element name="getMediaMetadataResult" type="tns:MediaMetadata" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:complexType name="getExtendedMetadataResponse"><xs:sequence><xs:element name="getExtendedMetadataResult" type="tns:ExtendedMetadataResponse" minOccurs="0" nillable="true"/></xs:sequence></xs:complexType><xs:element name="NotLinkedRetryError" type="tns:NotLinkedRetryError"/><xs:element name="CreateItemResponse" type="tns:CreateItemResponse"/><xs:element name="DeleteContainer" type="tns:DeleteContainer"/><xs:element name="DeleteItemResponse" type="tns:DeleteItemResponse"/><xs:element name="MediaCollection" type="tns:MediaCollection"/><xs:element name="TrackMetadata" type="tns:TrackMetadata"/><xs:element name="MediaMetadata" type="tns:MediaMetadata"/><xs:element name="RemoveFromContainer" type="tns:RemoveFromContainer"/><xs:element name="RenameContainer" type="tns:RenameContainer"/><xs:element name="ReorderContainer" type="tns:ReorderContainer"/><xs:element name="ReportAccountAction" type="tns:ReportAccountAction"/><xs:element name="ReportPlayStatus" type="tns:ReportPlayStatus"/><xs:element name="ReportStatus" type="tns:ReportStatus"/><xs:element name="getLastUpdate" type="tns:getLastUpdate"/><xs:element name="setPlayedSecondsResponse" type="tns:setPlayedSecondsResponse"/><xs:element name="AddToContainer" type="tns:AddToContainer"/><xs:element name="CreateContainer" type="tns:CreateContainer"/><xs:element name="DeviceAuthToken" type="tns:DeviceAuthToken"/><xs:element name="DeviceLinkCodeResponse" type="tns:DeviceLinkCodeResponse"/><xs:element name="LastUpdateResponse" type="tns:LastUpdateResponse"/><xs:element name="LoginToken" type="tns:LoginToken"/><xs:element name="MetadataResponse" type="tns:MetadataResponse"/><xs:element name="RelatedBrowse" type="tns:RelatedBrowse"/><xs:element name="RelatedText" type="tns:RelatedText"/><xs:element name="ReportPlaySeconds" type="tns:ReportPlaySeconds"/><xs:element name="addToContainer" type="tns:addToContainer"/><xs:element name="createContainer" type="tns:createContainer"/><xs:element name="createItem" type="tns:createItem"/><xs:element name="createItemResponse" type="tns:createItemResponse"/><xs:element name="deleteContainer" type="tns:deleteContainer"/><xs:element name="deleteContainerResponse" type="tns:deleteContainerResponse"/><xs:element name="deleteItem" type="tns:deleteItem"/><xs:element name="deleteItemResponse" type="tns:deleteItemResponse"/><xs:element name="getDeviceAuthToken" type="tns:getDeviceAuthToken"/><xs:element name="getDeviceLinkCode" type="tns:getDeviceLinkCode"/><xs:element name="getExtendedMetadata" type="tns:getExtendedMetadata"/><xs:element name="getExtendedMetadataText" type="tns:getExtendedMetadataText"/><xs:element name="getExtendedMetadataTextResponse" type="tns:getExtendedMetadataTextResponse"/><xs:element name="getMediaMetadata" type="tns:getMediaMetadata"/><xs:element name="getMediaURI" type="tns:getMediaURI"/><xs:element name="getMediaURIResponse" type="tns:getMediaURIResponse"/><xs:element name="getMetadata" type="tns:getMetadata"/><xs:element name="removeFromContainer" type="tns:removeFromContainer"/><xs:element name="removeFromContainerResponse" type="tns:removeFromContainerResponse"/><xs:element name="renameContainer" type="tns:renameContainer"/><xs:element name="renameContainerResponse" type="tns:renameContainerResponse"/><xs:element name="reorderContainer" type="tns:reorderContainer"/><xs:element name="reorderContainerResponse" type="tns:reorderContainerResponse"/><xs:element name="reportAccountAction" type="tns:reportAccountAction"/><xs:element name="reportAccountActionResponse" type="tns:reportAccountActionResponse"/><xs:element name="reportPlaySeconds" type="tns:reportPlaySeconds"/><xs:element name="reportPlayStatus" type="tns:reportPlayStatus"/><xs:element name="reportPlayStatusResponse" type="tns:reportPlayStatusResponse"/><xs:element name="reportStatus" type="tns:reportStatus"/><xs:element name="reportStatusResponse" type="tns:reportStatusResponse"/><xs:element name="search" type="tns:search"/><xs:element name="setPlayedSeconds" type="tns:setPlayedSeconds"/><xs:element name="credentials" type="tns:credentials"/><xs:element name="addToContainerResponse" type="tns:addToContainerResponse"/><xs:element name="createContainerResponse" type="tns:createContainerResponse"/><xs:element name="getDeviceAuthTokenResponse" type="tns:getDeviceAuthTokenResponse"/><xs:element name="getDeviceLinkCodeResponse" type="tns:getDeviceLinkCodeResponse"/><xs:element name="getLastUpdateResponse" type="tns:getLastUpdateResponse"/><xs:element name="getMetadataResponse" type="tns:getMetadataResponse"/><xs:element name="reportPlaySecondsResponse" type="tns:reportPlaySecondsResponse"/><xs:element name="searchResponse" type="tns:searchResponse"/><xs:element name="ExtendedMetadataResponse" type="tns:ExtendedMetadataResponse"/><xs:element name="getMediaMetadataResponse" type="tns:getMediaMetadataResponse"/><xs:element name="getExtendedMetadataResponse" type="tns:getExtendedMetadataResponse"/></xs:schema></wsdl:types><wsdl:message name="getDeviceLinkCode"><wsdl:part name="getDeviceLinkCode" element="tns:getDeviceLinkCode"/></wsdl:message><wsdl:message name="getDeviceLinkCodeResponse"><wsdl:part name="getDeviceLinkCodeResponse" element="tns:getDeviceLinkCodeResponse"/></wsdl:message><wsdl:message name="getDeviceAuthToken"><wsdl:part name="getDeviceAuthToken" element="tns:getDeviceAuthToken"/></wsdl:message><wsdl:message name="getDeviceAuthTokenResponse"><wsdl:part name="getDeviceAuthTokenResponse" element="tns:getDeviceAuthTokenResponse"/></wsdl:message><wsdl:message name="NotLinkedRetryError"><wsdl:part name="NotLinkedRetryError" element="tns:NotLinkedRetryError"/></wsdl:message><wsdl:message name="getLastUpdate"><wsdl:part name="getLastUpdate" element="tns:getLastUpdate"/></wsdl:message><wsdl:message name="getLastUpdateResponse"><wsdl:part name="getLastUpdateResponse" element="tns:getLastUpdateResponse"/></wsdl:message><wsdl:message name="credentials"><wsdl:part name="credentials" element="tns:credentials"/></wsdl:message><wsdl:message name="getExtendedMetadata"><wsdl:part name="getExtendedMetadata" element="tns:getExtendedMetadata"/></wsdl:message><wsdl:message name="getExtendedMetadataResponse"><wsdl:part name="getExtendedMetadataResponse" element="tns:getExtendedMetadataResponse"/></wsdl:message><wsdl:message name="getMediaURI"><wsdl:part name="getMediaURI" element="tns:getMediaURI"/></wsdl:message><wsdl:message name="getMediaURIResponse"><wsdl:part name="getMediaURIResponse" element="tns:getMediaURIResponse"/></wsdl:message><wsdl:message name="reportAccountAction"><wsdl:part name="reportAccountAction" element="tns:reportAccountAction"/></wsdl:message><wsdl:message name="reportAccountActionResponse"><wsdl:part name="reportAccountActionResponse" element="tns:reportAccountActionResponse"/></wsdl:message><wsdl:message name="addToContainer"><wsdl:part name="addToContainer" element="tns:addToContainer"/></wsdl:message><wsdl:message name="addToContainerResponse"><wsdl:part name="addToContainerResponse" element="tns:addToContainerResponse"/></wsdl:message><wsdl:message name="getMetadata"><wsdl:part name="getMetadata" element="tns:getMetadata"/></wsdl:message><wsdl:message name="getMetadataResponse"><wsdl:part name="getMetadataResponse" element="tns:getMetadataResponse"/></wsdl:message><wsdl:message name="search"><wsdl:part name="search" element="tns:search"/></wsdl:message><wsdl:message name="searchResponse"><wsdl:part name="searchResponse" element="tns:searchResponse"/></wsdl:message><wsdl:message name="reportPlayStatus"><wsdl:part name="reportPlayStatus" element="tns:reportPlayStatus"/></wsdl:message><wsdl:message name="reportPlayStatusResponse"><wsdl:part name="reportPlayStatusResponse" element="tns:reportPlayStatusResponse"/></wsdl:message><wsdl:message name="getMediaMetadata"><wsdl:part name="getMediaMetadata" element="tns:getMediaMetadata"/></wsdl:message><wsdl:message name="getMediaMetadataResponse"><wsdl:part name="getMediaMetadataResponse" element="tns:getMediaMetadataResponse"/></wsdl:message><wsdl:message name="reorderContainer"><wsdl:part name="reorderContainer" element="tns:reorderContainer"/></wsdl:message><wsdl:message name="reorderContainerResponse"><wsdl:part name="reorderContainerResponse" element="tns:reorderContainerResponse"/></wsdl:message><wsdl:message name="reportStatus"><wsdl:part name="reportStatus" element="tns:reportStatus"/></wsdl:message><wsdl:message name="reportStatusResponse"><wsdl:part name="reportStatusResponse" element="tns:reportStatusResponse"/></wsdl:message><wsdl:message name="setPlayedSeconds"><wsdl:part name="setPlayedSeconds" element="tns:setPlayedSeconds"/></wsdl:message><wsdl:message name="setPlayedSecondsResponse"><wsdl:part name="setPlayedSecondsResponse" element="tns:setPlayedSecondsResponse"/></wsdl:message><wsdl:message name="createItem"><wsdl:part name="createItem" element="tns:createItem"/></wsdl:message><wsdl:message name="createItemResponse"><wsdl:part name="createItemResponse" element="tns:createItemResponse"/></wsdl:message><wsdl:message name="renameContainer"><wsdl:part name="renameContainer" element="tns:renameContainer"/></wsdl:message><wsdl:message name="renameContainerResponse"><wsdl:part name="renameContainerResponse" element="tns:renameContainerResponse"/></wsdl:message><wsdl:message name="getExtendedMetadataText"><wsdl:part name="getExtendedMetadataText" element="tns:getExtendedMetadataText"/></wsdl:message><wsdl:message name="getExtendedMetadataTextResponse"><wsdl:part name="getExtendedMetadataTextResponse" element="tns:getExtendedMetadataTextResponse"/></wsdl:message><wsdl:message name="removeFromContainer"><wsdl:part name="removeFromContainer" element="tns:removeFromContainer"/></wsdl:message><wsdl:message name="removeFromContainerResponse"><wsdl:part name="removeFromContainerResponse" element="tns:removeFromContainerResponse"/></wsdl:message><wsdl:message name="createContainer"><wsdl:part name="createContainer" element="tns:createContainer"/></wsdl:message><wsdl:message name="createContainerResponse"><wsdl:part name="createContainerResponse" element="tns:createContainerResponse"/></wsdl:message><wsdl:message name="reportPlaySeconds"><wsdl:part name="reportPlaySeconds" element="tns:reportPlaySeconds"/></wsdl:message><wsdl:message name="reportPlaySecondsResponse"><wsdl:part name="reportPlaySecondsResponse" element="tns:reportPlaySecondsResponse"/></wsdl:message><wsdl:message name="deleteContainer"><wsdl:part name="deleteContainer" element="tns:deleteContainer"/></wsdl:message><wsdl:message name="deleteContainerResponse"><wsdl:part name="deleteContainerResponse" element="tns:deleteContainerResponse"/></wsdl:message><wsdl:message name="deleteItem"><wsdl:part name="deleteItem" element="tns:deleteItem"/></wsdl:message><wsdl:message name="deleteItemResponse"><wsdl:part name="deleteItemResponse" element="tns:deleteItemResponse"/></wsdl:message><wsdl:service name="AuthenticationService"><wsdl:port name="SonosSoap" binding="tns:SonosSoap"><soap:address location="https://m.mixcloud.com/sonos-app/"/></wsdl:port></wsdl:service><wsdl:service name="SonosService"><wsdl:port name="SonosSoap" binding="tns:SonosSoap"><soap:address location="https://m.mixcloud.com/sonos-app/"/></wsdl:port></wsdl:service><wsdl:portType name="SonosSoap"><wsdl:operation name="getDeviceLinkCode" parameterOrder="getDeviceLinkCode"><wsdl:input name="getDeviceLinkCode" message="tns:getDeviceLinkCode"/><wsdl:output name="getDeviceLinkCodeResponse" message="tns:getDeviceLinkCodeResponse"/></wsdl:operation><wsdl:operation name="getDeviceAuthToken" parameterOrder="getDeviceAuthToken"><wsdl:input name="getDeviceAuthToken" message="tns:getDeviceAuthToken"/><wsdl:output name="getDeviceAuthTokenResponse" message="tns:getDeviceAuthTokenResponse"/><wsdl:fault name="NotLinkedRetryError" message="tns:NotLinkedRetryError"/></wsdl:operation><wsdl:operation name="getLastUpdate" parameterOrder="getLastUpdate"><wsdl:documentation>
        This is essentially a cache-control type header sonos polls continuously to know when to invalidate its cache.
        response.favorites is calculated by pulling all favorite cloudcast ids, concatenating and md5 'ing them
        response.catalog updates every SONOS_CATALOG_EXPIRATION minutes
        </wsdl:documentation><wsdl:input name="getLastUpdate" message="tns:getLastUpdate"/><wsdl:output name="getLastUpdateResponse" message="tns:getLastUpdateResponse"/></wsdl:operation><wsdl:operation name="getExtendedMetadata" parameterOrder="getExtendedMetadata"><wsdl:input name="getExtendedMetadata" message="tns:getExtendedMetadata"/><wsdl:output name="getExtendedMetadataResponse" message="tns:getExtendedMetadataResponse"/></wsdl:operation><wsdl:operation name="getMediaURI" parameterOrder="getMediaURI"><wsdl:documentation>
        Return Streaming end point for a cloudcast
        </wsdl:documentation><wsdl:input name="getMediaURI" message="tns:getMediaURI"/><wsdl:output name="getMediaURIResponse" message="tns:getMediaURIResponse"/></wsdl:operation><wsdl:operation name="reportAccountAction" parameterOrder="reportAccountAction"><wsdl:documentation>
        Sonos calls this function to report when an account has been added to the Sonos
        system for the device.
        Return an empty response to avoid erroring.
        </wsdl:documentation><wsdl:input name="reportAccountAction" message="tns:reportAccountAction"/><wsdl:output name="reportAccountActionResponse" message="tns:reportAccountActionResponse"/></wsdl:operation><wsdl:operation name="addToContainer" parameterOrder="addToContainer"><wsdl:documentation>
        addToContainer adds a new cloudcast (id) to a playlist (parentId)
        </wsdl:documentation><wsdl:input name="addToContainer" message="tns:addToContainer"/><wsdl:output name="addToContainerResponse" message="tns:addToContainerResponse"/></wsdl:operation><wsdl:operation name="getMetadata" parameterOrder="getMetadata"><wsdl:documentation>
        The Crux of the menu system, this starts on an id "root" and allow you to navigate a type of tree system including content and lists
        </wsdl:documentation><wsdl:input name="getMetadata" message="tns:getMetadata"/><wsdl:output name="getMetadataResponse" message="tns:getMetadataResponse"/></wsdl:operation><wsdl:operation name="search" parameterOrder="search"><wsdl:input name="search" message="tns:search"/><wsdl:output name="searchResponse" message="tns:searchResponse"/></wsdl:operation><wsdl:operation name="reportPlayStatus" parameterOrder="reportPlayStatus"><wsdl:documentation>
        Sonos calls this function to report play status changes.
        We do not need this information, so we re just returning an empty
        response to avoid erroring.
        </wsdl:documentation><wsdl:input name="reportPlayStatus" message="tns:reportPlayStatus"/><wsdl:output name="reportPlayStatusResponse" message="tns:reportPlayStatusResponse"/></wsdl:operation><wsdl:operation name="getMediaMetadata" parameterOrder="getMediaMetadata"><wsdl:documentation>
        Returns all Metadata for a specific cloudcast
        </wsdl:documentation><wsdl:input name="getMediaMetadata" message="tns:getMediaMetadata"/><wsdl:output name="getMediaMetadataResponse" message="tns:getMediaMetadataResponse"/></wsdl:operation><wsdl:operation name="reorderContainer" parameterOrder="reorderContainer"><wsdl:documentation>
        reorderContainer reorders cloudcasts within a playlist
        </wsdl:documentation><wsdl:input name="reorderContainer" message="tns:reorderContainer"/><wsdl:output name="reorderContainerResponse" message="tns:reorderContainerResponse"/></wsdl:operation><wsdl:operation name="reportStatus" parameterOrder="reportStatus"><wsdl:documentation>
        Used by Sonos to report on radio stream failures.
        Return an empty response to avoid erroring.
        </wsdl:documentation><wsdl:input name="reportStatus" message="tns:reportStatus"/><wsdl:output name="reportStatusResponse" message="tns:reportStatusResponse"/></wsdl:operation><wsdl:operation name="setPlayedSeconds" parameterOrder="setPlayedSeconds"><wsdl:input name="setPlayedSeconds" message="tns:setPlayedSeconds"/><wsdl:output name="setPlayedSecondsResponse" message="tns:setPlayedSecondsResponse"/></wsdl:operation><wsdl:operation name="createItem" parameterOrder="createItem"><wsdl:input name="createItem" message="tns:createItem"/><wsdl:output name="createItemResponse" message="tns:createItemResponse"/></wsdl:operation><wsdl:operation name="renameContainer" parameterOrder="renameContainer"><wsdl:documentation>
        renameContainer sets a new name to a playlist
        </wsdl:documentation><wsdl:input name="renameContainer" message="tns:renameContainer"/><wsdl:output name="renameContainerResponse" message="tns:renameContainerResponse"/></wsdl:operation><wsdl:operation name="getExtendedMetadataText" parameterOrder="getExtendedMetadataText"><wsdl:input name="getExtendedMetadataText" message="tns:getExtendedMetadataText"/><wsdl:output name="getExtendedMetadataTextResponse" message="tns:getExtendedMetadataTextResponse"/></wsdl:operation><wsdl:operation name="removeFromContainer" parameterOrder="removeFromContainer"><wsdl:documentation>
        removeFromContainer removes a cloudcast from a playlist
        </wsdl:documentation><wsdl:input name="removeFromContainer" message="tns:removeFromContainer"/><wsdl:output name="removeFromContainerResponse" message="tns:removeFromContainerResponse"/></wsdl:operation><wsdl:operation name="createContainer" parameterOrder="createContainer"><wsdl:documentation>
        createContainer creates a new playlist.
        Figure out who the user is from the session_id
        </wsdl:documentation><wsdl:input name="createContainer" message="tns:createContainer"/><wsdl:output name="createContainerResponse" message="tns:createContainerResponse"/></wsdl:operation><wsdl:operation name="reportPlaySeconds" parameterOrder="reportPlaySeconds"><wsdl:documentation>
        Sonos calls this endpoint every "interval" (we set that below; 300) seconds.
        Its like a ping request to keep track of listener minutes.
        NOTE: We are interntionally ignoring this function call for now
        </wsdl:documentation><wsdl:input name="reportPlaySeconds" message="tns:reportPlaySeconds"/><wsdl:output name="reportPlaySecondsResponse" message="tns:reportPlaySecondsResponse"/></wsdl:operation><wsdl:operation name="deleteContainer" parameterOrder="deleteContainer"><wsdl:documentation>
        deleteContainer deletes a playlist by id.
        id comes in as 'playlist-id' so we have to parse it first
        </wsdl:documentation><wsdl:input name="deleteContainer" message="tns:deleteContainer"/><wsdl:output name="deleteContainerResponse" message="tns:deleteContainerResponse"/></wsdl:operation><wsdl:operation name="deleteItem" parameterOrder="deleteItem"><wsdl:input name="deleteItem" message="tns:deleteItem"/><wsdl:output name="deleteItemResponse" message="tns:deleteItemResponse"/></wsdl:operation></wsdl:portType><wsdl:binding name="SonosSoap" type="tns:SonosSoap"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="getDeviceLinkCode"><soap:operation soapAction="getDeviceLinkCode" style="document"/><wsdl:input name="getDeviceLinkCode"><soap:body use="literal"/></wsdl:input><wsdl:output name="getDeviceLinkCodeResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="getDeviceAuthToken"><soap:operation soapAction="getDeviceAuthToken" style="document"/><wsdl:input name="getDeviceAuthToken"><soap:body use="literal"/></wsdl:input><wsdl:output name="getDeviceAuthTokenResponse"><soap:body use="literal"/></wsdl:output><wsdl:fault name="NotLinkedRetryError"><soap:fault name="NotLinkedRetryError" use="literal"/></wsdl:fault></wsdl:operation><wsdl:operation name="getLastUpdate"><soap:operation soapAction="getLastUpdate" style="document"/><wsdl:input name="getLastUpdate"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="getLastUpdateResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="getExtendedMetadata"><soap:operation soapAction="getExtendedMetadata" style="document"/><wsdl:input name="getExtendedMetadata"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="getExtendedMetadataResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="getMediaURI"><soap:operation soapAction="getMediaURI" style="document"/><wsdl:input name="getMediaURI"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="getMediaURIResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="reportAccountAction"><soap:operation soapAction="reportAccountAction" style="document"/><wsdl:input name="reportAccountAction"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="reportAccountActionResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="addToContainer"><soap:operation soapAction="addToContainer" style="document"/><wsdl:input name="addToContainer"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="addToContainerResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="getMetadata"><soap:operation soapAction="getMetadata" style="document"/><wsdl:input name="getMetadata"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="getMetadataResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="search"><soap:operation soapAction="search" style="document"/><wsdl:input name="search"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="searchResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="reportPlayStatus"><soap:operation soapAction="reportPlayStatus" style="document"/><wsdl:input name="reportPlayStatus"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="reportPlayStatusResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="getMediaMetadata"><soap:operation soapAction="getMediaMetadata" style="document"/><wsdl:input name="getMediaMetadata"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="getMediaMetadataResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="reorderContainer"><soap:operation soapAction="reorderContainer" style="document"/><wsdl:input name="reorderContainer"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="reorderContainerResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="reportStatus"><soap:operation soapAction="reportStatus" style="document"/><wsdl:input name="reportStatus"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="reportStatusResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="setPlayedSeconds"><soap:operation soapAction="setPlayedSeconds" style="document"/><wsdl:input name="setPlayedSeconds"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="setPlayedSecondsResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="createItem"><soap:operation soapAction="createItem" style="document"/><wsdl:input name="createItem"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="createItemResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="renameContainer"><soap:operation soapAction="renameContainer" style="document"/><wsdl:input name="renameContainer"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="renameContainerResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="getExtendedMetadataText"><soap:operation soapAction="getExtendedMetadataText" style="document"/><wsdl:input name="getExtendedMetadataText"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="getExtendedMetadataTextResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="removeFromContainer"><soap:operation soapAction="removeFromContainer" style="document"/><wsdl:input name="removeFromContainer"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="removeFromContainerResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="createContainer"><soap:operation soapAction="createContainer" style="document"/><wsdl:input name="createContainer"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="createContainerResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="reportPlaySeconds"><soap:operation soapAction="reportPlaySeconds" style="document"/><wsdl:input name="reportPlaySeconds"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="reportPlaySecondsResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="deleteContainer"><soap:operation soapAction="deleteContainer" style="document"/><wsdl:input name="deleteContainer"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="deleteContainerResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="deleteItem"><soap:operation soapAction="deleteItem" style="document"/><wsdl:input name="deleteItem"><soap:body use="literal"/><soap:header use="literal" message="tns:credentials" part="credentials"/></wsdl:input><wsdl:output name="deleteItemResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding></wsdl:definitions>