{"id":20100,"date":"2022-10-25T09:53:09","date_gmt":"2022-10-25T07:53:09","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=20100"},"modified":"2024-09-10T15:46:58","modified_gmt":"2024-09-10T13:46:58","slug":"azure-resource-inventory-managed-instance-integration","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/","title":{"rendered":"Azure Resource Inventory: Managed instance integration"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Intro<\/h2>\n\n\n\n<p>Let me present you in this Blog post a useful tool to asset your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ARI presentation<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/microsoft\/ARI\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Resource Inventory<\/a> is an open-source project developed in PowerShell that allows you to quickly generate a complete Excel report of your Azure components.<\/p>\n\n\n\n<p>The Excel integrate dynamic pivot tables and graphics&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"700\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png\" alt=\"\" class=\"wp-image-20103\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-300x205.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-768x525.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview.png 1392w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Main dashboard<\/figcaption><\/figure>\n\n\n\n<p>&#8230; and also, an xml file to import in <a href=\"https:\/\/app.diagrams.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">Draw.io<\/a>, building a network diagram:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"405\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/DrawioImage.png\" alt=\"\" class=\"wp-image-20104\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/DrawioImage.png 800w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/DrawioImage-300x152.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/DrawioImage-768x389.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>I will let you check the prerequisites, and all command line options in the <a href=\"https:\/\/github.com\/microsoft\/ARI#readme\" target=\"_blank\" rel=\"noreferrer noopener\">README.md <\/a>project page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How it works?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Graph API<\/h3>\n\n\n\n<p>This RESTful API provides a unified programmability model that you can use to access tremendous amount of data in Microsoft Cloud service resources. (More info <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/use-the-api\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>)<\/p>\n\n\n\n<p>The ARI main script <strong>&#8220;AzureResourceInventory.ps1&#8221;<\/strong> uses between the lines 438 and 531 the AZ CLI commands that calls the graph API and returns the dataset in an optimized and paginated way (JSON format).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"529\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Untitled-1024x529.png\" alt=\"\" class=\"wp-image-20108\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Untitled-1024x529.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Untitled-300x155.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Untitled-768x397.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Untitled.png 1121w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Graph API mechanism<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Modules management<\/h3>\n\n\n\n<p>The tool comes with several folders and the most interesting one is the <strong>&#8220;Modules&#8221;<\/strong> folder which contains the integration code for each Azure resource category.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"476\" height=\"815\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Capture.png\" alt=\"\" class=\"wp-image-20119\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Capture.png 476w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Capture-175x300.png 175w\" sizes=\"auto, (max-width: 476px) 100vw, 476px\" \/><figcaption class=\"wp-element-caption\">Main modules categories<\/figcaption><\/figure>\n\n\n\n<p>As a DBA, if checking the <strong>&#8220;Data&#8221;<\/strong> folder, we will find several PowerShell scripts for IaaS, PaaS or Saas database managed services.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"539\" height=\"802\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Capture1.png\" alt=\"\" class=\"wp-image-20123\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Capture1.png 539w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/Capture1-202x300.png 202w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><figcaption class=\"wp-element-caption\">List of Data modules<\/figcaption><\/figure>\n\n\n\n<p>At the end, the tool loop through the &#8220;Modules&#8221; folder and subfolders to find any PowerShell Script, execute them sequentially and merge detailed resources information in the Excel workbook. (Reporting block of <strong>&#8220;AzureResourceInventory.ps1&#8221;<\/strong> line 1068 to 1135).<\/p>\n\n\n\n<p><mark style=\"background-color:#fcb900\" class=\"has-inline-color has-black-color\"><strong>Tips:<\/strong> If you want to exclude specific resources type from the report, just move the PowerShell scripts or certain folder from the &#8220;<strong>Modules&#8221; <\/strong>folder before launching the script in offline mode (default option, without <strong><em>-Online<\/em><\/strong> parameter).<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Managed instance integration<\/h2>\n\n\n\n<p>As a SQL Server DBA I noticed that <a href=\"https:\/\/azure.microsoft.com\/en-us\/products\/azure-sql\/managed-instance\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure SQL Managed Instances<\/a> was unfortunately missing from the list of Data services-oriented resources \ud83d\ude41<\/p>\n\n\n\n<p>So, below is the guide to include them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLMI module<\/h3>\n\n\n\n<p>Based on the <strong>SQLSERVER.ps1<\/strong> module, I created the <strong>SQLMI.ps1 <\/strong>module by defining the resource type to <em><strong>&#8216;microsoft.sql\/managedInstances&#8217;<\/strong><\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"133\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-65-1024x133.png\" alt=\"\" class=\"wp-image-20130\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-65-1024x133.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-65-300x39.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-65-768x99.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-65.png 1189w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To get the list of resource type available in Graph API, let&#8217;s check <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/governance\/resource-graph\/reference\/supported-tables-resources#resources\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a><\/p>\n\n\n\n<p>Next you have to retrieve properties related to Managed instances. Complete list of properties <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/templates\/microsoft.sql\/managedinstances?pivots=deployment-language-bicep#property-values\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-66-1024x491.png\" alt=\"\" class=\"wp-image-20131\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-66-1024x491.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-66-300x144.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-66-768x368.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-66.png 1264w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><code>Complete code below <\/code>(just save it as <strong>.\\Modules\\Data\\SQLMI.ps1<\/strong>)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\n&lt;#\n.Synopsis\nInventory for Azure SQL Server\n\n.DESCRIPTION\nThis script consolidates information for all microsoft.sql\/servers resource provider in $Resources variable. \nExcel Sheet Name: SQL MI\n\n.Link\nhttps:\/\/github.com\/microsoft\/ARI\/Modules\/Data\/SQLSERVER.ps1\n\n.COMPONENT\nThis powershell Module is part of Azure Resource Inventory (ARI)\n\n.NOTES\nVersion: 2.3.1\nFirst Release Date: 19th November, 2020\nAuthors: Claudio Merola and Renato Gregio \n\n#&gt;\n\n&lt;######## Default Parameters. Don&#039;t modify this ########&gt;\n\nparam($SCPath, $Sub, $Intag, $Resources, $Task , $File, $SmaResources, $TableStyle, $Unsupported) \n\nif ($Task -eq &#039;Processing&#039;) {\n\n    $SQLSERVERMI = $Resources | Where-Object { $_.TYPE -eq &#039;microsoft.sql\/managedInstances&#039; }\n\n    if($SQLSERVERMI)\n        {\n            $tmp = @()\n\n            foreach ($1 in $SQLSERVERMI) {\n                $ResUCount = 1\n                $sub1 = $SUB | Where-Object { $_.id -eq $1.subscriptionId }\n                $data = $1.PROPERTIES\n               \n                $Tags = if(!!($1.tags.psobject.properties)){$1.tags.psobject.properties}else{&#039;0&#039;}\n\n                $pvteps = if(!($1.privateEndpointConnections)) {&#x5B;pscustomobject]@{id = &#039;NONE&#039;}} else {$1.privateEndpointConnections | Select-Object @{Name=&quot;id&quot;;Expression={$_.id.split(&quot;\/&quot;)&#x5B;8]}}}\n\n                foreach ($pvtep in $pvteps) {\n                    foreach ($Tag in $Tags) {\n                        $obj = @{\n                            &#039;ID&#039;                    = $1.id;\n                            &#039;Subscription&#039;          = $sub1.Name;\n                            &#039;Resource Group&#039;        = $1.RESOURCEGROUP;\n                            &#039;Name&#039;                  = $1.NAME;\n                            &#039;Location&#039;              = $1.LOCATION;\n                            &#039;SkuName&#039;               = $1.sku.Name;\n                            &#039;SkuCapacity&#039;           = $1.sku.capacity;\n                            &#039;SkuTier&#039;               = $1.sku.tier;\n                            &#039;Admin Login&#039;           = $data.adminitrators.login;\n                            &#039;AzureADOnlyAuthentication&#039;           = $data.adminitrators.azureADOnlyAuthentication;\n                            &#039;Private Endpoint&#039;      = $pvtep.id;\n                            &#039;FQDN&#039;                  = $data.fullyQualifiedDomainName;\n                            &#039;Public Network Access&#039; = $data.publicDataEndpointEnabled;\n                            &#039;licenseType&#039;           = $data.licenseType;\n                            &#039;managedInstanceCreateMode&#039;               = $data.managedInstanceCreateMode;\n                            &#039;Resource U&#039;            = $ResUCount;\n                            &#039;Zone Redundant&#039;        = $data.zoneRedundant;\n                            &#039;Tag Name&#039;              = &#x5B;string]$Tag.Name;\n                            &#039;Tag Value&#039;             = &#x5B;string]$Tag.Value\n                        }\n                        $tmp += $obj\n                        if ($ResUCount -eq 1) { $ResUCount = 0 } \n                    }     \n                }          \n            }\n            $tmp\n        }\n}\nelse {\n    if ($SmaResources.SQLMI) {\n\n        $TableName = (&#039;SQLMITable_&#039;+($SmaResources.SQLMI.id | Select-Object -Unique).count)\n        $Style = New-ExcelStyle -HorizontalAlignment Center -AutoSize -NumberFormat 0\n\n        $condtxt = @()\n        $condtxt += New-ConditionalText FALSE -Range J:J\n        $condtxt += New-ConditionalText FALSO -Range J:J\n        $condtxt += New-ConditionalText FAUX -Range J:J\n        $condtxt += New-ConditionalText NONE -Range J:J\n        $condtxt += New-ConditionalText Enabled -Range L:L\n        $condtxt += New-ConditionalText VRAI -Range L:L\n\n        $Exc = New-Object System.Collections.Generic.List&#x5B;System.Object]\n        $Exc.Add(&#039;Subscription&#039;)\n        $Exc.Add(&#039;Resource Group&#039;)\n        $Exc.Add(&#039;Name&#039;)\n        $Exc.Add(&#039;Location&#039;)\n        $Exc.Add(&#039;SkuName&#039;)\n        $Exc.Add(&#039;SkuCapacity&#039;)\n        $Exc.Add(&#039;SkuTier&#039;)\n        $Exc.Add(&#039;Admin Login&#039;)\n        $Exc.Add(&#039;ActiveDirectoryOnlyAuthentication&#039;)\n        $Exc.Add(&#039;Private Endpoint&#039;)\n        $Exc.Add(&#039;FQDN&#039;)\n        $Exc.Add(&#039;Public Network Access&#039;)\n        $Exc.Add(&#039;licenseType&#039;)\n        $Exc.Add(&#039;managedInstanceCreateMode&#039;)\n        $Exc.Add(&#039;Zone Redundant&#039;)\n        if($InTag)\n            {\n                $Exc.Add(&#039;Tag Name&#039;)\n                $Exc.Add(&#039;Tag Value&#039;) \n            }\n\n        $ExcelVar = $SmaResources.SQLMI\n\n        $ExcelVar | \n        ForEach-Object { &#x5B;PSCustomObject]$_ } | Select-Object -Unique $Exc | \n        Export-Excel -Path $File -WorksheetName &#039;SQL MI&#039; -AutoSize -MaxAutoSizeRows 100 -TableName $TableName -TableStyle $tableStyle -ConditionalText $condtxt -Style $Style\n\n    }\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">SQLMI DBs module<\/h3>\n\n\n\n<p>To complete the Azure SQL MI assessment, I also included the Database information for each Managed instance following the same principle as before:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Replace GRAPH resource type by <strong>&#8216;microsoft.sql\/managedinstances\/databases&#8217;<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"106\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-67-1024x106.png\" alt=\"\" class=\"wp-image-20137\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-67-1024x106.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-67-300x31.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-67-768x80.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-67.png 1078w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>And fill in the database information properties according to your needs. Complete list of properties <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/templates\/microsoft.sql\/managedinstances\/databases?pivots=deployment-language-bicep#managedinstancesdatabases\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"274\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-68-1024x274.png\" alt=\"\" class=\"wp-image-20138\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-68-1024x274.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-68-300x80.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-68-768x205.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-68.png 1313w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><code>Complete code below <\/code>(just save it as <strong>.\\Modules\\Data\\SQLMIDB.ps1<\/strong>)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\n&lt;#\n.Synopsis\nInventory for Azure SQL Server\n\n.DESCRIPTION\nThis script consolidates information for all microsoft.sql\/servers resource provider in $Resources variable. \nExcel Sheet Name: SQL MI DBs\n\n.Link\nhttps:\/\/github.com\/microsoft\/ARI\/Modules\/Data\/SQLSERVER.ps1\n\n.COMPONENT\nThis powershell Module is part of Azure Resource Inventory (ARI)\n\n.NOTES\nVersion: 2.3.1\nFirst Release Date: 19th November, 2020\nAuthors: Claudio Merola and Renato Gregio \n\n#&gt;\n\n&lt;######## Default Parameters. Don&#039;t modify this ########&gt;\n\nparam($SCPath, $Sub, $Intag, $Resources, $Task , $File, $SmaResources, $TableStyle, $Unsupported) \n\nif ($Task -eq &#039;Processing&#039;) {\n\n    $SQLSERVERMIDB = $Resources | Where-Object { $_.TYPE -eq &#039;microsoft.sql\/managedinstances\/databases&#039; }\n\n    if($SQLSERVERMIDB)\n        {\n            $tmp = @()\n\n            foreach ($1 in $SQLSERVERMIDB) {\n                $ResUCount = 1\n                $sub1 = $SUB | Where-Object { $_.id -eq $1.subscriptionId }\n                $data = $1.PROPERTIES\n               \n                $Tags = if(!!($1.tags.psobject.properties)){$1.tags.psobject.properties}else{&#039;0&#039;}\n\n                $pvteps = if(!($data.privateEndpointConnections)) {&#x5B;pscustomobject]@{id = &#039;NONE&#039;}} else {$data.privateEndpointConnections | Select-Object @{Name=&quot;id&quot;;Expression={$_.id.split(&quot;\/&quot;)&#x5B;10]}}}\n\n                foreach ($pvtep in $pvteps) {\n                    foreach ($Tag in $Tags) {\n                        $obj = @{\n                            &#039;ID&#039;                    = $1.id;\n                            &#039;Subscription&#039;          = $sub1.Name;\n                            &#039;MI parent&#039;        = $1.id.split(&quot;\/&quot;)&#x5B;8];\n                            &#039;Name&#039;                  = $1.NAME;\n                            &#039;Collation&#039;              = $data.collation;\n                            &#039;CreationDate&#039;               = $data.creationDate;\n                            &#039;DefaultSecondaryLocation&#039;               = $data.defaultSecondaryLocation;\n                            &#039;Status&#039;           = $data.status;\n                            &#039;Tag Name&#039;              = &#x5B;string]$Tag.Name;\n                            &#039;Tag Value&#039;             = &#x5B;string]$Tag.Value\n                        }\n                        $tmp += $obj\n                        if ($ResUCount -eq 1) { $ResUCount = 0 } \n                    }     \n                }          \n            }\n            $tmp\n        }\n}\nelse {\n    if ($SmaResources.SQLMIDB) {\n\n        $TableName = (&#039;SQLMIDBTable_&#039;+($SmaResources.SQLMIDB.id | Select-Object -Unique).count)\n        $Style = New-ExcelStyle -HorizontalAlignment Center -AutoSize -NumberFormat 0\n\n        $condtxt = @()\n        $condtxt += New-ConditionalText FALSE -Range J:J\n        $condtxt += New-ConditionalText FALSO -Range J:J\n        $condtxt += New-ConditionalText FAUX -Range J:J\n        $condtxt += New-ConditionalText offline -Range G:G\n\n        $Exc = New-Object System.Collections.Generic.List&#x5B;System.Object]\n        $Exc.Add(&#039;Subscription&#039;)\n        $Exc.Add(&#039;MI parent&#039;)\n        $Exc.Add(&#039;Name&#039;)\n        $Exc.Add(&#039;Collation&#039;)\n        $Exc.Add(&#039;CreationDate&#039;)\n        $Exc.Add(&#039;DefaultSecondaryLocation&#039;)\n        $Exc.Add(&#039;Status&#039;)\n        if($InTag)\n            {\n                $Exc.Add(&#039;Tag Name&#039;)\n                $Exc.Add(&#039;Tag Value&#039;) \n            }\n\n        $ExcelVar = $SmaResources.SQLMIDB\n\n        $ExcelVar | \n        ForEach-Object { &#x5B;PSCustomObject]$_ } | Select-Object -Unique $Exc | \n        Export-Excel -Path $File -WorksheetName &#039;SQL MI DBs&#039; -AutoSize -MaxAutoSizeRows 100 -TableName $TableName -TableStyle $tableStyle -ConditionalText $condtxt -Style $Style\n\n    }\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Results<\/h3>\n\n\n\n<p>After putting the PowerShell files in the right place, you can run the following extraction command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\\AzureResourceInventory.ps1\" -SecurityCenter -TenantID abcdefg1234-4567-1234-abcd-xxxxxxxxxxxx  -Diagram -QuotaUsage<\/code><\/pre>\n\n\n\n<p>And bingo!! I can see my MI on my subscriptions report<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"515\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-70-1024x515.png\" alt=\"\" class=\"wp-image-20149\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-70-1024x515.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-70-300x151.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-70-768x386.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-70.png 1532w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The dashboard references the number of MIs, and the specific sheets contain the details of the instance and the database.<\/figcaption><\/figure>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-71-1024x39.png\" alt=\"\" class=\"wp-image-20150\" width=\"1345\" height=\"51\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-71-1024x39.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-71-300x11.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-71-768x29.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-71-1536x58.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-71.png 1865w\" sizes=\"auto, (max-width: 1345px) 100vw, 1345px\" \/><figcaption class=\"wp-element-caption\">SQL MI sheet<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-72-1024x64.png\" alt=\"\" class=\"wp-image-20160\" width=\"1024\" height=\"64\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-72-1024x64.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-72-300x19.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-72-768x48.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-72-1536x96.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/image-72.png 1772w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">SQL MI DB list<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Such tool can be helpful for regular audit and to track the evolution of the configuration and use of Azure resources. In addition, the report not only include the resource state, but also advices, quotas and security threats of your Cloud environment.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pros<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Centralized dashboard with all relevant information. Instead of using the Azure Web portal and check the resource-by-resource reports.<\/li>\n\n\n\n<li>Extraction time very fast with GRAPH API.<\/li>\n\n\n\n<li>Import-Excel PowerShell module to allow you generate Excel file without Office installed.<\/li>\n\n\n\n<li>Project still active and regularly maintained.<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Constraints<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Some bugs with the number of inventoried resources that did not correspond to reality.<\/li>\n\n\n\n<li>Network diagram to improve.<\/li>\n\n\n\n<li>Time consuming if you need to personalize the tool (Extras, Modules &#8230;)<\/li>\n<\/ol>\n\n\n\n<p>I also pushed a pull request on the ARI project to integrate the Azure SQL MI module. So, you will have to wait for these modifications to be validated\/corrected to be able to use this module in the official version. And who knows? maybe some new features will be released before then.<\/p>\n\n\n\n<p> To be continued\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro Let me present you in this Blog post a useful tool to asset your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report. ARI presentation Azure Resource Inventory is an open-source project developed in PowerShell that allows you to quickly generate a complete [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3271,955,99],"tags":[1338,2731,2595,1540],"type_dbi":[],"class_list":["post-20100","post","type-post","status-publish","format-standard","hentry","category-azure","category-cloud","category-sql-server","tag-azure","tag-inventory-2","tag-powershell-2","tag-sql-managed-instance"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Azure Resource Inventory: Managed instance integration - dbi Blog<\/title>\n<meta name=\"description\" content=\"Let me present you in this blogpost a useful tool to assets your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Resource Inventory: Managed instance integration\" \/>\n<meta property=\"og:description\" content=\"Let me present you in this blogpost a useful tool to assets your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-25T07:53:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-10T13:46:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"Azure Resource Inventory: Managed instance integration\",\"datePublished\":\"2022-10-25T07:53:09+00:00\",\"dateModified\":\"2024-09-10T13:46:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\"},\"wordCount\":685,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png\",\"keywords\":[\"Azure\",\"inventory\",\"PowerShell\",\"SQL Managed Instance\"],\"articleSection\":[\"Azure\",\"Cloud\",\"SQL Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\",\"name\":\"Azure Resource Inventory: Managed instance integration - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png\",\"datePublished\":\"2022-10-25T07:53:09+00:00\",\"dateModified\":\"2024-09-10T13:46:58+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"description\":\"Let me present you in this blogpost a useful tool to assets your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview.png\",\"width\":1392,\"height\":952},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Azure Resource Inventory: Managed instance integration\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Azure Resource Inventory: Managed instance integration - dbi Blog","description":"Let me present you in this blogpost a useful tool to assets your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/","og_locale":"en_US","og_type":"article","og_title":"Azure Resource Inventory: Managed instance integration","og_description":"Let me present you in this blogpost a useful tool to assets your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.","og_url":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/","og_site_name":"dbi Blog","article_published_time":"2022-10-25T07:53:09+00:00","article_modified_time":"2024-09-10T13:46:58+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png","type":"","width":"","height":""}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"Azure Resource Inventory: Managed instance integration","datePublished":"2022-10-25T07:53:09+00:00","dateModified":"2024-09-10T13:46:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/"},"wordCount":685,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png","keywords":["Azure","inventory","PowerShell","SQL Managed Instance"],"articleSection":["Azure","Cloud","SQL Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/","url":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/","name":"Azure Resource Inventory: Managed instance integration - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview-1024x700.png","datePublished":"2022-10-25T07:53:09+00:00","dateModified":"2024-09-10T13:46:58+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"description":"Let me present you in this blogpost a useful tool to assets your Azure environment and in a second step show you how to add Azure SQL managed instance in the assessment report.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/10\/ARIv2-Overview.png","width":1392,"height":952},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/azure-resource-inventory-managed-instance-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Azure Resource Inventory: Managed instance integration"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/20100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=20100"}],"version-history":[{"count":19,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/20100\/revisions"}],"predecessor-version":[{"id":34670,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/20100\/revisions\/34670"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=20100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=20100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=20100"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=20100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}