[{"data":1,"prerenderedAt":205},["ShallowReactive",2],{"cds-site:languages":3,"cds-site:style":5,"cds-site:globals":48,"cds-site:menu":54,"page-en-/guide/changelogs/AccessControl":152,"api-changelog-AccessControl":185},[4],"en",{"id":6,"name":7,"template":8,"logo":9,"logoMark":10,"favicon":11,"values":12,"cssProperties":14},"style_docs","Documentation","@checkin247/template-docs","hotelplatform-logo","hotelplatform-mark","favicon",{"icon_background":13},"#0B1B33",{"--color-ink":13,"--color-deep":15,"--color-signal":16,"--color-signal-deep":17,"--color-signal-light":18,"--color-canvas":19,"--color-error":20,"--color-brand-50":19,"--color-brand-100":21,"--color-brand-200":22,"--color-brand-300":23,"--color-brand-400":24,"--color-brand-500":25,"--color-brand-600":26,"--color-brand-700":15,"--color-brand-800":27,"--color-brand-900":13,"--color-brand-950":28,"--color-neutral-50":29,"--color-neutral-100":30,"--color-neutral-200":31,"--color-neutral-300":32,"--color-neutral-400":33,"--color-neutral-500":34,"--color-neutral-600":35,"--color-neutral-700":36,"--color-neutral-800":37,"--color-neutral-900":38,"--color-neutral-950":13,"--color-primary":25,"--color-primary-hover":15,"--color-surface":39,"--color-background-default":19,"--color-background-dark":13,"--color-text-strong":38,"--color-text-dark":38,"--color-text-body":36,"--color-text-default":36,"--color-text-muted":40,"--color-text-on-dark":41,"--color-border":31,"--color-border-default":31,"--font-heading":42,"--font-body":43,"--font-mono":44,"--radius-control":45,"--radius-card":46,"--radius":45,"--container-content":47},"#14306E","#4FC3B0","#136558","#8FE0D2","#F6F9FC","#B4442F","#EAF0F9","#CBD9F0","#A3BCE4","#6389C8","#2A56A8","#204487","#0F2452","#071223","#F8FAFC","#F1F5FA","#E3E9F2","#CFD8E6","#A6B3C6","#8494AB","#6C7C93","#5A6A80","#3B4A61","#12233F","#FFFFFF","#5D6C82","#D5E1F2","\"Outfit\", ui-sans-serif, system-ui, sans-serif","\"IBM Plex Sans\", ui-sans-serif, system-ui, sans-serif","\"IBM Plex Mono\", ui-monospace, monospace","10px","16px","780px",{"id":49,"siteName":50,"copyright":51,"footerText":52,"defaultLanguage":4,"vimeo":53,"linkedin":53,"youtube":53,"github":53,"logo":53,"logoMark":53,"favicon":53,"ogImage":53},"site","HotelPlatform.io Documentation","© 2026 key-card / HotelPlatform","API documentation of the HotelPlatform.",null,[55,64,70,77,83,90,96,103,110,117,124,131,138,145],{"id":56,"label":57,"description":53,"icon":53,"trailing_icon":53,"href":58,"sort":59,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":61,"to":53,"menu":62},"m_main_api","API Documentation","/api-reference",1,"published",[],{"position":63},"main",{"id":65,"label":66,"description":53,"icon":53,"trailing_icon":53,"href":67,"sort":59,"status":60,"parent_item":56,"target":53,"isCanonical":53,"translations":68,"to":53,"menu":69},"m_main_api_AccessControl","AccessControl","/api-reference/AccessControl/latest",[],{"position":63},{"id":71,"label":72,"description":53,"icon":53,"trailing_icon":53,"href":73,"sort":74,"status":60,"parent_item":56,"target":53,"isCanonical":53,"translations":75,"to":53,"menu":76},"m_main_api_Configuration","Configuration","/api-reference/Configuration/latest",2,[],{"position":63},{"id":78,"label":79,"description":53,"icon":53,"trailing_icon":53,"href":80,"sort":74,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":81,"to":53,"menu":82},"m_main_guide","Guide","/guide",[],{"position":63},{"id":84,"label":85,"description":53,"icon":53,"trailing_icon":53,"href":86,"sort":87,"status":60,"parent_item":56,"target":53,"isCanonical":53,"translations":88,"to":53,"menu":89},"m_main_api_HotelApi","HotelApi","/api-reference/HotelApi/latest",3,[],{"position":63},{"id":91,"label":92,"description":53,"icon":53,"trailing_icon":53,"href":93,"sort":87,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":94,"to":53,"menu":95},"m_main_about","About","/about",[],{"position":63},{"id":97,"label":98,"description":53,"icon":53,"trailing_icon":53,"href":80,"sort":99,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":100,"to":53,"menu":101},"m_sb_overview","Overview",4,[],{"position":102},"sidebar",{"id":104,"label":105,"description":53,"icon":53,"trailing_icon":53,"href":106,"sort":107,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":108,"to":53,"menu":109},"m_sb_introduction","Introduction","/guide/introduction",5,[],{"position":102},{"id":111,"label":112,"description":53,"icon":53,"trailing_icon":53,"href":113,"sort":114,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":115,"to":53,"menu":116},"m_sb_getting_started","Getting started","/guide/getting-started",6,[],{"position":102},{"id":118,"label":119,"description":53,"icon":53,"trailing_icon":53,"href":120,"sort":121,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":122,"to":53,"menu":123},"m_sb_pagination","Pagination & Filtering","/guide/pagination-and-filtering",7,[],{"position":102},{"id":125,"label":126,"description":53,"icon":53,"trailing_icon":53,"href":127,"sort":128,"status":60,"parent_item":53,"target":53,"isCanonical":53,"translations":129,"to":53,"menu":130},"m_sb_changelogs","Changelogs","/guide/changelogs",12,[],{"position":102},{"id":132,"label":133,"description":53,"icon":53,"trailing_icon":53,"href":134,"sort":135,"status":60,"parent_item":125,"target":53,"isCanonical":53,"translations":136,"to":53,"menu":137},"m_sb_changelog_AccessControl","AccessControl Changelog","/guide/changelogs/AccessControl",13,[],{"position":102},{"id":139,"label":140,"description":53,"icon":53,"trailing_icon":53,"href":141,"sort":142,"status":60,"parent_item":125,"target":53,"isCanonical":53,"translations":143,"to":53,"menu":144},"m_sb_changelog_Configuration","Configuration Changelog","/guide/changelogs/Configuration",14,[],{"position":102},{"id":146,"label":147,"description":53,"icon":53,"trailing_icon":53,"href":148,"sort":149,"status":60,"parent_item":125,"target":53,"isCanonical":53,"translations":150,"to":53,"menu":151},"m_sb_changelog_HotelApi","HotelApi Changelog","/guide/changelogs/HotelApi",15,[],{"position":102},{"id":153,"slug":66,"title":133,"description":154,"blocks":155,"contentBlocks":173,"seo":184},"p_changelog-AccessControl","What changed in each version of the AccessControl API, newest version first, including breaking changes.",[156,166],{"id":157,"type":158,"title":53,"subtitle":53,"content":159,"image":53,"ctaText":53,"ctaUrl":53,"module":160,"alignment":53,"ratio":53,"colorScheme":161,"settings":162,"items":163,"texts":164},"b_changelog-AccessControl-title","markdown","\u003Ch1>AccessControl Changelog\u003C/h1>\n",[],"default",{},[],{"body":165},"# AccessControl Changelog\n",{"id":167,"type":168,"title":53,"subtitle":53,"content":53,"image":53,"ctaText":53,"ctaUrl":53,"module":169,"alignment":53,"ratio":53,"colorScheme":161,"settings":170,"items":171,"texts":172},"b_changelog_AccessControl","api_changelog",[],{"api":66},[],{},[174,179],{"id":157,"type":158,"title":53,"subtitle":53,"content":159,"image":53,"ctaText":53,"ctaUrl":53,"module":175,"alignment":53,"ratio":53,"colorScheme":161,"settings":176,"items":177,"texts":178},[],{},[],{"body":165},{"id":167,"type":168,"title":53,"subtitle":53,"content":53,"image":53,"ctaText":53,"ctaUrl":53,"module":180,"alignment":53,"ratio":53,"colorScheme":161,"settings":181,"items":182,"texts":183},[],{"api":66},[],{},{},[186,190,194,198,202],{"version":187,"released":188,"html":189},"2.2.1-rc.1","2026-07-05","\u003Cp>Rolls the published reference forward from \u003Ccode>2.0.0-rc.1\u003C/code> and bundles every change made since then (2.0.1 to 2.2.1).\u003C/p>\n\u003Cp>\u003Cstrong>Server URL\u003C/strong>\nThe reference now uses the public base URL \u003Ccode>/api/v2\u003C/code>, so the operations are reached at \u003Ccode>/api/v2/access/...\u003C/code> (e.g. \u003Ccode>GET /api/v2/access/keys\u003C/code>). The previous reference combined \u003Ccode>/api/v1/access\u003C/code> with paths that already start with \u003Ccode>/access\u003C/code>, which doubled the prefix. The operation paths themselves are unchanged.\u003C/p>\n\u003Cp>\u003Cstrong>Breaking changes\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Keys: \u003Ccode>startTime\u003C/code> and \u003Ccode>endTime\u003C/code> in key responses can be \u003Ccode>null\u003C/code>.\u003C/li>\n\u003Cli>Keys: key responses no longer contain \u003Ccode>providerId\u003C/code> and \u003Ccode>type\u003C/code>.\u003C/li>\n\u003Cli>Keys: \u003Ccode>POST /access/controllers/{controllerId}/key\u003C/code> and \u003Ccode>PUT /access/keys/{keyId}\u003C/code> take a single \u003Ccode>Key\u003C/code> object instead of a choice between \u003Ccode>KeyCard\u003C/code> and \u003Ccode>PinCode\u003C/code>.\u003C/li>\n\u003Cli>Units: \u003Ccode>code\u003C/code> in unit responses can be \u003Ccode>null\u003C/code>.\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>New\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Batch key creation: \u003Ccode>POST /access/controllers/{controllerId}/keys\u003C/code> (experimental).\u003C/li>\n\u003Cli>Key reconciliation for a stay: \u003Ccode>PUT /access/controllers/{controllerId}/keys/by-reservation/{stayExternalId}\u003C/code>.\u003C/li>\n\u003Cli>Card dispenser operations under \u003Ccode>/access/dispensers\u003C/code>: status, set state, place card, and reset the cache for one dispenser or for all of them.\u003C/li>\n\u003Cli>Provider capabilities and extensions: \u003Ccode>GET /access/providers/{configurationId}/capabilities\u003C/code> and \u003Ccode>GET /access/providers/{configurationId}/extensions/{extensionName}\u003C/code>.\u003C/li>\n\u003Cli>Error responses (\u003Ccode>400\u003C/code>, \u003Ccode>404\u003C/code>, \u003Ccode>422\u003C/code>, \u003Ccode>500\u003C/code>, \u003Ccode>502\u003C/code>) are documented as RFC 9457 ProblemDetails (\u003Ccode>application/problem+json\u003C/code>).\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Changed\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>The documentation now states the rules under which a key request is rejected.\u003C/li>\n\u003C/ul>\n\u003Cp>Changes since 2.0.0-rc.1. Operations: 9 \u003Cspan style=\"color: green;\">added\u003C/span>, 9 \u003Cspan style=\"color: orange;\">changed\u003C/span>, 0 \u003Cspan style=\"color: red;\">removed\u003C/span> · 20 \u003Cspan style=\"color: red;\">breaking\u003C/span> changes\u003C/p>\n\u003Cp>\u003Cstrong>Detected breaking changes\u003C/strong>\u003C/p>\n\u003Cdetails>\n\u003Csummary>20 breaking changes in 8 operations\u003C/summary>\n\u003Cul>\n\u003Cli>\u003Ccode>GET /access/controllers/{controllerId}/key\u003C/code>\n\u003Cul>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/endTime' became nullable for the status '200'\u003C/li>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/startTime' became nullable for the status '200'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/keys\u003C/code>\n\u003Cul>\n\u003Cli>the response property '/allOf[subschema #2]/data/items/allOf[subschema #1: Key]/endTime' became nullable for the status '200'\u003C/li>\n\u003Cli>the response property '/allOf[subschema #2]/data/items/allOf[subschema #1: Key]/startTime' became nullable for the status '200'\u003C/li>\n\u003Cli>removed the required property '/allOf[subschema #2]/data/items/allOf[subschema #4 -&gt; subschema #3]/providerId' from the response with the '200' status\u003C/li>\n\u003Cli>removed the required property '/allOf[subschema #2]/data/items/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '200' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/keys/{keyId}\u003C/code>\n\u003Cul>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/endTime' became nullable for the status '200'\u003C/li>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/startTime' became nullable for the status '200'\u003C/li>\n\u003Cli>removed the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/providerId' from the response with the '200' status\u003C/li>\n\u003Cli>removed the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '200' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/units\u003C/code>\n\u003Cul>\n\u003Cli>the response property '/allOf[subschema #2]/data/items/allOf[subschema #1: Unit]/code' became nullable for the status '200'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/units/{unitId}\u003C/code>\n\u003Cul>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Unit]/code' became nullable for the status '200'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/controllers/{controllerId}/key\u003C/code>\n\u003Cul>\n\u003Cli>added '#/components/schemas/Key, #/components/schemas/ResponseWithIdentifier, subschema #3' to the request body 'allOf' list\u003C/li>\n\u003Cli>removed 'subschema #1: KeyCard, subschema #2: PinCode' from the request body 'oneOf' list\u003C/li>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/endTime' became nullable for the status '201'\u003C/li>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/startTime' became nullable for the status '201'\u003C/li>\n\u003Cli>removed the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '201' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/units\u003C/code>\n\u003Cul>\n\u003Cli>the response property '/allOf[subschema #2]/data/allOf[subschema #1: Unit]/code' became nullable for the status '201'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/keys/{keyId}\u003C/code>\n\u003Cul>\n\u003Cli>added '#/components/schemas/Key, #/components/schemas/ResponseWithIdentifier, subschema #3' to the request body 'allOf' list\u003C/li>\n\u003Cli>the request's body type/format changed from 'object'/'' to ''/''\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/details>\n\u003Cp>\u003Cstrong>Operations\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>POST /access/controllers/{controllerId}/keys\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/controllers/{controllerId}/keys/by-reservation/{stayExternalId}\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/dispensers/{dispenserId}/status\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/dispensers/{dispenserId}/status/{state}\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/dispensers/{dispenserId}/place-card/{cardPosition}\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>POST /access/dispensers/{dispenserId}/reset-cache\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>POST /access/dispensers/reset-all-cache\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/providers/{configurationId}/capabilities\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/providers/{configurationId}/extensions/{extensionName}\u003C/code> \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/controllers/{controllerId}/key\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/keys\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/keys/{keyId}\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/units\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>GET /access/units/{unitId}\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>POST /access/controllers/{controllerId}/key\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>POST /access/units\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/keys/{keyId}\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/units/{unitId}\u003C/code> \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cdetails>\n\u003Csummary>All 92 changes in detail\u003C/summary>\n\u003Cul>\n\u003Cli>\u003Ccode>GET /access/controllers/{controllerId}/key\u003C/code>\n\u003Cul>\n\u003Cli>added the media type 'application/problem+json' for the response with the status '500'\u003C/li>\n\u003Cli>added the non-success response with the status '404'\u003C/li>\n\u003Cli>added the non-success response with the status '502'\u003C/li>\n\u003Cli>removed the optional property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '200' status\u003C/li>\n\u003Cli>removed '#/components/schemas/KeyTypeKeycard' from the '/allOf[subschema #2]/data' response property 'allOf' list for the response status '200'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/endTime' became nullable for the status '200'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/startTime' became nullable for the status '200'\u003C/li>\n\u003Cli>added discriminator to '/allOf[subschema #2]/data' response property for the response status '200'\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/providerId' to the response with the '200' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/type' to the response with the '200' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/keyType' to the response with the '200' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/dispensers/{dispenserId}/status\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/keys\u003C/code>\n\u003Cul>\n\u003Cli>added the new optional 'query' request parameter 'filter'\u003C/li>\n\u003Cli>added the new optional 'query' request parameter 'page'\u003C/li>\n\u003Cli>added the non-success response with the status '400'\u003C/li>\n\u003Cli>added the non-success response with the status '500'\u003C/li>\n\u003Cli>removed '#/components/schemas/KeyTypes' from the '/allOf[subschema #2]/data/items/' response property 'allOf' list for the response status '200'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/items/allOf[subschema #1: Key]/endTime' became nullable for the status '200'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/items/allOf[subschema #1: Key]/startTime' became nullable for the status '200'\u003C/li>\n\u003Cli>added discriminator to '/allOf[subschema #2]/data/items/' response property for the response status '200'\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/items/allOf[subschema #1: Key]/providerId' to the response with the '200' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/items/allOf[subschema #1: Key]/type' to the response with the '200' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/items/allOf[subschema #4 -&gt; subschema #3]/keyType' to the response with the '200' status\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: removed the required property '/allOf[subschema #2]/data/items/allOf[subschema #4 -&gt; subschema #3]/providerId' from the response with the '200' status\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: removed the required property '/allOf[subschema #2]/data/items/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '200' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/keys/{keyId}\u003C/code>\n\u003Cul>\n\u003Cli>added the non-success response with the status '404'\u003C/li>\n\u003Cli>added the non-success response with the status '500'\u003C/li>\n\u003Cli>removed '#/components/schemas/KeyTypes' from the '/allOf[subschema #2]/data' response property 'allOf' list for the response status '200'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/endTime' became nullable for the status '200'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/startTime' became nullable for the status '200'\u003C/li>\n\u003Cli>added discriminator to '/allOf[subschema #2]/data' response property for the response status '200'\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/providerId' to the response with the '200' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/type' to the response with the '200' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/keyType' to the response with the '200' status\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: removed the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/providerId' from the response with the '200' status\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: removed the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '200' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/providers/{configurationId}/capabilities\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/providers/{configurationId}/extensions/{extensionName}\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/units\u003C/code>\n\u003Cul>\n\u003Cli>added the new optional 'query' request parameter 'filter'\u003C/li>\n\u003Cli>added the new optional 'query' request parameter 'page'\u003C/li>\n\u003Cli>added the non-success response with the status '400'\u003C/li>\n\u003Cli>added the non-success response with the status '500'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/items/allOf[subschema #1: Unit]/code' became nullable for the status '200'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>GET /access/units/{unitId}\u003C/code>\n\u003Cul>\n\u003Cli>added the non-success response with the status '404'\u003C/li>\n\u003Cli>added the non-success response with the status '500'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Unit]/code' became nullable for the status '200'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/controllers/{controllerId}/key\u003C/code>\n\u003Cul>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: added '#/components/schemas/Key, #/components/schemas/ResponseWithIdentifier, subschema #3' to the request body 'allOf' list\u003C/li>\n\u003Cli>added request discriminator\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: removed 'subschema #1: KeyCard, subschema #2: PinCode' from the request body 'oneOf' list\u003C/li>\n\u003Cli>added the non-success response with the status '400' (and 3 more of \u003Ccode>response-non-success-status-added\u003C/code>)\u003C/li>\n\u003Cli>removed '#/components/schemas/KeyTypes' from the '/allOf[subschema #2]/data' response property 'allOf' list for the response status '201'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/endTime' became nullable for the status '201'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/startTime' became nullable for the status '201'\u003C/li>\n\u003Cli>added discriminator to '/allOf[subschema #2]/data' response property for the response status '201'\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/providerId' to the response with the '201' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #1: Key]/type' to the response with the '201' status\u003C/li>\n\u003Cli>added the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/keyType' to the response with the '201' status\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: removed the required property '/allOf[subschema #2]/data/allOf[subschema #4 -&gt; subschema #3]/type' from the response with the '201' status\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/controllers/{controllerId}/keys\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/dispensers/reset-all-cache\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/dispensers/{dispenserId}/reset-cache\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>POST /access/units\u003C/code>\n\u003Cul>\n\u003Cli>the request property 'code' became nullable\u003C/li>\n\u003Cli>added the non-success response with the status '400'\u003C/li>\n\u003Cli>added the non-success response with the status '422'\u003C/li>\n\u003Cli>added the non-success response with the status '500'\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the response property '/allOf[subschema #2]/data/allOf[subschema #1: Unit]/code' became nullable for the status '201'\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/controllers/{controllerId}/keys/by-reservation/{stayExternalId}\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/dispensers/{dispenserId}/place-card/{cardPosition}\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/dispensers/{dispenserId}/status/{state}\u003C/code>\n\u003Cul>\n\u003Cli>endpoint added\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/keys/{keyId}\u003C/code>\n\u003Cul>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: added '#/components/schemas/Key, #/components/schemas/ResponseWithIdentifier, subschema #3' to the request body 'allOf' list\u003C/li>\n\u003Cli>added request discriminator\u003C/li>\n\u003Cli>\u003Cspan style=\"color: red;\">breaking\u003C/span>: the request's body type/format changed from 'object'/'' to ''/''\u003C/li>\n\u003Cli>removed the request property 'authorizations' (and 8 more of \u003Ccode>request-property-removed\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>PUT /access/units/{unitId}\u003C/code>\n\u003Cul>\n\u003Cli>the request property 'code' became nullable\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ccode>null null\u003C/code>\n\u003Cul>\n\u003Cli>removed the schema 'AccessControlProviderBaseConfiguration' (and 6 more of \u003Ccode>api-schema-removed\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/details>\n",{"version":191,"released":192,"html":193},"2.0.0-rc.1","2025-05-01","\u003Cp>Operations: 12 operations added, 22 \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>specification details:\u003C/p>\n\u003Cul>\n\u003Cli>/x-tagGroups/0/tags/0, /x-tagGroups/0/tags/1 \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>/x-tagGroups/0/name, /tags/3/name, /tags/3/description, /info/version, /info/description \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>/x-tagGroups/1, /x-tagGroups/0/tags/0, /x-tagGroups/0/tags/1, /x-tagGroups/0/tags/2 \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cp>POST /providers: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /providers: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /providers/{providerId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>PUT /providers/{providerId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /providers/{providerId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /providers/{providerId}/controllers: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>POST /providers/{providerId}/controllers: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /providers/{providerId}/controllers/{controllerId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /providers/{providerId}/controllers/{controllerId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>PUT /providers/{providerId}/controllers/{controllerId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /units: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>POST /units: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /units/{unitId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /units/{unitId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>PUT /units/{unitId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>POST /controllers/{controllerId}/key: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /controllers/{controllerId}/key: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /controllers/{controllerId}/key: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /keys: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /providers/{providerId}/keys/{keyId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>PUT /providers/{providerId}/keys/{keyId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /providers/{providerId}/keys/{keyId}: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /access/units: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>POST /access/units: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>GET /access/units/{unitId}: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>DELETE /access/controllers/{controllerId}/key: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>GET /access/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>GET /access/keys/{keyId}: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>PUT /access/keys/{keyId}: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>DELETE /access/keys/{keyId}: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n",{"version":195,"released":196,"html":197},"0.2.0-rc.9","2024-10-02","\u003Cp>Operations: 3 operations added, 19 changed, 3 \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>specification details:\u003C/p>\n\u003Cul>\n\u003Cli>/info/version \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cp>POST /controllers/{controllerId}/key: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /controllers/{controllerId}/key: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /controllers/{controllerId}/key: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /controllers/{controllerId}/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>POST /controllers/{controllerId}/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>DELETE /controllers/{controllerId}/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>DELETE /providers/{providerId}/keys/{keyId}:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>/description \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 204: \u003Cspan style=\"color: red;\">removed\u003C/span>\nPUT /providers/{providerId}/keys/{keyId}:\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>request:\u003C/p>\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/properties/unitName: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/unit: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/deAuthorizations: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/authorizations: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 204: \u003Cspan style=\"color: red;\">removed\u003C/span>\nGET /providers/{providerId}/keys/{keyId}:\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003C/ul>\n\u003Cp>GET /keys:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200:\u003C/p>\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/properties/links: \u003Cspan style=\"color: green;\">added\u003C/span>\nPUT /units/{unitId}:\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 204: \u003Cspan style=\"color: red;\">removed\u003C/span>\nDELETE /units/{unitId}:\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>/summary \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003C/ul>\n\u003Cp>GET /units/{unitId}:\u003C/p>\n\u003Cul>\n\u003Cli>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cp>POST /units:\u003C/p>\n\u003Cul>\n\u003Cli>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cp>GET /units:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200:\u003C/p>\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/properties/links: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/links/properties/self: \u003Cspan style=\"color: orange;\">changed\u003C/span>\nPUT /providers/{providerId}/controllers/{controllerId}:\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003C/ul>\n\u003Cp>GET /providers/{providerId}/controllers/{controllerId}:\u003C/p>\n\u003Cul>\n\u003Cli>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cp>DELETE /providers/{providerId}/controllers/{controllerId}:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 204: \u003Cspan style=\"color: red;\">removed\u003C/span>\nPOST /providers/{providerId}/controllers:\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003C/ul>\n\u003Cp>GET /providers/{providerId}/controllers:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200:\u003C/p>\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/properties/links: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/links/properties/self: \u003Cspan style=\"color: orange;\">changed\u003C/span>\nDELETE /providers/{providerId}:\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 204: \u003Cspan style=\"color: red;\">removed\u003C/span>\nPUT /providers/{providerId}:\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003C/ul>\n\u003Cp>GET /providers/{providerId}:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200:\u003C/p>\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property : \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/2/properties/data: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/2/properties/data/properties/type: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/2/properties/data/properties/id: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/1/properties/data: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/1/properties/data/properties/type: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/1/properties/data/properties/id: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/0/properties/data: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/0/properties/data/properties/type: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/0/properties/data/properties/id: \u003Cspan style=\"color: orange;\">changed\u003C/span>\nGET /providers:\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>response 200:\u003C/p>\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/oneOf/2/properties/links: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/1/properties/links: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>property /schema/oneOf/0/properties/links: \u003Cspan style=\"color: green;\">added\u003C/span>\nPOST /providers:\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\n\u003Cp>/deprecated \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>header parameter Accept: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003C/li>\n\u003C/ul>\n",{"version":199,"released":200,"html":201},"0.2.0-rc.7","2024-06-21","\u003Cp>Deprecated all /providers/* and /controllers/* endpoints. These endpoints will be removed in the next release and were only aliases for the configuration api.\u003C/p>\n\u003Cp>Operations: 5 operations added, 2 changed, 4 \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>specification details:\u003C/p>\n\u003Cul>\n\u003Cli>/tags/1/description, /info/version \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003Cp>GET /providers/{providerId}/controllers/{controllerId}/keys: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>POST /providers/{providerId}/controllers/{controllerId}/keys: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>DELETE /providers/{providerId}/controllers/{controllerId}/keys: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /providers/{providerId}/keys: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/p>\n\u003Cp>GET /controllers/{controllerId}/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>POST /controllers/{controllerId}/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>DELETE /controllers/{controllerId}/keys: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>PUT /providers/{providerId}/keys/{keyId}:\u003C/p>\n\u003Cul>\n\u003Cli>request:\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/properties/start: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/end: \u003Cspan style=\"color: red;\">removed\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/startDate: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/endDate: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/startTime: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003Cli>property /schema/properties/endTime: \u003Cspan style=\"color: green;\">added\u003C/span>\nDELETE /units/{unitId}: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Cp>PUT /units/{unitId}: \u003Cspan style=\"color: green;\">added\u003C/span>\u003C/p>\n\u003Cp>POST /units:\u003C/p>\n\u003Cul>\n\u003Cli>request:\n\u003Cul>\n\u003Cli>body application/vnd.api+json:\n\u003Cul>\n\u003Cli>property /schema/properties/providerId: \u003Cspan style=\"color: orange;\">changed\u003C/span>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n",{"version":203,"released":53,"html":204},"0.2.0-rc.6","\u003Cp>Initial public release candidate 0.2.0-rc.6\u003C/p>\n",1791403614940]