{"id":410,"date":"2021-12-23T19:20:13","date_gmt":"2021-12-23T18:20:13","guid":{"rendered":"http:\/\/www.gerjon.com\/?p=410"},"modified":"2021-12-23T19:24:46","modified_gmt":"2021-12-23T18:24:46","slug":"receive-alerts-from-your-vmware-environment-in-microsoft-teams","status":"publish","type":"post","link":"https:\/\/www.gerjon.com\/?p=410","title":{"rendered":"Receive alerts from your VMware environment in Microsoft Teams"},"content":{"rendered":"\n<p><span style=\"text-decoration: underline;\"><strong>Problem<\/strong><\/span><\/p>\n\n\n\n<p>When you have your own (VMware) Lab you don&#8217;t always have time to look at the state of the lab and if &#8216;all lights are in the green&#8217; so to say. So how cool would it be to be alerted on your phone if a problem would occur on your test environment. But monitoring the environment from inside the environment is always tricky because if its down its not alerting \ud83d\ude42<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\"><strong>Solution<\/strong><\/span><\/p>\n\n\n\n<p>After some searching on the internet I decided to monitor my vSphere environment via a and Raspberry Pi 3 I had laying around with Raspberry Pi OS installed on it. In case of an error there should be a notification popup in a Microsoft Teams channel. <\/p>\n\n\n\n<p>So that&#8217;s the theory. Lets see if we can get it to work.<\/p>\n\n\n\n<p><strong>Configuring the alerting<\/strong><\/p>\n\n\n\n<p>So i have a MSDN subscription for Office 365 and also access to teams in this subscription so what I did wat create a separate team for the alert (you can also get this into a channel in an existing team but for me this was a better separation. I used the web version of teams but you could also use the desktop version.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"520\" height=\"416\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel.jpg?resize=520%2C416&#038;ssl=1\" alt=\"\" class=\"wp-image-422\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel.jpg?w=520&amp;ssl=1 520w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel.jpg?resize=300%2C240&amp;ssl=1 300w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><figcaption>First add a channel to an existing (or new) teams site.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"450\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-2.jpg?resize=598%2C450&#038;ssl=1\" alt=\"\" class=\"wp-image-423\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-2.jpg?w=598&amp;ssl=1 598w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-2.jpg?resize=300%2C226&amp;ssl=1 300w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><figcaption>Give it a cool name \ud83d\ude42<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-3.jpg?resize=435%2C422&#038;ssl=1\" alt=\"\" class=\"wp-image-424\" width=\"435\" height=\"422\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-3.jpg?w=435&amp;ssl=1 435w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-3.jpg?resize=300%2C291&amp;ssl=1 300w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/><figcaption>I made it a private channel so not all users are bothered with the alerts \ud83d\ude42<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"617\" height=\"679\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-4.jpg?resize=617%2C679&#038;ssl=1\" alt=\"\" class=\"wp-image-425\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-4.jpg?w=617&amp;ssl=1 617w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-4.jpg?resize=273%2C300&amp;ssl=1 273w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><figcaption>Next step is to add a webhook connector.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"791\" height=\"700\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-5.jpg?resize=791%2C700&#038;ssl=1\" alt=\"\" class=\"wp-image-426\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-5.jpg?w=791&amp;ssl=1 791w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-5.jpg?resize=300%2C265&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-5.jpg?resize=768%2C680&amp;ssl=1 768w\" sizes=\"auto, (max-width: 791px) 100vw, 791px\" \/><figcaption>Choose it from the list and klick add and configure<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"801\" height=\"696\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-6.jpg?resize=801%2C696&#038;ssl=1\" alt=\"\" class=\"wp-image-427\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-6.jpg?w=801&amp;ssl=1 801w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-6.jpg?resize=300%2C261&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-6.jpg?resize=768%2C667&amp;ssl=1 768w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><figcaption>Give the webhook a name you can relate to the alert<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"694\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-7.jpg?resize=803%2C694&#038;ssl=1\" alt=\"\" class=\"wp-image-428\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-7.jpg?w=803&amp;ssl=1 803w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-7.jpg?resize=300%2C259&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-7.jpg?resize=768%2C664&amp;ssl=1 768w\" sizes=\"auto, (max-width: 803px) 100vw, 803px\" \/><figcaption>Copy the url to notepad (you need it later) as the url the monitoring Powershell script will need a place to send the errors \ud83d\ude42<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"290\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-8.jpg?resize=797%2C290&#038;ssl=1\" alt=\"\" class=\"wp-image-429\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-8.jpg?w=797&amp;ssl=1 797w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-8.jpg?resize=300%2C109&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2020\/11\/teams-create-channel-8.jpg?resize=768%2C279&amp;ssl=1 768w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><figcaption>So this concludes the teams part of the solution, so lets move on to the command line stuff :-).<\/figcaption><\/figure>\n\n\n\n<p><strong>Installing and configuring the script on the Raspberry Pi<\/strong><\/p>\n\n\n\n<p>After downloading the script I ran this Powershell oneliner to test if the script was working as expected.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>pwsh -ExecutionPolicy Bypass -file&nbsp;Send-vSphereAlarms.ps1 -vcenter&nbsp;<em>vcenter-fqdn<\/em>&nbsp;-TeamsUri&nbsp;<em>uri<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Where vCenter fdqn is the URL for the vCenter obvious \ud83d\ude42 and the TeamsURI is the URL you copied earlier from the teams web hook configuration.<\/p>\n\n\n\n<p><strong>CronJob<\/strong><\/p>\n\n\n\n<p>To make it possible for a Powershell script to run on a Raspberry Pi you need to install Powershell. Microsoft has good documentation regarding this subject here: <a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/scripting\/install\/install-raspbian?view=powershell-7.2\">Installing PowerShell on Raspberry Pi OS &#8211; PowerShell | Microsoft Docs<\/a>. I did it by running these commands in terminal on the raspberry pi.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>wget https:\/\/github.com\/PowerShell\/PowerShell\/releases\/download\/v7.2.1\/powershell-7.2.1-linux-arm32.tar.gz<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Next step is to create a folder for Powershell to be installed.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>mkdir ~\/powershell<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Then its time to unpack the downloaded tar file.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>tar -xvf .\/powershell-7.2.1-linux-arm32.tar.gz -C ~\/powershell<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Pro tip: I made my life easier by creating a symlink so I don&#8217;t need to browse to the Powershell folder to use pwsh.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>sudo ~\/powershell\/pwsh -command &#8216;New-Item -ItemType SymbolicLink -Path &#8220;\/usr\/bin\/pwsh&#8221; -Target &#8220;$PSHOME\/pwsh&#8221; -Force&#8217;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>To make the script work you also need VMware PowerCLI to be installed, this can be done by running this command inside the Raspberry Pi terminal session (inside Powershell).<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>Install-Module -Name VMware.PowerCLI -Scope CurrentUser<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/image-3.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"591\" height=\"19\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/image-3.png?resize=591%2C19&#038;ssl=1\" alt=\"\" class=\"wp-image-913\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/image-3.png?w=591&amp;ssl=1 591w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/image-3.png?resize=300%2C10&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/image-3.png?resize=527%2C17&amp;ssl=1 527w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/image-3.png?resize=560%2C19&amp;ssl=1 560w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/a><\/figure>\n\n\n\n<p>After installing the PowerCLI addon you can now connect to the vCenter by running this command. For me I added this line as a first line to the Powershell script, there are probably better ways to do this and i&#8217;ll update the blog on how to do this but for now it works :-). Do not use cleartext passwords scripts in production environments!!<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>Connect-VIServer -Server vcenter.ad.wrsolutions.nl -User administrator@vsphere.local -Password &#8220;thisisnotforproductionenvironments&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>So now it&#8217;s time to test the script running from inside the Raspberry Pi. you can do this by downloading the .ps1 file to the Raspberry Pi (in my case i downloaded it to the my documents folder for the Pi user. And then running the following command in terminal from inside the Documents folder:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>pwsh .\/send-vSphereAlarms.ps1 -vcenter &lt;vcenter name&gt; -teamsuri &lt;teams uri&gt;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Where vCentername is the name of the venter and Teamsuri is the Webhook URL  created earlier. in my case this gave this output<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-01-55-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"575\" height=\"83\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-01-55-1.png?resize=575%2C83&#038;ssl=1\" alt=\"\" class=\"wp-image-911\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-01-55-1.png?w=575&amp;ssl=1 575w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-01-55-1.png?resize=300%2C43&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-01-55-1.png?resize=527%2C76&amp;ssl=1 527w\" sizes=\"auto, (max-width: 575px) 100vw, 575px\" \/><\/a><\/figure>\n\n\n\n<p>After that you need to create a cron job that runs the script on set times and posts the results. To do this type this command in Terminal.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>sudo crontab -e<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If it is the first time you open crontab on your Raspberry Pi you will be asked how you want to edit the cronjobs I chose nano (option 1).<\/p>\n\n\n\n<p>Scroll down to the bottom and add the script, what this line does is run the Powershell script every 5 minutes.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>*\/5 * * * *&nbsp;<meta charset=\"utf-8\">pwsh -File &#8220;\/home\/pi\/Documents\/send-vSphereAlarms.ps1 -vcenter &lt;vcenter name&gt; -teamsuri &lt;teams uri&gt;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-09-41.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"398\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-09-41.png?resize=585%2C398&#038;ssl=1\" alt=\"\" class=\"wp-image-912\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-09-41.png?w=585&amp;ssl=1 585w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-09-41.png?resize=300%2C204&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_18-09-41.png?resize=441%2C300&amp;ssl=1 441w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><\/a><\/figure>\n\n\n\n<p>So after waiting for a bit I got my first error in my Teams channel <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"932\" height=\"169\" src=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03-1024x186.png?resize=932%2C169&#038;ssl=1\" alt=\"\" class=\"wp-image-914\" srcset=\"https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?resize=1024%2C186&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?resize=300%2C55&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?resize=768%2C140&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?resize=1536%2C279&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?resize=527%2C96&amp;ssl=1 527w, https:\/\/i0.wp.com\/www.gerjon.com\/wp-content\/uploads\/2021\/12\/2021-12-23_19-16-03.png?w=1540&amp;ssl=1 1540w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/a><\/figure>\n\n\n\n<p>So there are probably a thousand way&#8217;s to solve this, and some of them better than mine. But I went for this solution because I had the stuff laying around and I wanted to see what was possible. Hope this helps someone \ud83d\ude42<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem When you have your own (VMware) Lab you don&#8217;t always have time to look at the state of the lab and if &#8216;all lights are in the green&#8217; so to say. So how cool &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[14],"tags":[],"class_list":["post-410","post","type-post","status-publish","format-standard","hentry","category-vmware"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p59CpB-6C","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gerjon.com\/index.php?rest_route=\/wp\/v2\/posts\/410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gerjon.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gerjon.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gerjon.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gerjon.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=410"}],"version-history":[{"count":6,"href":"https:\/\/www.gerjon.com\/index.php?rest_route=\/wp\/v2\/posts\/410\/revisions"}],"predecessor-version":[{"id":919,"href":"https:\/\/www.gerjon.com\/index.php?rest_route=\/wp\/v2\/posts\/410\/revisions\/919"}],"wp:attachment":[{"href":"https:\/\/www.gerjon.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gerjon.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gerjon.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}