diff --git a/specs/Data-Gateway.json b/specs/Data-Gateway.json index 0e52516..84f2d71 100644 --- a/specs/Data-Gateway.json +++ b/specs/Data-Gateway.json @@ -7,14 +7,7 @@ "name": "correlationId", "required": true, "schema": { - "examples": [ - "1d71e0fe-6e4a-464d-a690-80addf3bda55" - ], - "format": "uuid", - "maxLength": 36, - "minLength": 36, - "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", - "type": "string" + "$ref": "#/components/schemas/Uuid" }, "examples": { "valid correlation Id": { @@ -30,21 +23,7 @@ "name": "tenantId", "required": true, "schema": { - "examples": [ - "b2fd105a-2594-437e-b934-1a62a51c28b4" - ], - "format": "uuid", - "maxLength": 36, - "minLength": 36, - "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", - "type": "string" - }, - "examples": { - "valid tenant Id": { - "summary": "Example Valid Tenant ID", - "description": "An example of a valid tenant ID in type UUID string.", - "value": "1d71e0fe-6e4a-464d-a690-80addf3bda55" - } + "$ref": "#/components/schemas/Uuid" } }, "channelName": { @@ -144,11 +123,7 @@ "name": "dateStart", "required": false, "schema": { - "examples": [ - "2025-01-01T00:00:00Z" - ], - "format": "date-time", - "type": "string" + "$ref": "#/components/schemas/DateTimeStringType" }, "examples": { "Valid start date": { @@ -164,11 +139,7 @@ "name": "dateEnd", "required": false, "schema": { - "examples": [ - "2025-02-05T23:59:59Z" - ], - "format": "date-time", - "type": "string" + "$ref": "#/components/schemas/DateTimeStringType" }, "examples": { "Valid end date": { @@ -177,6 +148,22 @@ "value": "2025-02-05T23:59:59Z" } } + }, + "accountId": { + "description": "The customer account identifier (object ID) for the specified record.", + "in": "path", + "name": "accountId", + "required": true, + "schema": { + "$ref": "#/components/schemas/Uuid" + }, + "examples": { + "Valid Account ID": { + "summary": "Example Valid Account ID", + "description": "An example of a valid account ID in type UUID string.", + "value": "9b2c13f4-6e7a-4e8e-9c9a-a5b9c3f6ad12" + } + } } }, "responses": { @@ -203,6 +190,54 @@ } }, "schemas": { + "Uuid": { + "title": "Unique identifier", + "type": "string", + "format": "uuid", + "description": "36 characters long unique identifier (RFC 4122)", + "maxLength": 36, + "minLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", + "examples": [ + "fd9a6a53-594d-41aa-950a-b21ff41d4688" + ] + }, + "NullableUuid": { + "title": "Nullable Unique identifier", + "type": [ + "string", + "null" + ], + "format": "uuid", + "description": "36 characters long unique identifier (RFC 4122) or null", + "maxLength": 36, + "minLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", + "examples": [ + "fd9a6a53-594d-41aa-950a-b21ff41d4688", + null + ] + }, + "DateTimeStringType": { + "title": "Date Time String In ISO8601 Format", + "type": "string", + "format": "date-time", + "examples": [ + "2026-01-01T00:00:00Z" + ] + }, + "NullableDateTimeStringType": { + "title": "Nullable Date Time String In ISO8601 Format", + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2026-01-01T00:00:00Z", + null + ] + }, "Core.HealthReport": { "description": "Health report that indicates if a service is down or not that the data gateway relies on.", "properties": { @@ -227,6 +262,13 @@ ], "type": "boolean" }, + "cloudMatrix": { + "description": "Flag that indicates if the Cloud Matrix system is down (`false`) or not (`true`). False indicate the service is not working, true indicates the service is working.", + "examples": [ + false + ], + "type": "boolean" + }, "database": { "description": "Flag that indicates if the ORM (Database) system is down (`false`) or not (`true`). False indicate the service is not working, true indicates the service is working.", "examples": [ @@ -248,6 +290,7 @@ "authClient": false, "authServer": true, "bulkStorage": true, + "cloudMatrix": true, "database": false } ] @@ -2301,1581 +2344,4476 @@ "description": "Contains user and device records included in the architecture report, detailing assigned services, licenses, consumed services, and related metadata for each principal.", "$ref": "#/components/schemas/Report.PrincipalData", "title": "Architecture Report - Principal Data" - } - }, - "securitySchemes": { - "EntraID": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "The Access Token from Entra ID. Please note required scopes (permissions) in each endpoint." - } - } - }, - "externalDocs": { - "description": "Official Documentation", - "url": "https://docs.shilab.com" - }, - "info": { - "contact": { - "email": "elliot_huffman@shi.com", - "name": "SHI - Lab" - }, - "description": "Collects data from the various SHI Lab products and makes it available in a standardized way.", - "title": "SHI - Data Gateway", - "version": "3.1.0" - }, - "openapi": "3.1.1", - "paths": { - "/Api/Core/Health": { - "get": { - "description": "Check the health of the various components of the data gateway and report back. Useful for automated health probing.", - "operationId": "/Api/ServiceHealth/Get", - "responses": { - "201": { - "description": "Service is operational!" + }, + "CloudMatrix.UserProfileDetailEntry": { + "title": "Cloud Matrix - User Profile Detail Entry", + "type": "object", + "description": "A single name/value pair for profile details, allowing for extensibility in the future.", + "properties": { + "name": { + "type": "string", + "description": "Name of the detail field.", + "examples": [ + "Profile Name" + ] }, - "500": { - "description": "Service has a failure described with following report.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Core.HealthReport" - }, - "examples": { - "Auth system failure": { - "summary": "Example Health Report - Auth Failure", - "description": "An example health report returned indicates the authentication components are not working.", - "value": { - "authClient": false, - "authServer": false, - "bulkStorage": true, - "database": true - } - }, - "Storage system failure": { - "summary": "Example Health Report - Storage Failure", - "description": "An example health report returned indicates the storage components are not working.", - "value": { - "authClient": true, - "authServer": true, - "bulkStorage": false, - "database": false - } - } + "value": { + "type": "string", + "description": "Value of the detail field.", + "examples": [ + "Knowledge Worker" + ] + } + }, + "required": [ + "name", + "value" + ], + "additionalProperties": false, + "examples": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } + ] + }, + "CloudMatrix.UserProfileDetail": { + "title": "Cloud Matrix - User Profile Detail", + "type": "object", + "description": "A section of related profile details grouped under a common header.", + "properties": { + "name": { + "type": "string", + "description": "Section header name for this group of profile details.", + "examples": [ + "Profile Details" + ] + }, + "values": { + "type": "array", + "description": "Array of name/value pairs for the details under this section.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.UserProfileDetailEntry" + }, + "examples": [ + [ + { + "name": "Profile Name", + "value": "Knowledge Worker" } - } - } + ] + ] } }, - "tags": [ - "Core System" + "required": [ + "name", + "values" ], - "security": [], - "summary": "Health of the Service for Probing" - } - }, - "/Api/LicenseReport": { - "post": { - "description": "Store the results of a license analytics run.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/LicenseReport/Post", - "requestBody": { - "content": { - "application/json": { - "examples": { - "License Report": { - "description": "Sample, truncated report from an example customer environment. The request body is the License Report that to be stored.", - "summary": "Example License Report Request", - "value": { - "availableLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, - "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, - "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, - "d76878d6-1495-4243-a334-a82bb9818cd0": 500 - }, - "correlation": { - "auditTenantAccount": "somebodyThatI@UsedToKnow.com" - }, - "licenseData": { - "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { - "assignedLicense": { - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, - "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { - "Something Here": true, - "Other Obscure feature": false - } - } - }, - "04e88835-771a-482b-9d6f-ba06c32cbb67": { - "assignedLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "9d3603de-b378-4c4a-adcc-ee133cbef914": null, - "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { - "Something Here": true, - "Other Obscure feature": false - } - } - } + "additionalProperties": false, + "examples": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } + ] + } + ] + }, + "CloudMatrix.UserProfile": { + "title": "Cloud Matrix - User Profile", + "type": "object", + "description": "A named user profile with a set of detail rows.", + "properties": { + "id": { + "$ref": "#/components/schemas/Uuid", + "description": "Unique identifier for the user profile." + }, + "name": { + "type": "string", + "description": "User profile display name.", + "examples": [ + "Information Worker" + ] + }, + "details": { + "type": "array", + "description": "Array of section blocks that group related fields under a header.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.UserProfileDetail" + }, + "examples": [ + [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" } - } - }, - "Ignorant License Report Request": { - "description": "Clueless dev trying to automate this application without reading the docs. RTFM!", - "summary": "Ignorant License Report Request", - "value": {} + ] } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV0" - } - } + ] + ] } }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "License Report": { - "description": "A sample, truncated report from a customer environment. The response returns the same report as provided in the request input.", - "summary": "Example of License Report Stored.", - "value": { - "availableLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, - "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, - "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, - "d76878d6-1495-4243-a334-a82bb9818cd0": 500 - }, - "correlation": { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db" - }, - "licenseData": { - "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { - "assignedLicense": { - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, - "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { - "Something Here": true, - "Other Obscure feature": false - } - } - }, - "04e88835-771a-482b-9d6f-ba06c32cbb67": { - "assignedLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "9d3603de-b378-4c4a-adcc-ee133cbef914": null, - "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { - "Something Here": true, - "Other Obscure feature": false - } - } - } - } - } + "required": [ + "id", + "name", + "details" + ], + "additionalProperties": false, + "examples": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV0" - } + ] } + ] + } + ] + }, + "CloudMatrix.YearConfig": { + "title": "Cloud Matrix - Year Config", + "type": "object", + "description": "Standardized configuration shape for a year phase.", + "properties": { + "value": { + "type": [ + "string", + "null" + ], + "description": "Assessment value label for this year phase (for example, \"Full\") or null.", + "examples": [ + "Full", + null + ] + }, + "userProfileIds": { + "description": "Associated user profile IDs or null.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/Uuid" }, - "description": "OK" + "examples": [ + [ + "0d8e0c84-c0b4-4459-8b23-11ccff5ae319" + ], + null + ] }, - "400": { - "$ref": "#/components/responses/400" + "isDeepDive": { + "type": "boolean", + "description": "Indicates deep-dive applicability.", + "examples": [ + true + ] }, - "401": { - "$ref": "#/components/responses/401" + "altProduct": { + "type": [ + "string", + "null" + ], + "description": "Alternate product, if any, or null.", + "examples": [ + "Other Product", + null + ] }, - "403": { - "$ref": "#/components/responses/403" + "publisher": { + "type": [ + "string", + "null" + ], + "description": "Publisher label, if any, or null.", + "examples": [ + "Microsoft", + "Google", + "Apple", + "Slack", + "Zoom", + "Adobe", + "Salesforce", + "Other", + null + ] + }, + "useCase": { + "type": [ + "string", + "null" + ], + "description": "Use-case descriptor, if any, or null.", + "examples": [ + "Augment", + "In place of", + "Will be deprecated", + null + ] } }, - "tags": [ - "License Analytics" + "required": [ + "value", + "userProfileIds", + "isDeepDive", + "altProduct", + "publisher", + "useCase" ], - "summary": "Store License Analytics Data" - } - }, - "/Api/LicenseReport/Correlation": { - "get": { - "description": "Retrieves the list of correlation records for the authenticated tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/LicenseReport/Correlation/Get", - "parameters": [ - { - "$ref": "#/components/parameters/dateStart" - }, + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/dateEnd" + "value": "Full", + "userProfileIds": [ + "0d8e0c84-c0b4-4459-8b23-11ccff5ae319" + ], + "isDeepDive": true, + "altProduct": "Other Product", + "publisher": "Microsoft", + "useCase": "Augment" } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "Example Correlation Records": { - "description": "Sample list of correlation records for the current authenticated tenant.", - "summary": "Available Correlation Records", - "value": [ - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-08-01T21:14:45.026Z", - "updatedAt": "2024-08-01T21:14:45.026Z" - }, - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-07-25T21:14:45.026Z", - "updatedAt": "2024-07-25T21:14:45.026Z" - } - ] - } - }, - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/Report.CorrelationRecord" - }, - "examples": [ - [ - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-08-01T21:14:45.026Z", - "updatedAt": "2024-08-01T21:14:45.026Z" - }, - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-07-25T21:14:45.026Z", - "updatedAt": "2024-07-25T21:14:45.026Z" - } - ] - ] - } - } - }, - "description": "OK" + ] + }, + "CloudMatrix.AssessmentMetadata": { + "title": "Cloud Matrix - Assessment Metadata", + "type": "object", + "description": "Descriptive and time-phased configuration for an assessment element.", + "properties": { + "name": { + "type": "string", + "description": "Element name.", + "examples": [ + "M365 Apps for Enterprise - Mobile/Online" + ] }, - "401": { - "$ref": "#/components/responses/401" + "breakoutId": { + "$ref": "#/components/schemas/NullableUuid", + "description": "Optional breakout identifier, may be null." }, - "403": { - "$ref": "#/components/responses/403" + "category": { + "type": "string", + "description": "Top-level category name.", + "examples": [ + "USER EXPERIENCE" + ] + }, + "subCategory": { + "type": "string", + "description": "Sub-category name.", + "examples": [ + "Productivity" + ] + }, + "help": { + "type": "string", + "description": "Additional context or guidance text for this element.", + "examples": [ + "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc." + ] + }, + "licensingProduct": { + "type": "string", + "description": "Licensing product this element maps to.", + "examples": [ + "M365 Mobile Apps" + ] + }, + "licensingProductHelp": { + "type": "string", + "description": "Help text for the licensing product.", + "examples": [ + "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time." + ] + }, + "isAddon": { + "type": "boolean", + "description": "Indicates if this element is an add-on.", + "examples": [ + false + ] + }, + "isStrategicAddon": { + "type": "boolean", + "description": "Indicates if this element is a strategic add-on.", + "examples": [ + false + ] + }, + "isTenantBased": { + "type": "boolean", + "description": "Indicates if this element is tenant-based.", + "examples": [ + false + ] + }, + "availability": { + "type": [ + "string", + "null" + ], + "description": "Availability status of this element.", + "examples": [ + "Available", + null + ] + }, + "notes": { + "type": [ + "string", + "null" + ], + "description": "Free-form notes.", + "examples": [ + "Some notes", + null + ] + }, + "startYearConfig": { + "$ref": "#/components/schemas/CloudMatrix.YearConfig" + }, + "yearPlusOneConfig": { + "$ref": "#/components/schemas/CloudMatrix.YearConfig" + }, + "yearPlusTwoConfig": { + "$ref": "#/components/schemas/CloudMatrix.YearConfig" + }, + "yearPlusThreeConfig": { + "$ref": "#/components/schemas/CloudMatrix.YearConfig" + }, + "sourceValue": { + "type": "number", + "description": "Source or baseline numeric value.", + "examples": [ + 1.0 + ] } }, - "tags": [ - "License Analytics" + "required": [ + "name", + "breakoutId", + "category", + "subCategory", + "help", + "licensingProduct", + "licensingProductHelp", + "isAddon", + "isStrategicAddon", + "isTenantBased", + "availability", + "notes", + "startYearConfig", + "yearPlusOneConfig", + "yearPlusTwoConfig", + "yearPlusThreeConfig", + "sourceValue" ], - "summary": "Retrieve the List of Correlation Records" - } - }, - "/Api/LicenseReport/Correlation/Tenant/{tenantId}": { - "get": { - "description": "Retrieves the list of correlation records for the specified tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/LicenseReport/Correlation/Tenant/:tenantId/Get", - "parameters": [ - { - "$ref": "#/components/parameters/tenantId" - }, - { - "$ref": "#/components/parameters/dateStart" - }, + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/dateEnd" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "Example Correlation Records": { - "description": "Sample list of correlation records for the specified tenant.", - "summary": "Available Correlation Records", - "value": [ - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-08-01T21:14:45.026Z", - "updatedAt": "2024-08-01T21:14:45.026Z" - }, - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-07-25T21:14:45.026Z", - "updatedAt": "2024-07-25T21:14:45.026Z" - } - ] - } - }, - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/Report.CorrelationRecord" - }, - "examples": [ - [ - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-08-01T21:14:45.026Z", - "updatedAt": "2024-08-01T21:14:45.026Z" - }, - { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", - "createdAt": "2024-07-25T21:14:45.026Z", - "updatedAt": "2024-07-25T21:14:45.026Z" - } - ] - ] - } - } + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null }, - "description": "OK" - }, - "400": { - "$ref": "#/components/responses/400" + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + } + ] + }, + "CloudMatrix.AssessmentProfile": { + "title": "Cloud Matrix - Assessment Profile", + "type": "object", + "description": "A named profile value attached to the element.", + "properties": { + "name": { + "type": "string", + "description": "Profile display name.", + "examples": [ + "Microsoft E5" + ] }, - "401": { - "$ref": "#/components/responses/401" + "abbreviation": { + "type": [ + "string", + "null" + ], + "description": "Short abbreviation for the profile.", + "examples": [ + "ME5P", + null + ] }, - "403": { - "$ref": "#/components/responses/403" + "value": { + "type": [ + "number", + "null" + ], + "description": "Numeric value or null if unset.", + "examples": [ + 5.0, + null + ] } }, - "tags": [ - "License Analytics" + "required": [ + "name", + "abbreviation", + "value" ], - "summary": "Retrieve the List of Correlation Records for Specified Tenant" - } - }, - "/Api/LicenseReport/Correlation/{correlationId}/Data": { - "get": { - "description": "Retrieves the full license report for the specified correlation ID in the authenticated tenant. The license report contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/LicenseReport/Correlation/:correlationId/Data/Get", - "parameters": [ + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/correlationId" + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "Example License Report": { - "description": "Sample, truncated license report from an example customer environment for a correlation record of the current authenticated tenant.", - "summary": "Example License Report", - "value": { - "availableLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, - "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, - "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, - "d76878d6-1495-4243-a334-a82bb9818cd0": 500 - }, - "correlation": { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db" - }, - "licenseData": { - "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { - "assignedLicense": { - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, - "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { - "Something Here": true, - "Other Obscure feature": false - } - } - }, - "04e88835-771a-482b-9d6f-ba06c32cbb67": { - "assignedLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "9d3603de-b378-4c4a-adcc-ee133cbef914": null, - "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { - "Something Here": true, - "Other Obscure feature": false - } - } - } - } - } - } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV0" - } - } - }, - "description": "OK" - }, - "400": { - "$ref": "#/components/responses/400" + ] + }, + "CloudMatrix.Product": { + "title": "Cloud Matrix - Product", + "type": "object", + "description": "A single product mapping with value and comment.", + "properties": { + "product": { + "type": "string", + "description": "Product name.", + "examples": [ + "PS" + ] }, - "401": { - "$ref": "#/components/responses/401" + "value": { + "type": "string", + "description": "Product value string (e.g., tier or flag).", + "examples": [ + "na" + ] }, - "403": { - "$ref": "#/components/responses/403" + "comment": { + "type": [ + "string", + "null" + ], + "description": "Comment or notes string.", + "examples": [ + "Example comment", + null + ] } }, - "tags": [ - "License Analytics" + "required": [ + "product", + "value", + "comment" ], - "summary": "Retrieve the Specified License Report" - }, - "delete": { - "description": "Deletes the full license report for the specified correlation ID.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/LicenseReport/Correlation/:correlationId/Data/delete", - "parameters": [ + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/correlationId" + "product": "E5", + "value": "available", + "comment": "" } - ], - "responses": { - "201": { - "description": "Deleted successfully" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" + ] + }, + "CloudMatrix.AssessmentFeature": { + "title": "Cloud Matrix - Assessment Feature", + "type": "object", + "description": "Licensing block with product-level entries.", + "properties": { + "licensing": { + "type": [ + "string", + "null" + ], + "description": "Licensing descriptor string.", + "examples": [ + "O365", + null + ] }, - "403": { - "$ref": "#/components/responses/403" + "products": { + "type": "array", + "description": "Mapped product entries under this licensing.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.Product" + }, + "examples": [ + [ + { + "product": "E5", + "value": "available", + "comment": "" + } + ] + ] } }, - "tags": [ - "License Analytics" + "required": [ + "licensing", + "products" ], - "summary": "Delete the Specified License Report for the Currently Authenticated Tenant." - } - }, - "/Api/LicenseReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { - "get": { - "description": "Retrieves the full license report for the specified correlation ID and tenant. The license report contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", - "parameters": [ - { - "$ref": "#/components/parameters/correlationId" - }, + "examples": [ { - "$ref": "#/components/parameters/tenantId" + "licensing": "O365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" + } + ] } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "License Report": { - "description": "Sample, truncated report from an example customer environment for a correlation record of the specified tenant.", - "summary": "Example License Report", - "value": { - "availableLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, - "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, - "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, - "d76878d6-1495-4243-a334-a82bb9818cd0": 500 - }, - "correlation": { - "auditTenantAccount": "somebodyThatI@example.com", - "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", - "reportTenantAccount": "usedToKnow@example.com", - "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db" - }, - "licenseData": { - "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { - "assignedLicense": { - "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, - "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { - "Something Here": true, - "Other Obscure feature": false - } - } - }, - "04e88835-771a-482b-9d6f-ba06c32cbb67": { - "assignedLicense": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": null - }, - "assignedService": { - "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, - "d76878d6-1495-4243-a334-a82bb9818cd0": null - }, - "consumedService": { - "9d3603de-b378-4c4a-adcc-ee133cbef914": null, - "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { - "Something Here": true, - "Other Obscure feature": false - } - } - } - } + ] + }, + "CloudMatrix.Assessment": { + "title": "Cloud Matrix - Assessment Element", + "type": "object", + "description": "A single assessment element with metadata, profile values, and features.", + "properties": { + "metadata": { + "$ref": "#/components/schemas/CloudMatrix.AssessmentMetadata" + }, + "profiles": { + "type": "array", + "description": "Profile scores or values associated with this element.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.AssessmentProfile" + }, + "examples": [ + [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ] + ] + }, + "features": { + "type": "array", + "description": "Feature licensing and product mappings for this element.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.AssessmentFeature" + }, + "examples": [ + [ + { + "licensing": "O365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" } - } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV0" + ] } - } + ] + ] + } + }, + "required": [ + "metadata", + "profiles", + "features" + ], + "additionalProperties": false, + "examples": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 }, - "description": "OK" + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + }, + "CloudMatrix.Costs": { + "title": "Cloud Matrix - Costs", + "type": "object", + "description": "Cost fields for a current provider.", + "properties": { + "monthlyCost": { + "type": "number", + "description": "Monthly cost numeric value.", + "examples": [ + 5001 + ] }, - "400": { - "$ref": "#/components/responses/400" + "annualCost": { + "type": "number", + "description": "Annual cost numeric value.", + "examples": [ + 5002 + ] }, - "401": { - "$ref": "#/components/responses/401" + "contractValue": { + "type": "number", + "description": "Total contract value numeric amount.", + "examples": [ + 5003 + ] + } + }, + "required": [ + "monthlyCost", + "annualCost", + "contractValue" + ], + "additionalProperties": false, + "examples": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ] + }, + "CloudMatrix.Provider": { + "title": "Cloud Matrix - Provider", + "type": "object", + "description": "Current provider contract info with aggregated costs.", + "properties": { + "name": { + "type": "string", + "description": "Current provider name.", + "examples": [ + "Microsoft" + ] }, - "403": { - "$ref": "#/components/responses/403" + "terms": { + "type": [ + "string", + "null" + ], + "description": "Contract terms text.", + "examples": [ + "5 Years", + null + ] + }, + "contractNumber": { + "type": [ + "string", + "null" + ], + "description": "Contract number or identifier.", + "examples": [ + "C12345678" + ] + }, + "expiryDate": { + "$ref": "#/components/schemas/NullableDateTimeStringType", + "description": "Contract expiry date as an ISO 8601 date-time string, or null." } }, - "tags": [ - "License Analytics" + "required": [ + "name", + "terms", + "contractNumber", + "expiryDate" ], - "summary": "Retrieve the Specified License Report for Specified Tenant" + "examples": [ + { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z" + } + ] }, - "delete": { - "description": "Deletes the full license report for the specified correlation ID and tenant.\n\nThis endpoint requires the `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/delete", - "parameters": [ + "CloudMatrix.CurrentProvider": { + "title": "Cloud Matrix - Current Provider", + "allOf": [ { - "$ref": "#/components/parameters/correlationId" + "$ref": "#/components/schemas/CloudMatrix.Provider" }, { - "$ref": "#/components/parameters/tenantId" + "type": "object", + "description": "Extension of Provider to include cost breakdowns for the current provider.", + "properties": { + "costs": { + "$ref": "#/components/schemas/CloudMatrix.Costs", + "description": "Cost breakdown with monthly/annual/contract values." + } + }, + "required": [ + "costs" + ] } ], - "responses": { - "201": { - "description": "Deleted successfully" + "examples": [ + { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + } + ] + }, + "CloudMatrix.NewProvider": { + "title": "Cloud Matrix - New Provider", + "allOf": [ + { + "$ref": "#/components/schemas/CloudMatrix.Provider" }, - "400": { - "$ref": "#/components/responses/400" + { + "type": "object", + "description": "Proposed displacement contract info and cost scenarios.", + "properties": { + "costs": { + "type": "array", + "description": "One or more cost scenarios.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.Costs" + }, + "examples": [ + [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ] + ] + }, + "replacementDate": { + "$ref": "#/components/schemas/NullableDateTimeStringType", + "description": "Planned replacement date as an ISO 8601 date-time string, or null." + } + }, + "required": [ + "costs", + "replacementDate" + ] + } + ], + "examples": [ + { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-01-01T00:00:00Z" + } + ] + }, + "CloudMatrix.Displacement": { + "title": "Cloud Matrix - Displacement", + "type": "object", + "description": "A displacement candidate including current provider and the proposed displacement.", + "properties": { + "name": { + "type": "string", + "description": "Displacement opportunity name.", + "examples": [ + "Example displacement opportunity" + ] }, - "401": { - "$ref": "#/components/responses/401" + "currentProvider": { + "$ref": "#/components/schemas/CloudMatrix.CurrentProvider", + "description": "Current provider information including contract costs." }, - "403": { - "$ref": "#/components/responses/403" + "displacement": { + "$ref": "#/components/schemas/CloudMatrix.NewProvider", + "description": "Replacement/displacement proposal details." + }, + "notes": { + "type": [ + "string", + "null" + ], + "description": "Additional notes string.", + "examples": [ + "Example notes", + null + ] } }, - "tags": [ - "License Analytics" + "required": [ + "name", + "currentProvider", + "displacement" ], - "summary": "Delete the Specified License Report for Specified Tenant" - } - }, - "/Api/V1/LicenseReport": { - "post": { - "description": "Store the results of a license analytics run.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/LicenseReport/Post", - "requestBody": { - "content": { - "application/json": { - "examples": { - "License Report": { - "description": "A sample, truncated report from a customer environment. The request body should contain the License Report V1 to be stored.", - "summary": "Example License Report Request", - "value": { - "availableLicense": [ - { - "count": 10, - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "123e4567-e89b-12d3-a456-426614174000" - ] - } - ], - "correlation": { - "auditTenantAccount": "user@example.com" - }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Software Engineer", - "idpDepartment": "Engineering", - "idpOfficeLocation": "Building 1", - "idpEmployeeType": "Full-Time" - } - } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "principalMetadata": { - "sharedComputer": true - } - } - } - }, - "schemaVersion": 1 - } - }, - "Ignorant License Report Request": { - "description": "Looks like automation started without checking the docs—give them a quick read to make things easier!", - "summary": "Docs First, Smooth Automation Ahead", - "value": {} - } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV1" + "additionalProperties": false, + "examples": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "License Report V1": { - "description": "Sample, truncated report from an example customer environment. This will return the same report as the request input.", - "summary": "Example of License Report Stored.", - "value": { - "availableLicense": [ - { - "count": 10, - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "123e4567-e89b-12d3-a456-426614174000" - ] - } - ], - "correlation": { - "auditTenantAccount": "user@example.com", - "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Software Engineer", - "idpDepartment": "Engineering", - "idpOfficeLocation": "Building 1", - "idpEmployeeType": "Full-Time" - } - } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "principalMetadata": { - "sharedComputer": true - } - } - } - }, - "schemaVersion": 1 - } - } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV1" + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 } - } + ], + "replacementDate": "2026-12-31T00:00:00Z" }, - "description": "OK" + "notes": "Example notes" + } + ] + }, + "CloudMatrix.ActionPlan": { + "title": "Cloud Matrix - Action Plan", + "type": "object", + "description": "Key planning metadata related to account and authorship.", + "properties": { + "accountName": { + "type": "string", + "description": "Customer account name; Default: empty string.", + "examples": [ + "AstraZeneca" + ] }, - "400": { - "$ref": "#/components/responses/400" + "discoveryDate": { + "$ref": "#/components/schemas/NullableDateTimeStringType", + "description": "Date the discovery occurred (string); Default: null." }, - "401": { - "$ref": "#/components/responses/401" + "accountManager": { + "type": [ + "string", + "null" + ], + "description": "Account manager name; Default: empty string if not specified.", + "examples": [ + "John Smith", + null + ] }, - "403": { - "$ref": "#/components/responses/403" + "consultant": { + "type": [ + "string", + "null" + ], + "description": "Consultant name; Default: empty string if not specified.", + "examples": [ + "MSAG Consultant", + null + ] }, - "500": { - "$ref": "#/components/responses/500" + "licensingExecutive": { + "type": [ + "string", + "null" + ], + "description": "Licensing executive name; Default: empty string if not specified.", + "examples": [ + "Jane Doe", + null + ] + }, + "customerSuccessManager": { + "type": [ + "string", + "null" + ], + "description": "Customer success manager name; Default: empty string if not specified.", + "examples": [ + "John Doe", + null + ] + }, + "notesAndObjectives": { + "type": [ + "string", + "null" + ], + "description": "Free-form notes and objectives; Default: empty string if not specified.", + "examples": [ + "Example notes", + null + ] + }, + "accountId": { + "$ref": "#/components/schemas/NullableUuid", + "description": "Account identifier (optional); Default: null if not specified." + }, + "createdDate": { + "$ref": "#/components/schemas/NullableDateTimeStringType", + "description": "ISO 8601 date-time string when created; Default: null." + }, + "modifiedDate": { + "$ref": "#/components/schemas/NullableDateTimeStringType", + "description": "ISO 8601 date-time string when last modified; Default: null." + }, + "primaryPublisher": { + "type": [ + "string", + "null" + ], + "description": "Primary publisher label; Default: \"Microsoft\" if not specified.", + "examples": [ + "Microsoft", + null + ] } }, - "tags": [ - "License Analytics" + "required": [ + "accountName", + "discoveryDate" ], - "summary": "Store License Analytics Data" - } - }, - "/Api/V1/LicenseReport/Correlation": { - "get": { - "description": "Retrieves the list of correlation records for the authenticated tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/LicenseReport/Correlation/Get", - "parameters": [ - { - "$ref": "#/components/parameters/dateStart" - }, + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/dateEnd" + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "Example Correlation Records": { - "description": "Sample list of correlation records for the current authenticated tenant.", - "summary": "Available Correlation Records", - "value": [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - { - "auditTenantAccount": "user@example.com", - "correlationId": "5888a922-9f5b-45fd-bd5f-de3283d6a79e", - "createdAt": "2023-12-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - } - ] - } - }, - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/Report.CorrelationRecord" - }, - "examples": [ - [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "547404d4-8734-415f-a7ca-e9c1ffb95e48", - "createdAt": "2023-12-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - { - "auditTenantAccount": "user@example.com", - "correlationId": "d76878d6-1495-4243-a334-a82bb9818cd0", - "createdAt": "2023-12-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - } - ] + ] + }, + "CloudMatrix.ValueAssessment": { + "title": "Cloud Matrix - Value Assessment", + "type": "object", + "description": "Consolidates action plan, user profiles, assessment, and displacement data.", + "properties": { + "actionPlan": { + "$ref": "#/components/schemas/CloudMatrix.ActionPlan", + "description": "High-level account and planning metadata." + }, + "userProfiles": { + "type": "array", + "description": "Named user profiles with licensing details.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.UserProfile" + }, + "examples": [ + [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } + ] + } ] } - } - }, - "description": "OK" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" + ] + ] }, - "404": { - "$ref": "#/components/responses/404" + "assessments": { + "type": "array", + "description": "Assessment elements with metadata, profile values, and features.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.Assessment" + }, + "examples": [ + [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + ] }, - "500": { - "$ref": "#/components/responses/500" + "displacements": { + "type": "array", + "description": "Displacement opportunities and provider details.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.Displacement" + }, + "examples": [ + [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] + ] } }, - "tags": [ - "License Analytics" + "required": [ + "actionPlan", + "userProfiles", + "assessments", + "displacements" ], - "summary": "Retrieve the List of Correlation Records" - } - }, - "/Api/V1/LicenseReport/Correlation/Tenant/{tenantId}": { - "get": { - "description": "Retrieves the list of correlation records for the specified tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/V1/LicenseReport/Correlation/Tenant/:tenantId/Get", - "parameters": [ - { - "$ref": "#/components/parameters/tenantId" - }, - { - "$ref": "#/components/parameters/dateStart" - }, + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/dateEnd" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "Example Correlation Records": { - "description": "Sample list of correlation records for the specified tenant.", - "summary": "Available Correlation Records", - "value": [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ { - "auditTenantAccount": "user@example.com", - "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" + "name": "Profile Name", + "value": "Knowledge Worker" } ] } - }, - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/Report.CorrelationRecord" + ] + } + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null }, - "examples": [ - [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ { - "auditTenantAccount": "user@example.com", - "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" + "product": "PS", + "value": "na", + "comment": "" } ] + } + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] + } + ] + }, + "CloudMatrix.SubscriptionProductEntry": { + "title": "Cloud Matrix - Subscription Product Entry", + "allOf": [ + { + "$ref": "#/components/schemas/CloudMatrix.Product" + } + ] + }, + "CloudMatrix.SubscriptionFeature": { + "title": "Cloud Matrix - Subscription Feature", + "allOf": [ + { + "$ref": "#/components/schemas/CloudMatrix.AssessmentFeature" + }, + { + "type": "object", + "description": "Semantic alias for subscription feature entries to align with schema naming and legacy consumers.", + "properties": { + "products": { + "type": "array", + "description": "Subscription product entries under this feature.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.SubscriptionProductEntry" + }, + "examples": [ + [ + { + "product": "E5", + "value": "available", + "comment": "" + } ] - } + ] } }, - "description": "OK" + "required": [ + "products" + ] + } + ], + "examples": [ + { + "licensing": "O365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" + } + ] + } + ] + }, + "CloudMatrix.BreakoutFeature": { + "title": "Cloud Matrix - Breakout Feature", + "type": "object", + "description": "A single breakout feature with subscription mappings.", + "properties": { + "roadmapElementPath": { + "type": [ + "string", + "null" + ], + "description": "Hierarchical path to the roadmap element.", + "examples": [ + "User Experience / Windows Productivity / Windows OS Productivity Optimization", + null + ] }, - "400": { - "$ref": "#/components/responses/400" + "elementSubdimension": { + "type": [ + "string", + "null" + ], + "description": "Sub-dimension label within the element.", + "examples": [ + "USER EXPERIENCE-Windows Productivity", + null + ] }, - "401": { - "$ref": "#/components/responses/401" + "roadmapProduct": { + "type": [ + "string", + "null" + ], + "description": "Associated product in the roadmap.", + "examples": [ + "Windows E3", + null + ] }, - "403": { - "$ref": "#/components/responses/403" + "feature": { + "type": [ + "string", + "null" + ], + "description": "Feature name within the product.", + "examples": [ + "MDOP: User Experience Virtualization (UE-V)", + null + ] }, - "404": { - "$ref": "#/components/responses/404" + "description": { + "type": [ + "string", + "null" + ], + "description": "Feature description text.", + "examples": [ + "User Experience Virtualization (UE-V) is a feature of the Microsoft Desktop Optimization Pack (MDOP) that captures and centralizes user-customized Windows and application settings, storing them on a centrally managed network file share to ensure personalized settings are applied across different devices and virtual desktop infrastructure (VDI) sessions", + null + ] }, - "500": { - "$ref": "#/components/responses/500" + "publisherLink": { + "type": [ + "string", + "null" + ], + "description": "URL or link provided by the publisher.", + "examples": [ + "https://learn.microsoft.com/en-us/microsoft-desktop-optimization-pack/uev-v2/", + null + ] + }, + "subscriptionFeatures": { + "type": "array", + "description": "Subscription feature mappings for licensing and products.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.SubscriptionFeature" + }, + "examples": [ + [ + { + "licensing": "Windows 10", + "products": [ + { + "product": "Enterprise", + "value": "available", + "comment": "" + } + ] + } + ] + ] } }, - "tags": [ - "License Analytics" + "required": [ + "roadmapElementPath", + "elementSubdimension", + "roadmapProduct", + "feature", + "description", + "publisherLink", + "subscriptionFeatures" ], - "summary": "Retrieve the List of Correlation Records for Specified Tenant" - } - }, - "/Api/V1/LicenseReport/Correlation/{correlationId}/Data": { - "get": { - "description": "Retrieves the full license report v1 for the specified correlation ID in the authenticated tenant. The license report v1 contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Data/Get", - "parameters": [ + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/correlationId" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "Example License Report V1": { - "description": "Sample, truncated license report v1 from an example customer environment for a correlation record of the current authenticated tenant.", - "summary": "Example License Report V1", - "value": { - "availableLicense": [ - { - "count": 10, - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "123e4567-e89b-12d3-a456-426614174000" - ] - } - ], - "correlation": { - "auditTenantAccount": "user@example.com", - "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Software Engineer", - "idpDepartment": "Engineering", - "idpOfficeLocation": "Building 1", - "idpEmployeeType": "Full-Time" - } - } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "principalMetadata": { - "sharedComputer": true - } - } - } - }, - "schemaVersion": 1 - } + "roadmapElementPath": "User Experience / Windows Productivity / Windows OS Productivity Optimization", + "elementSubdimension": "USER EXPERIENCE-Windows Productivity", + "roadmapProduct": "Windows E3", + "feature": "MDOP: User Experience Virtualization (UE-V)", + "description": "User Experience Virtualization (UE-V) is a feature of the Microsoft Desktop Optimization Pack (MDOP) that captures and centralizes user-customized Windows and application settings, storing them on a centrally managed network file share to ensure personalized settings are applied across different devices and virtual desktop infrastructure (VDI) sessions", + "publisherLink": "https://learn.microsoft.com/en-us/microsoft-desktop-optimization-pack/uev-v2/", + "subscriptionFeatures": [ + { + "licensing": "Windows 10", + "products": [ + { + "product": "Enterprise", + "value": "available", + "comment": "" } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV1" - } + ] } - }, - "description": "OK" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" + ] + } + ] + }, + "CloudMatrix.Breakout": { + "title": "Cloud Matrix - Breakout", + "type": "object", + "description": "A breakout section grouping features by path and product.", + "properties": { + "title": { + "type": "string", + "description": "Breakout title.", + "examples": [ + "WINDOWS" + ] }, - "403": { - "$ref": "#/components/responses/403" + "breakoutId": { + "$ref": "#/components/schemas/NullableUuid", + "description": "Breakout identifier or null." }, - "404": { - "$ref": "#/components/responses/404" + "breakoutName": { + "type": [ + "string", + "null" + ], + "description": "Breakout display name or null.", + "examples": [ + "BREAKOUT - WINDOWS OS", + null + ] }, - "500": { - "$ref": "#/components/responses/500" + "features": { + "type": "array", + "description": "Feature entries under this breakout.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.BreakoutFeature" + }, + "examples": [ + [ + { + "roadmapElementPath": "User Experience / Windows Productivity / Windows OS Productivity Optimization", + "elementSubdimension": "USER EXPERIENCE-Windows Productivity", + "roadmapProduct": "Windows E3", + "feature": "MDOP: User Experience Virtualization (UE-V)", + "description": "User Experience Virtualization (UE-V) is a feature of the Microsoft Desktop Optimization Pack (MDOP) that captures and centralizes user-customized Windows and application settings, storing them on a centrally managed network file share to ensure personalized settings are applied across different devices and virtual desktop infrastructure (VDI) sessions", + "publisherLink": "https://learn.microsoft.com/en-us/microsoft-desktop-optimization-pack/uev-v2/", + "subscriptionFeatures": [ + { + "licensing": "Windows 10", + "products": [ + { + "product": "Enterprise", + "value": "available", + "comment": "" + } + ] + } + ] + } + ] + ] } }, - "tags": [ - "License Analytics" + "required": [ + "title", + "breakoutId", + "breakoutName", + "features" ], - "summary": "Retrieve the Specified License Report V1" - }, - "delete": { - "description": "Deletes the full license report v1 for the specified correlation ID.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Data/delete", - "parameters": [ + "additionalProperties": false, + "examples": [ { - "$ref": "#/components/parameters/correlationId" + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] } + ] + }, + "CloudMatrix.BulkCloudMatrix": { + "title": "Cloud Matrix - Bulk Cloud Matrix Assessment", + "description": "Cloud Matrix assessment payload for bulk operations, excluding correlation metadata.", + "type": "object", + "required": [ + "title", + "description", + "version", + "valueAssessment", + "breakouts" ], - "responses": { - "201": { - "description": "Deleted successfully" + "properties": { + "title": { + "type": "string", + "description": "Display title of the Cloud Matrix assessment payload.", + "examples": [ + "CloudMatrix Value Assessment" + ] }, - "400": { - "$ref": "#/components/responses/400" + "description": { + "type": [ + "string", + "null" + ], + "description": "Optional narrative summary of the Cloud Matrix assessment.", + "examples": [ + "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + null + ] }, - "401": { - "$ref": "#/components/responses/401" + "version": { + "type": "string", + "description": "Version identifier of the current Cloud Matrix assessment schema.", + "examples": [ + "5.0.14" + ] }, - "403": { - "$ref": "#/components/responses/403" + "valueAssessment": { + "$ref": "#/components/schemas/CloudMatrix.ValueAssessment" }, - "500": { - "$ref": "#/components/responses/500" + "breakouts": { + "type": "array", + "description": "Collection of breakout sections included in the assessment.", + "items": { + "$ref": "#/components/schemas/CloudMatrix.Breakout" + }, + "examples": [ + [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + }, + { + "product": "F3", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } + ] + ] } }, - "tags": [ - "License Analytics" - ], - "summary": "Delete the Specified License Report for the Currently Authenticated Tenant." - } - }, - "/Api/V1/LicenseReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { - "get": { - "description": "Retrieves the full license report v1 for the specified correlation ID and tenant. The license report v1 contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", - "parameters": [ - { - "$ref": "#/components/parameters/correlationId" - }, + "examples": [ { - "$ref": "#/components/parameters/tenantId" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "License Report V1": { - "description": "Sample, truncated report from an example customer environment for a correlation record of the specified tenant.", - "summary": "Example License Report V1", - "value": { - "availableLicense": [ + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ { - "count": 10, - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "123e4567-e89b-12d3-a456-426614174000" - ] + "name": "Profile Name", + "value": "Knowledge Worker" } - ], - "correlation": { - "auditTenantAccount": "user@example.com", - "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Software Engineer", - "idpDepartment": "Engineering", - "idpOfficeLocation": "Building 1", - "idpEmployeeType": "Full-Time" - } - } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "assignedLicense": [ - { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "principalMetadata": { - "sharedComputer": true - } - } + ] + } + ] + } + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" } - }, - "schemaVersion": 1 + ] } - } - }, - "schema": { - "$ref": "#/components/schemas/LicenseReportV1" + ] } - } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] }, - "description": "OK" + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "CloudMatrix.CloudMatrixCorrelation": { + "title": "Cloud Matrix - Correlation", + "type": "object", + "description": "Correlation Data that points to a specific matrix assessment/roadmap that belongs in the database.", + "properties": { + "accountName": { + "type": "string", + "description": "Stores the name of the customer associated with this cloud matrix assessment record.", + "examples": [ + "AstraZeneca" + ] }, - "400": { - "$ref": "#/components/responses/400" + "correlationId": { + "$ref": "#/components/schemas/Uuid", + "description": "Unique Identifier representing a single set of cloud matrix assessment." }, - "401": { - "$ref": "#/components/responses/401" + "createdAt": { + "$ref": "#/components/schemas/DateTimeStringType", + "description": "Timestamp indicating when the record was created. This is auto managed by sequelize." }, - "403": { - "$ref": "#/components/responses/403" + "accountId": { + "$ref": "#/components/schemas/Uuid", + "description": "Unique Identifier representing the customer account for this cloud matrix assessment." }, - "404": { - "$ref": "#/components/responses/404" + "discoveryDate": { + "$ref": "#/components/schemas/DateTimeStringType", + "description": "Date when the discovery process was initiated, as specified by the user." }, - "500": { - "$ref": "#/components/responses/500" + "isComplete": { + "type": "boolean", + "description": "Indicates whether the discovery process has been completed for this cloud matrix assessment record.", + "examples": [ + true, + false + ] + }, + "template": { + "type": "string", + "description": "Stores the name of the template associated with this cloud matrix assessment record.", + "examples": [ + "Microsoft Enterprise" + ] + }, + "updatedAt": { + "$ref": "#/components/schemas/DateTimeStringType", + "description": "Timestamp indicating when the record was last updated. This is auto managed by sequelize." + }, + "schemaVersion": { + "type": "number", + "description": "Version number of the Cloud Matrix schema used for this assessment record.", + "examples": [ + 1.0 + ] } }, - "tags": [ - "License Analytics" + "required": [ + "accountName", + "accountId", + "discoveryDate", + "template" ], - "summary": "Retrieve the Specified License Report V1 for Specified Tenant" + "additionalProperties": false, + "examples": [ + { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + } + ] }, - "delete": { - "description": "Deletes the full license report v1 for the specified correlation ID and tenant.\n\nThis endpoint requires the `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/delete", - "parameters": [ + "CloudMatrix": { + "title": "Cloud Matrix", + "description": "Root document for the Microsoft Cloud Adoption Matrix (derived from schema).", + "allOf": [ { - "$ref": "#/components/parameters/correlationId" + "$ref": "#/components/schemas/CloudMatrix.BulkCloudMatrix" }, { - "$ref": "#/components/parameters/tenantId" - } - ], - "responses": { - "201": { - "description": "Deleted successfully" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, - "500": { - "$ref": "#/components/responses/500" + "type": "object", + "properties": { + "correlation": { + "$ref": "#/components/schemas/CloudMatrix.CloudMatrixCorrelation", + "description": "Correlation data to identify a specific record." + } + }, + "required": [ + "correlation" + ] } - }, - "tags": [ - "License Analytics" ], - "summary": "Delete the Specified License Report V1 for Specified Tenant" - } - }, - "/Api/Chat/LicenseGpt": { - "post": { - "summary": "Inquire License Data from AI Agent", - "description": "Process OpenAI GPT chat messages with tool calls available. Chats are not stored on data gateway, API client is expected to store chats. Available tools is dynamically determined by assigned API permissions. This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/Chat/LicenseGpt/Post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "description": "Collection of conversation parts provided by user to be ingested by the agent", - "type": "array", - "items": { - "$ref": "#/components/schemas/Chat.OpenAIChatMessage" - } + "examples": [ + { + "correlation": { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + }, + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" }, - "examples": { - "Tool call": { - "summary": "Example Tool Call Request", - "description": "An example request that represent a message initiated by the chat assistant to call a tool function for the currently authenticated tenant.", - "value": { - "role": "assistant", - "content": "What are the available IDs?", - "tool_calls": [ - { - "id": "call_abc123", - "type": "function", - "function": { - "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", - "name": "getCorrelationIDs" + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" } - } - ] - } + ] + } + ] } - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "examples": [ + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ { - "messageList": [ + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ { - "role": "user", - "content": "Hello" - }, - { - "role": "assistant", - "content": "Hello, how can I assist you today?" - }, - { - "role": "user", - "content": "Can you show me what correlation records I have?" - }, - { - "role": "assistant", - "content": "What are the available IDs?", - "tool_calls": [ - { - "id": "call_abc123", - "type": "function", - "function": { - "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", - "name": "getCorrelationIDs" - } - } - ] - }, - { - "role": "tool", - "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", - "tool_call_id": "call_abc123" - }, - { - "role": "assistant", - "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + "product": "PS", + "value": "na", + "comment": "" } - ], - "responseText": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + ] } - ], - "type": "object", - "properties": { - "messageList": { - "type": "array", - "description": "List of message objects in current conversation", - "items": { - "$ref": "#/components/schemas/Chat.OpenAIChatMessage" - }, - "examples": [ - [ - { - "role": "user", - "content": "Hello" - }, - { - "role": "assistant", - "content": "Hello, how can I assist you today?" - }, - { - "role": "user", - "content": "Can you show me what correlation records I have?" - }, - { - "role": "assistant", - "content": "What are the available IDs?", - "tool_calls": [ - { - "id": "call_abc123", - "type": "function", - "function": { - "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", - "name": "getCorrelationIDs" - } - } - ] - }, - { - "role": "tool", - "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", - "tool_call_id": "call_abc123" - }, + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] + }, + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ { - "role": "assistant", - "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + "product": "F1", + "value": "na", + "comment": "" } ] - ] - }, - "responseText": { - "type": "string", - "description": "Most recent response text", - "examples": [ - "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" - ] - } - }, - "required": [ - "messageList", - "responseText" - ] + } + ] + } + ] + } + ] + } + ] + } + }, + "securitySchemes": { + "EntraID": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The Access Token from Entra ID. Please note required scopes (permissions) in each endpoint." + } + } + }, + "externalDocs": { + "description": "Official Documentation", + "url": "https://docs.shilab.com" + }, + "info": { + "contact": { + "email": "elliot_huffman@shi.com", + "name": "SHI - Lab" + }, + "description": "Collects data from the various SHI Lab products and makes it available in a standardized way.", + "title": "SHI - Data Gateway", + "version": "3.2.0" + }, + "openapi": "3.1.1", + "paths": { + "/Api/Core/Health": { + "get": { + "description": "Check the health of the various components of the data gateway and report back. Useful for automated health probing.", + "operationId": "/Api/ServiceHealth/Get", + "responses": { + "201": { + "description": "Service is operational!" + }, + "500": { + "description": "Service has a failure described with following report.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core.HealthReport" }, "examples": { - "Chat response": { - "summary": "Example Chat Response with Context", - "description": "An example chat response that includes context of current chat session with the request appended for the currently authenticated tenant.", + "Auth system failure": { + "summary": "Example Health Report - Auth Failure", + "description": "An example health report returned indicates the authentication components are not working.", "value": { - "messageList": [ - { - "role": "user", - "content": "Hello" + "authClient": false, + "authServer": false, + "bulkStorage": true, + "cloudMatrix": true, + "database": true + } + }, + "Storage system failure": { + "summary": "Example Health Report - Storage Failure", + "description": "An example health report returned indicates the storage components are not working.", + "value": { + "authClient": true, + "authServer": true, + "bulkStorage": false, + "database": false + } + } + } + } + } + } + }, + "tags": [ + "Core System" + ], + "security": [], + "summary": "Health of the Service for Probing" + } + }, + "/Api/LicenseReport": { + "post": { + "description": "Store the results of a license analytics run.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/LicenseReport/Post", + "requestBody": { + "content": { + "application/json": { + "examples": { + "License Report": { + "description": "Sample, truncated report from an example customer environment. The request body is the License Report that to be stored.", + "summary": "Example License Report Request", + "value": { + "availableLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, + "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, + "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, + "d76878d6-1495-4243-a334-a82bb9818cd0": 500 + }, + "correlation": { + "auditTenantAccount": "somebodyThatI@UsedToKnow.com" + }, + "licenseData": { + "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { + "assignedLicense": { + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, + "3d282045-ec7f-4813-88e2-29b74ee609f7": null }, - { - "role": "assistant", - "content": "Hello, how can I assist you today?" + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null }, - { - "role": "user", - "content": "Can you show me what correlation records I have?" + "consumedService": { + "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, + "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { + "Something Here": true, + "Other Obscure feature": false + } + } + }, + "04e88835-771a-482b-9d6f-ba06c32cbb67": { + "assignedLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": null }, - { - "role": "assistant", - "content": "What are the available IDs?", - "tool_calls": [ - { - "id": "call_abc123", - "type": "function", - "function": { - "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", - "name": "getCorrelationIDs" - } - } - ] + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null }, - { - "role": "tool", - "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", - "tool_call_id": "call_abc123" + "consumedService": { + "9d3603de-b378-4c4a-adcc-ee133cbef914": null, + "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { + "Something Here": true, + "Other Obscure feature": false + } + } + } + } + } + }, + "Ignorant License Report Request": { + "description": "Clueless dev trying to automate this application without reading the docs. RTFM!", + "summary": "Ignorant License Report Request", + "value": {} + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV0" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "License Report": { + "description": "A sample, truncated report from a customer environment. The response returns the same report as provided in the request input.", + "summary": "Example of License Report Stored.", + "value": { + "availableLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, + "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, + "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, + "d76878d6-1495-4243-a334-a82bb9818cd0": 500 + }, + "correlation": { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db" + }, + "licenseData": { + "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { + "assignedLicense": { + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, + "3d282045-ec7f-4813-88e2-29b74ee609f7": null + }, + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null + }, + "consumedService": { + "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, + "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { + "Something Here": true, + "Other Obscure feature": false + } + } }, - { - "role": "assistant", - "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + "04e88835-771a-482b-9d6f-ba06c32cbb67": { + "assignedLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": null + }, + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null + }, + "consumedService": { + "9d3603de-b378-4c4a-adcc-ee133cbef914": null, + "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { + "Something Here": true, + "Other Obscure feature": false + } + } } - ], - "responseText": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } } } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV0" + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Store License Analytics Data" + } + }, + "/Api/LicenseReport/Correlation": { + "get": { + "description": "Retrieves the list of correlation records for the authenticated tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/LicenseReport/Correlation/Get", + "parameters": [ + { + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Example Correlation Records": { + "description": "Sample list of correlation records for the current authenticated tenant.", + "summary": "Available Correlation Records", + "value": [ + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-08-01T21:14:45.026Z", + "updatedAt": "2024-08-01T21:14:45.026Z" + }, + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-07-25T21:14:45.026Z", + "updatedAt": "2024-07-25T21:14:45.026Z" + } + ] + } + }, + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/Report.CorrelationRecord" + }, + "examples": [ + [ + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-08-01T21:14:45.026Z", + "updatedAt": "2024-08-01T21:14:45.026Z" + }, + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-07-25T21:14:45.026Z", + "updatedAt": "2024-07-25T21:14:45.026Z" + } + ] + ] + } + } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the List of Correlation Records" + } + }, + "/Api/LicenseReport/Correlation/Tenant/{tenantId}": { + "get": { + "description": "Retrieves the list of correlation records for the specified tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/LicenseReport/Correlation/Tenant/:tenantId/Get", + "parameters": [ + { + "$ref": "#/components/parameters/tenantId" + }, + { + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Example Correlation Records": { + "description": "Sample list of correlation records for the specified tenant.", + "summary": "Available Correlation Records", + "value": [ + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-08-01T21:14:45.026Z", + "updatedAt": "2024-08-01T21:14:45.026Z" + }, + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-07-25T21:14:45.026Z", + "updatedAt": "2024-07-25T21:14:45.026Z" + } + ] + } + }, + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/Report.CorrelationRecord" + }, + "examples": [ + [ + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-08-01T21:14:45.026Z", + "updatedAt": "2024-08-01T21:14:45.026Z" + }, + { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "d8095827-a313-40e1-b086-f72636de0edf", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db", + "createdAt": "2024-07-25T21:14:45.026Z", + "updatedAt": "2024-07-25T21:14:45.026Z" + } + ] + ] + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the List of Correlation Records for Specified Tenant" + } + }, + "/Api/LicenseReport/Correlation/{correlationId}/Data": { + "get": { + "description": "Retrieves the full license report for the specified correlation ID in the authenticated tenant. The license report contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/LicenseReport/Correlation/:correlationId/Data/Get", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Example License Report": { + "description": "Sample, truncated license report from an example customer environment for a correlation record of the current authenticated tenant.", + "summary": "Example License Report", + "value": { + "availableLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, + "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, + "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, + "d76878d6-1495-4243-a334-a82bb9818cd0": 500 + }, + "correlation": { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db" + }, + "licenseData": { + "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { + "assignedLicense": { + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, + "3d282045-ec7f-4813-88e2-29b74ee609f7": null + }, + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null + }, + "consumedService": { + "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, + "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { + "Something Here": true, + "Other Obscure feature": false + } + } + }, + "04e88835-771a-482b-9d6f-ba06c32cbb67": { + "assignedLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": null + }, + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null + }, + "consumedService": { + "9d3603de-b378-4c4a-adcc-ee133cbef914": null, + "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { + "Something Here": true, + "Other Obscure feature": false + } + } + } + } + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV0" + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the Specified License Report" + }, + "delete": { + "description": "Deletes the full license report for the specified correlation ID.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/LicenseReport/Correlation/:correlationId/Data/delete", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + } + ], + "responses": { + "201": { + "description": "Deleted successfully" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Delete the Specified License Report for the Currently Authenticated Tenant." + } + }, + "/Api/LicenseReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { + "get": { + "description": "Retrieves the full license report for the specified correlation ID and tenant. The license report contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + }, + { + "$ref": "#/components/parameters/tenantId" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "License Report": { + "description": "Sample, truncated report from an example customer environment for a correlation record of the specified tenant.", + "summary": "Example License Report", + "value": { + "availableLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 123456, + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": 99999999, + "a4b2e176-d63d-4081-9e21-226e2ac624b9": 5, + "547404d4-8734-415f-a7ca-e9c1ffb95e48": 25, + "d76878d6-1495-4243-a334-a82bb9818cd0": 500 + }, + "correlation": { + "auditTenantAccount": "somebodyThatI@example.com", + "correlationId": "6d7c9271-9e68-4bdf-9ae3-f90c4213f74b", + "reportTenantAccount": "usedToKnow@example.com", + "tenantId": "3d6e7b7e-8d9a-4eb0-8753-67829b3934db" + }, + "licenseData": { + "250844e1-a7ab-4f21-8e3f-58f51b5983a3": { + "assignedLicense": { + "5888a922-9f5b-45fd-bd5f-de3283d6a79e": null, + "3d282045-ec7f-4813-88e2-29b74ee609f7": null + }, + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null + }, + "consumedService": { + "e0d101e8-6f1e-40a9-a66f-cad4112c9a59": null, + "c63b7a2d-6573-4c37-9ca8-e12b954d3198": { + "Something Here": true, + "Other Obscure feature": false + } + } + }, + "04e88835-771a-482b-9d6f-ba06c32cbb67": { + "assignedLicense": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": null + }, + "assignedService": { + "a4b2e176-d63d-4081-9e21-226e2ac624b9": null, + "d76878d6-1495-4243-a334-a82bb9818cd0": null + }, + "consumedService": { + "9d3603de-b378-4c4a-adcc-ee133cbef914": null, + "e9a4e3d3-ebe0-405a-a8f4-35a04c4dba1f": { + "Something Here": true, + "Other Obscure feature": false + } + } + } + } + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV0" + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the Specified License Report for Specified Tenant" + }, + "delete": { + "description": "Deletes the full license report for the specified correlation ID and tenant.\n\nThis endpoint requires the `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/delete", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + }, + { + "$ref": "#/components/parameters/tenantId" + } + ], + "responses": { + "201": { + "description": "Deleted successfully" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Delete the Specified License Report for Specified Tenant" + } + }, + "/Api/V1/LicenseReport": { + "post": { + "description": "Store the results of a license analytics run.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/LicenseReport/Post", + "requestBody": { + "content": { + "application/json": { + "examples": { + "License Report": { + "description": "A sample, truncated report from a customer environment. The request body should contain the License Report V1 to be stored.", + "summary": "Example License Report Request", + "value": { + "availableLicense": [ + { + "count": 10, + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "123e4567-e89b-12d3-a456-426614174000" + ] + } + ], + "correlation": { + "auditTenantAccount": "user@example.com" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Software Engineer", + "idpDepartment": "Engineering", + "idpOfficeLocation": "Building 1", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "schemaVersion": 1 + } + }, + "Ignorant License Report Request": { + "description": "Looks like automation started without checking the docs—give them a quick read to make things easier!", + "summary": "Docs First, Smooth Automation Ahead", + "value": {} + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV1" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "License Report V1": { + "description": "Sample, truncated report from an example customer environment. This will return the same report as the request input.", + "summary": "Example of License Report Stored.", + "value": { + "availableLicense": [ + { + "count": 10, + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "123e4567-e89b-12d3-a456-426614174000" + ] + } + ], + "correlation": { + "auditTenantAccount": "user@example.com", + "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Software Engineer", + "idpDepartment": "Engineering", + "idpOfficeLocation": "Building 1", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "schemaVersion": 1 + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV1" + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Store License Analytics Data" + } + }, + "/Api/V1/LicenseReport/Correlation": { + "get": { + "description": "Retrieves the list of correlation records for the authenticated tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/LicenseReport/Correlation/Get", + "parameters": [ + { + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Example Correlation Records": { + "description": "Sample list of correlation records for the current authenticated tenant.", + "summary": "Available Correlation Records", + "value": [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "5888a922-9f5b-45fd-bd5f-de3283d6a79e", + "createdAt": "2023-12-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] + } + }, + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/Report.CorrelationRecord" + }, + "examples": [ + [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "547404d4-8734-415f-a7ca-e9c1ffb95e48", + "createdAt": "2023-12-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "d76878d6-1495-4243-a334-a82bb9818cd0", + "createdAt": "2023-12-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] + ] + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the List of Correlation Records" + } + }, + "/Api/V1/LicenseReport/Correlation/Tenant/{tenantId}": { + "get": { + "description": "Retrieves the list of correlation records for the specified tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific license report.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/V1/LicenseReport/Correlation/Tenant/:tenantId/Get", + "parameters": [ + { + "$ref": "#/components/parameters/tenantId" + }, + { + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Example Correlation Records": { + "description": "Sample list of correlation records for the specified tenant.", + "summary": "Available Correlation Records", + "value": [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] + } + }, + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/Report.CorrelationRecord" + }, + "examples": [ + [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] + ] + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the List of Correlation Records for Specified Tenant" + } + }, + "/Api/V1/LicenseReport/Correlation/{correlationId}/Data": { + "get": { + "description": "Retrieves the full license report v1 for the specified correlation ID in the authenticated tenant. The license report v1 contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read`, `LicenseReport.Read.All`, `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Data/Get", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Example License Report V1": { + "description": "Sample, truncated license report v1 from an example customer environment for a correlation record of the current authenticated tenant.", + "summary": "Example License Report V1", + "value": { + "availableLicense": [ + { + "count": 10, + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "123e4567-e89b-12d3-a456-426614174000" + ] + } + ], + "correlation": { + "auditTenantAccount": "user@example.com", + "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Software Engineer", + "idpDepartment": "Engineering", + "idpOfficeLocation": "Building 1", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "schemaVersion": 1 + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV1" + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the Specified License Report V1" + }, + "delete": { + "description": "Deletes the full license report v1 for the specified correlation ID.\n\nThis endpoint requires the `LicenseReport.ReadWrite`, or `LicenseReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Data/delete", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + } + ], + "responses": { + "201": { + "description": "Deleted successfully" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Delete the Specified License Report for the Currently Authenticated Tenant." + } + }, + "/Api/V1/LicenseReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { + "get": { + "description": "Retrieves the full license report v1 for the specified correlation ID and tenant. The license report v1 contains all of the license usage and compliance information with the required correlation data.\n\nThis endpoint requires the `LicenseReport.Read.All`, or `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + }, + { + "$ref": "#/components/parameters/tenantId" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "License Report V1": { + "description": "Sample, truncated report from an example customer environment for a correlation record of the specified tenant.", + "summary": "Example License Report V1", + "value": { + "availableLicense": [ + { + "count": 10, + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "123e4567-e89b-12d3-a456-426614174000" + ] + } + ], + "correlation": { + "auditTenantAccount": "user@example.com", + "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Software Engineer", + "idpDepartment": "Engineering", + "idpOfficeLocation": "Building 1", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "schemaVersion": 1 + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseReportV1" + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Retrieve the Specified License Report V1 for Specified Tenant" + }, + "delete": { + "description": "Deletes the full license report v1 for the specified correlation ID and tenant.\n\nThis endpoint requires the `LicenseReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/V1/LicenseReport/Correlation/:correlationId/Tenant/:tenantId/Data/delete", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + }, + { + "$ref": "#/components/parameters/tenantId" + } + ], + "responses": { + "201": { + "description": "Deleted successfully" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "$ref": "#/components/responses/500" + } + }, + "tags": [ + "License Analytics" + ], + "summary": "Delete the Specified License Report V1 for Specified Tenant" + } + }, + "/Api/Chat/LicenseGpt": { + "post": { + "summary": "Inquire License Data from AI Agent", + "description": "Process OpenAI GPT chat messages with tool calls available. Chats are not stored on data gateway, API client is expected to store chats. Available tools is dynamically determined by assigned API permissions. This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Chat/LicenseGpt/Post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "description": "Collection of conversation parts provided by user to be ingested by the agent", + "type": "array", + "items": { + "$ref": "#/components/schemas/Chat.OpenAIChatMessage" + } + }, + "examples": { + "Tool call": { + "summary": "Example Tool Call Request", + "description": "An example request that represent a message initiated by the chat assistant to call a tool function for the currently authenticated tenant.", + "value": { + "role": "assistant", + "content": "What are the available IDs?", + "tool_calls": [ + { + "id": "call_abc123", + "type": "function", + "function": { + "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", + "name": "getCorrelationIDs" + } + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "examples": [ + { + "messageList": [ + { + "role": "user", + "content": "Hello" + }, + { + "role": "assistant", + "content": "Hello, how can I assist you today?" + }, + { + "role": "user", + "content": "Can you show me what correlation records I have?" + }, + { + "role": "assistant", + "content": "What are the available IDs?", + "tool_calls": [ + { + "id": "call_abc123", + "type": "function", + "function": { + "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", + "name": "getCorrelationIDs" + } + } + ] + }, + { + "role": "tool", + "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", + "tool_call_id": "call_abc123" + }, + { + "role": "assistant", + "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } + ], + "responseText": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } + ], + "type": "object", + "properties": { + "messageList": { + "type": "array", + "description": "List of message objects in current conversation", + "items": { + "$ref": "#/components/schemas/Chat.OpenAIChatMessage" + }, + "examples": [ + [ + { + "role": "user", + "content": "Hello" + }, + { + "role": "assistant", + "content": "Hello, how can I assist you today?" + }, + { + "role": "user", + "content": "Can you show me what correlation records I have?" + }, + { + "role": "assistant", + "content": "What are the available IDs?", + "tool_calls": [ + { + "id": "call_abc123", + "type": "function", + "function": { + "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", + "name": "getCorrelationIDs" + } + } + ] + }, + { + "role": "tool", + "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", + "tool_call_id": "call_abc123" + }, + { + "role": "assistant", + "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } + ] + ] + }, + "responseText": { + "type": "string", + "description": "Most recent response text", + "examples": [ + "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + ] + } + }, + "required": [ + "messageList", + "responseText" + ] + }, + "examples": { + "Chat response": { + "summary": "Example Chat Response with Context", + "description": "An example chat response that includes context of current chat session with the request appended for the currently authenticated tenant.", + "value": { + "messageList": [ + { + "role": "user", + "content": "Hello" + }, + { + "role": "assistant", + "content": "Hello, how can I assist you today?" + }, + { + "role": "user", + "content": "Can you show me what correlation records I have?" + }, + { + "role": "assistant", + "content": "What are the available IDs?", + "tool_calls": [ + { + "id": "call_abc123", + "type": "function", + "function": { + "arguments": "{\"startDate\":\"2025-07-01\",\"endDate\":\"2025-07-10\"}", + "name": "getCorrelationIDs" + } + } + ] + }, + { + "role": "tool", + "content": "{\"825a9d7e-0b62-4392-b8ef-ab6951a46ebd\":\"2025-07-03T18:39:50.828Z\",\"744c0878-3a82-48a7-b239-a1d4b9298a69\":\"2025-07-07T21:01:20.995Z\"}", + "tool_call_id": "call_abc123" + }, + { + "role": "assistant", + "content": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } + ], + "responseText": "You have correlation records for the following dates:\n- July 3, 2025\n- July 7, 2025\n\nWould you like to see details from any of these correlation records?" + } + } + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + } + }, + "tags": [ + "Chat" + ] + } + }, + "/Api/Chat/UpdateDocs": { + "post": { + "description": "Sends a request to update the cached Data Gateway documentation if there is a newer version.\n\nThis endpoint requires the `LicenseGptCache.ReadWrite` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Chat/UpdateDocs/Post", + "responses": { + "204": { + "description": "Documentation updated successfully" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Update Cached Documentation", + "tags": [ + "Chat" + ] + } + }, + "/Api/Entitlement/Shield": { + "post": { + "description": "Creates a new license entitlement (activation) for SHIELD.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Entitlement/Shield/Post", + "requestBody": { + "content": { + "application/json": { + "examples": { + "Specialized Purchase": { + "description": "Add-on purchase for the specified customer for some additional specialized licenses.", + "summary": "Specialized Purchase", + "value": { + "enterpriseDeviceCount": 0, + "enterpriseInterfaceCount": 0, + "enterpriseIntermediaryCount": 0, + "enterpriseUserCount": 0, + "notValidAfter": "2024-07-30T18:09:05.970Z", + "notValidBefore": "1970-01-01T00:00:00.000Z", + "privilegedDeviceCount": 0, + "privilegedInterfaceCount": 0, + "privilegedIntermediaryCount": 0, + "privilegedUserCount": 0, + "purchaseId": "ABC123", + "specializedDeviceCount": 50, + "specializedInterfaceCount": 3, + "specializedIntermediaryCount": 1, + "specializedUserCount": 50, + "tenantId": "4b00fb78-d291-4dbd-8c0a-c93ae20bffd1" + } + }, + "Initial Purchase": { + "description": "Complete suite of components purchased for the specified customer.", + "summary": "Initial Purchase", + "value": { + "enterpriseDeviceCount": 7000, + "enterpriseInterfaceCount": 500, + "enterpriseIntermediaryCount": 10, + "enterpriseUserCount": 7000, + "notValidAfter": "2024-07-30T18:12:23.049Z", + "notValidBefore": "1970-01-01T00:00:00.000Z", + "privilegedDeviceCount": 200, + "privilegedInterfaceCount": 50, + "privilegedIntermediaryCount": 3, + "privilegedUserCount": 200, + "purchaseId": "654DEF", + "specializedDeviceCount": 1000, + "specializedInterfaceCount": 11, + "specializedIntermediaryCount": 2, + "specializedUserCount": 1000, + "tenantId": "58ffb93f-5098-4630-bfc4-eeb4664208b4" + } + }, + "Ignorant Entitlement Creation Request": { + "description": "Clueless dev trying to automate this application without reading the docs. RTFM!", + "summary": "Ignorant Entitlement Creation Request", + "value": {} + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseEntitlement.Shield" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Small MSP": { + "description": "Example license entitlement for a small MSP.", + "summary": "Local MSP", + "value": { + "correlationId": "60594489-6022-4ddb-8aa5-288c8d356cf2", + "enterpriseDeviceCount": 25, + "enterpriseInterfaceCount": 25, + "enterpriseIntermediaryCount": 25, + "enterpriseUserCount": 25, + "notValidAfter": "2024-07-30T17:56:00.704Z", + "notValidBefore": "1970-01-01T00:00:00.000Z", + "privilegedDeviceCount": 10, + "privilegedInterfaceCount": 10, + "privilegedIntermediaryCount": 2, + "privilegedUserCount": 10, + "purchaseId": "Bob's your mother's brother.", + "specializedDeviceCount": 5, + "specializedInterfaceCount": 5, + "specializedIntermediaryCount": 0, + "specializedUserCount": 5, + "tenantId": "1948adeb-797f-466b-962d-cc708a69d08d" + } + }, + "Enterprise": { + "description": "Example license entitlement for an enterprise sized company.", + "summary": "Enterprise", + "value": { + "correlationId": "46569e8d-eeaa-42f4-b954-05a998108eee", + "enterpriseDeviceCount": 50000, + "enterpriseInterfaceCount": 50000, + "enterpriseIntermediaryCount": 100, + "enterpriseUserCount": 50000, + "notValidAfter": "2024-07-30T17:58:54.619Z", + "notValidBefore": "1970-01-01T00:00:00.000Z", + "privilegedDeviceCount": 300, + "privilegedInterfaceCount": 100, + "privilegedIntermediaryCount": 50, + "privilegedUserCount": 300, + "purchaseId": "Bob's your mother's brother.", + "specializedDeviceCount": 1000, + "specializedInterfaceCount": 5, + "specializedIntermediaryCount": 10, + "specializedUserCount": 1000, + "tenantId": "bf78263c-6cec-44bc-9893-024dde25a486" + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseEntitlement.Shield" + } + } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Entitlement" + ], + "summary": "Creates a New License Entitlement for SHIELD." + } + }, + "/Api/Entitlement/Shield/Active": { + "get": { + "description": "Retrieves the count of licenses that are available to the authenticated tenant. No scopes (permissions) required.", + "operationId": "/Api/Entitlement/Shield/Active/Get", + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Small MSP": { + "description": "Example active license count for a small MSP for the currently authenticated tenant.", + "summary": "Local MSP", + "value": { + "enterpriseDeviceCount": 54, + "enterpriseInterfaceCount": 46, + "enterpriseIntermediaryCount": 2, + "enterpriseUserCount": 54, + "privilegedDeviceCount": 12, + "privilegedInterfaceCount": 52, + "privilegedIntermediaryCount": 4, + "privilegedUserCount": 12, + "specializedDeviceCount": 20, + "specializedInterfaceCount": 15, + "specializedIntermediaryCount": 0, + "specializedUserCount": 20 + } + }, + "No Licenses": { + "description": "Example license count for a company that doesn't have any licenses for the currently authenticated tenant..", + "summary": "No License", + "value": { + "enterpriseDeviceCount": 0, + "enterpriseInterfaceCount": 0, + "enterpriseIntermediaryCount": 0, + "enterpriseUserCount": 0, + "privilegedDeviceCount": 0, + "privilegedInterfaceCount": 0, + "privilegedIntermediaryCount": 0, + "privilegedUserCount": 0, + "specializedDeviceCount": 0, + "specializedInterfaceCount": 0, + "specializedIntermediaryCount": 0, + "specializedUserCount": 0 + } + }, + "Enterprise": { + "description": "Example active license count for an enterprise sized company for the currently authenticated tenant..", + "summary": "Enterprise", + "value": { + "enterpriseDeviceCount": 60000, + "enterpriseInterfaceCount": 500, + "enterpriseIntermediaryCount": 20, + "enterpriseUserCount": 60000, + "privilegedDeviceCount": 200, + "privilegedInterfaceCount": 450, + "privilegedIntermediaryCount": 15, + "privilegedUserCount": 200, + "specializedDeviceCount": 1000, + "specializedInterfaceCount": 50, + "specializedIntermediaryCount": 2, + "specializedUserCount": 1000 + } + } + }, + "schema": { + "$ref": "#/components/schemas/LicenseEntitlement.Shield.Count" + } + } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + } + }, + "tags": [ + "License Entitlement" + ], + "summary": "List of Available Licenses" + } + }, + "/Api/Entitlement/Shield/Tenant/{tenantId}": { + "get": { + "description": "Retrieves the list of license entitlements that are assigned to the specified tenant.\n\nThis endpoint requires the `LicenseEntitlement.Read.All`, or `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Entitlement/Shield/Tenant/:tenantId/Get", + "parameters": [ + { + "$ref": "#/components/parameters/tenantId" + } + ], + "summary": "List of Entitlement Records for Specified Tenant", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/LicenseEntitlement.Shield" + }, + "examples": [ + [ + { + "correlationId": "e097a3f5-9599-44a2-8923-fd3276c83ae1", + "enterpriseDeviceCount": 5, + "enterpriseInterfaceCount": 6, + "enterpriseIntermediaryCount": 7, + "enterpriseUserCount": 8, + "notValidAfter": "2024-07-30T17:35:24.044Z", + "notValidBefore": "2024-07-30T17:37:15.300Z", + "privilegedDeviceCount": 9, + "privilegedInterfaceCount": 10, + "privilegedIntermediaryCount": 11, + "privilegedUserCount": 12, + "purchaseId": "any arbitrary string as purchaseId", + "specializedDeviceCount": 13, + "specializedInterfaceCount": 14, + "specializedIntermediaryCount": 15, + "specializedUserCount": 15, + "tenantId": "a2a1698d-a3e0-42d3-96a4-47eb3e8f7dd1" + } + ] + ] + }, + "examples": { + "Example Purchase": { + "summary": "Example Entitlement Purchase", + "description": "An example SHIELD entitlement for the specified tenant.", + "value": [ + { + "correlationId": "e097a3f5-9599-44a2-8923-fd3276c83ae1", + "enterpriseDeviceCount": 5, + "enterpriseInterfaceCount": 6, + "enterpriseIntermediaryCount": 7, + "enterpriseUserCount": 8, + "notValidAfter": "2024-07-30T17:35:24.044Z", + "notValidBefore": "2024-07-30T17:37:15.300Z", + "privilegedDeviceCount": 9, + "privilegedInterfaceCount": 10, + "privilegedIntermediaryCount": 11, + "privilegedUserCount": 12, + "purchaseId": "any arbitrary string as purchaseId", + "specializedDeviceCount": 13, + "specializedInterfaceCount": 14, + "specializedIntermediaryCount": 15, + "specializedUserCount": 15, + "tenantId": "a2a1698d-a3e0-42d3-96a4-47eb3e8f7dd1" + } + ] + } + } + } + }, + "description": "OK" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "License Entitlement" + ] + } + }, + "/Api/Entitlement/Shield/Tenant/{tenantId}/Correlation/{correlationId}": { + "delete": { + "description": "Deletes the requested SHIELD license entitlement record.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Entitlement/Shield/Tenant/:tenantId/Correlation/:correlationId/Delete", + "parameters": [ + { + "$ref": "#/components/parameters/tenantId" + }, + { + "$ref": "#/components/parameters/correlationId" + } + ], + "summary": "Delete Specified License Entitlement", + "responses": { + "201": { + "description": "Deleted Successfully" + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + } + }, + "tags": [ + "License Entitlement" + ] + } + }, + "/Api/Telemetry/Shield": { + "post": { + "description": "Submits the telemetry report for SHIELD.\n\nThis endpoint requires the `Telemetry.Shield.ReadWrite`, or `Telemetry.Shield.ReadWrite.All` scope (permission).", + "operationId": "/Api/Telemetry/Shield/Post", + "requestBody": { + "content": { + "application/json": { + "examples": { + "Monthly Report": { + "description": "Example monthly telemetry report for an enterprise organization.", + "summary": "Monthly Report", + "value": { + "enterpriseDeviceCount": 64221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 642219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238 + } + } + }, + "schema": { + "$ref": "#/components/schemas/Telemetry.Shield" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "Monthly Report": { + "description": "An example of latest monthly telemetry report for an enterprise organization after the latest telemetry input.", + "summary": "Updated Monthly Report", + "value": { + "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", + "enterpriseDeviceCount": 64221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 642219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-08-05T15:25:55.525Z", + "updatedAt": "2024-08-05T15:25:55.525Z" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Telemetry.Shield" + } + } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "tags": [ + "Telemetry" + ], + "summary": "Collects SHIELD Telemetry" + }, + "get": { + "description": "Retrieves the telemetry records that have been reported for the authenticated tenant. Data is not guaranteed to be retrieved in any specific order.\n\nThis endpoint requires the `Telemetry.Shield.Read`, `Telemetry.Shield.Read.All`, `Telemetry.Shield.ReadWrite`, or `Telemetry.Shield.ReadWrite.All` scope (permission).", + "operationId": "/Api/Telemetry/Shield/Get", + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "List of Reports": { + "description": "List of all available SHIELD telemetry reports for the current authenticated tenant.", + "summary": "List of SHIELD Telemetry Reports", + "value": [ + { + "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", + "enterpriseDeviceCount": 64221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 642219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-08-05T15:25:55.525Z", + "updatedAt": "2024-08-05T15:25:55.525Z" + }, + { + "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", + "enterpriseDeviceCount": 63221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 632219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-07-05T15:25:55.525Z", + "updatedAt": "2024-07-05T15:25:55.525Z" + } + ] + } + }, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Telemetry.Shield" + }, + "minItems": 0, + "examples": [ + [ + { + "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", + "enterpriseDeviceCount": 64221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 642219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-08-05T15:25:55.525Z", + "updatedAt": "2024-08-05T15:25:55.525Z" + }, + { + "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", + "enterpriseDeviceCount": 63221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 632219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-07-05T15:25:55.525Z", + "updatedAt": "2024-07-05T15:25:55.525Z" + } + ] + ] + } + } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "summary": "Lists Reported Telemetry", + "tags": [ + "Telemetry" + ] + } + }, + "/Api/Telemetry/Shield/Tenant/{tenantId}": { + "get": { + "description": "Retrieves the telemetry records that have been reported for the specified tenant. Data is not guaranteed to be retrieved in any specific order.\n\nThis endpoint requires the `Telemetry.Shield.Read.All`, or `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Telemetry/Shield/Tenant/:tenantId/Get", + "parameters": [ + { + "$ref": "#/components/parameters/tenantId" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "List of Reports": { + "description": "List of all available SHIELD telemetry reports for the specified tenant.", + "summary": "List of SHIELD Telemetry Reports", + "value": [ + { + "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", + "enterpriseDeviceCount": 64221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 642219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-08-05T15:25:55.525Z", + "updatedAt": "2024-08-05T15:25:55.525Z" + }, + { + "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", + "enterpriseDeviceCount": 63221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 632219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-07-05T15:25:55.525Z", + "updatedAt": "2024-07-05T15:25:55.525Z" + } + ] + } + }, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Telemetry.Shield" + }, + "minItems": 0, + "examples": [ + [ + { + "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", + "enterpriseDeviceCount": 64221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 642219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-08-05T15:25:55.525Z", + "updatedAt": "2024-08-05T15:25:55.525Z" + }, + { + "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", + "enterpriseDeviceCount": 63221, + "enterpriseInterfaceCount": 523, + "enterpriseIntermediaryCount": 44, + "enterpriseUserCount": 632219, + "monthlyActiveEntUsers": 0, + "monthlyActivePrivUsers": 0, + "monthlyActiveSpecUsers": 0, + "privilegedDeviceCount": 50, + "privilegedInterfaceCount": 2000, + "privilegedIntermediaryCount": 25, + "privilegedUserCount": 50, + "shieldArchitectureVersion": "2", + "shieldCoreVersion": "3.0.0", + "specializedDeviceCount": 0, + "specializedInterfaceCount": 612, + "specializedIntermediaryCount": 2, + "specializedUserCount": 5238, + "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", + "createdAt": "2024-07-05T15:25:55.525Z", + "updatedAt": "2024-07-05T15:25:55.525Z" + } + ] + ] } } }, @@ -3883,20 +6821,38 @@ }, "400": { "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" } }, + "summary": "Retrieves Telemetry for Specified Tenant", "tags": [ - "Chat" + "Telemetry" ] } }, - "/Api/Chat/UpdateDocs": { - "post": { - "description": "Sends a request to update the cached Data Gateway documentation if there is a newer version.\n\nThis endpoint requires the `LicenseGptCache.ReadWrite` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Chat/UpdateDocs/Post", + "/Api/Telemetry/Shield/Tenant/{tenantId}/Correlation/{correlationId}": { + "delete": { + "description": "Deletes the specified telemetry record for the specified tenant.\n\nThis endpoint requires the `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/Telemetry/Shield/Tenant/:tenantId/Correlation/:correlationId/Delete", + "parameters": [ + { + "$ref": "#/components/parameters/tenantId" + }, + { + "$ref": "#/components/parameters/correlationId" + } + ], "responses": { - "204": { - "description": "Documentation updated successfully" + "201": { + "description": "Deleted Successfully" }, "400": { "$ref": "#/components/responses/400" @@ -3907,300 +6863,293 @@ "403": { "$ref": "#/components/responses/403" }, - "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "404": { + "$ref": "#/components/responses/404" } }, - "summary": "Update Cached Documentation", + "summary": "Delete Specified Telemetry Record", "tags": [ - "Chat" + "Telemetry" ] } }, - "/Api/Entitlement/Shield": { - "post": { - "description": "Creates a new license entitlement (activation) for SHIELD.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/Entitlement/Shield/Post", - "requestBody": { - "content": { - "application/json": { - "examples": { - "Specialized Purchase": { - "description": "Add-on purchase for the specified customer for some additional specialized licenses.", - "summary": "Specialized Purchase", - "value": { - "enterpriseDeviceCount": 0, - "enterpriseInterfaceCount": 0, - "enterpriseIntermediaryCount": 0, - "enterpriseUserCount": 0, - "notValidAfter": "2024-07-30T18:09:05.970Z", - "notValidBefore": "1970-01-01T00:00:00.000Z", - "privilegedDeviceCount": 0, - "privilegedInterfaceCount": 0, - "privilegedIntermediaryCount": 0, - "privilegedUserCount": 0, - "purchaseId": "ABC123", - "specializedDeviceCount": 50, - "specializedInterfaceCount": 3, - "specializedIntermediaryCount": 1, - "specializedUserCount": 50, - "tenantId": "4b00fb78-d291-4dbd-8c0a-c93ae20bffd1" - } + "/Api/Update/Shield/Channel": { + "get": { + "description": "Retrieves all of the channel configurations that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/Get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Update.Shield.Channel" + }, + "examples": [ + [ + { + "latest": "1.12.5", + "name": "stable", + "previous": "1.12.4" + } + ] + ] }, - "Initial Purchase": { - "description": "Complete suite of components purchased for the specified customer.", - "summary": "Initial Purchase", - "value": { - "enterpriseDeviceCount": 7000, - "enterpriseInterfaceCount": 500, - "enterpriseIntermediaryCount": 10, - "enterpriseUserCount": 7000, - "notValidAfter": "2024-07-30T18:12:23.049Z", - "notValidBefore": "1970-01-01T00:00:00.000Z", - "privilegedDeviceCount": 200, - "privilegedInterfaceCount": 50, - "privilegedIntermediaryCount": 3, - "privilegedUserCount": 200, - "purchaseId": "654DEF", - "specializedDeviceCount": 1000, - "specializedInterfaceCount": 11, - "specializedIntermediaryCount": 2, - "specializedUserCount": 1000, - "tenantId": "58ffb93f-5098-4630-bfc4-eeb4664208b4" + "examples": { + "Channel configuration": { + "summary": "Example All Channel Configs", + "description": "An example showing the all channel configurations.", + "value": [ + { + "latest": "1.12.5", + "name": "stable", + "previous": "1.12.4" + }, + { + "latest": "1.12.7", + "name": "alpha", + "previous": "1.12.6" + }, + { + "latest": "1.12.6", + "name": "beta", + "previous": "1.12.5" + } + ] } - }, - "Ignorant Entitlement Creation Request": { - "description": "Clueless dev trying to automate this application without reading the docs. RTFM!", - "summary": "Ignorant Entitlement Creation Request", - "value": {} } - }, - "schema": { - "$ref": "#/components/schemas/LicenseEntitlement.Shield" } - } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, + "summary": "Retrieves All Channel Configurations", + "tags": [ + "SHIELD - Update" + ] + } + }, + "/Api/Update/Shield/Channel/{channelName}": { + "get": { + "description": "Retrieves configuration for the specific channel from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Get", + "parameters": [ + { + "$ref": "#/components/parameters/channelName" + } + ], "responses": { "200": { "content": { "application/json": { + "schema": { + "$ref": "#/components/schemas/Update.Shield.Channel" + }, "examples": { - "Small MSP": { - "description": "Example license entitlement for a small MSP.", - "summary": "Local MSP", + "Stable channel config": { + "summary": "Example Stable Channel Config", + "description": "An example showing the stable update channel configuration.", "value": { - "correlationId": "60594489-6022-4ddb-8aa5-288c8d356cf2", - "enterpriseDeviceCount": 25, - "enterpriseInterfaceCount": 25, - "enterpriseIntermediaryCount": 25, - "enterpriseUserCount": 25, - "notValidAfter": "2024-07-30T17:56:00.704Z", - "notValidBefore": "1970-01-01T00:00:00.000Z", - "privilegedDeviceCount": 10, - "privilegedInterfaceCount": 10, - "privilegedIntermediaryCount": 2, - "privilegedUserCount": 10, - "purchaseId": "Bob's your mother's brother.", - "specializedDeviceCount": 5, - "specializedInterfaceCount": 5, - "specializedIntermediaryCount": 0, - "specializedUserCount": 5, - "tenantId": "1948adeb-797f-466b-962d-cc708a69d08d" + "latest": "1.12.5", + "name": "stable", + "previous": "1.12.4" } }, - "Enterprise": { - "description": "Example license entitlement for an enterprise sized company.", - "summary": "Enterprise", + "Alpha channel config": { + "summary": "Example Alpha Channel Config", + "description": "An example showing the alpha update channel configuration.", "value": { - "correlationId": "46569e8d-eeaa-42f4-b954-05a998108eee", - "enterpriseDeviceCount": 50000, - "enterpriseInterfaceCount": 50000, - "enterpriseIntermediaryCount": 100, - "enterpriseUserCount": 50000, - "notValidAfter": "2024-07-30T17:58:54.619Z", - "notValidBefore": "1970-01-01T00:00:00.000Z", - "privilegedDeviceCount": 300, - "privilegedInterfaceCount": 100, - "privilegedIntermediaryCount": 50, - "privilegedUserCount": 300, - "purchaseId": "Bob's your mother's brother.", - "specializedDeviceCount": 1000, - "specializedInterfaceCount": 5, - "specializedIntermediaryCount": 10, - "specializedUserCount": 1000, - "tenantId": "bf78263c-6cec-44bc-9893-024dde25a486" + "latest": "1.12.7", + "name": "alpha", + "previous": "1.12.6" } } - }, - "schema": { - "$ref": "#/components/schemas/LicenseEntitlement.Shield" } } - }, - "description": "OK" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Retrieves Specific Channel Configuration", + "tags": [ + "SHIELD - Update" + ] + }, + "patch": { + "description": "Updates (or adds when missing) the specified channel configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Patch", + "parameters": [ + { + "$ref": "#/components/parameters/channelName" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "Channel Configuration Details": { + "description": "Example channel configuration object that will add/update for specified channel.", + "summary": "Channel Configuration", + "value": { + "latest": "1.12.5", + "previous": "1.12.4" + } + } + }, + "schema": { + "type": "object", + "properties": { + "latest": { + "description": "Version number of the latest update available to the channel.", + "examples": [ + "1.12.5" + ], + "type": "string" + }, + "previous": { + "description": "Version number of the number that is being replaced via ring deployment, available to all rings at the minimum.", + "examples": [ + "1.12.14" + ], + "type": "string" + } + }, + "examples": [ + { + "latest": "1.12.5", + "previous": "1.12.4" + } + ] + } + } } }, - "tags": [ - "License Entitlement" - ], - "summary": "Creates a New License Entitlement for SHIELD." - } - }, - "/Api/Entitlement/Shield/Active": { - "get": { - "description": "Retrieves the count of licenses that are available to the authenticated tenant. No scopes (permissions) required.", - "operationId": "/Api/Entitlement/Shield/Active/Get", "responses": { "200": { "content": { "application/json": { "examples": { - "Small MSP": { - "description": "Example active license count for a small MSP for the currently authenticated tenant.", - "summary": "Local MSP", - "value": { - "enterpriseDeviceCount": 54, - "enterpriseInterfaceCount": 46, - "enterpriseIntermediaryCount": 2, - "enterpriseUserCount": 54, - "privilegedDeviceCount": 12, - "privilegedInterfaceCount": 52, - "privilegedIntermediaryCount": 4, - "privilegedUserCount": 12, - "specializedDeviceCount": 20, - "specializedInterfaceCount": 15, - "specializedIntermediaryCount": 0, - "specializedUserCount": 20 - } - }, - "No Licenses": { - "description": "Example license count for a company that doesn't have any licenses for the currently authenticated tenant..", - "summary": "No License", - "value": { - "enterpriseDeviceCount": 0, - "enterpriseInterfaceCount": 0, - "enterpriseIntermediaryCount": 0, - "enterpriseUserCount": 0, - "privilegedDeviceCount": 0, - "privilegedInterfaceCount": 0, - "privilegedIntermediaryCount": 0, - "privilegedUserCount": 0, - "specializedDeviceCount": 0, - "specializedInterfaceCount": 0, - "specializedIntermediaryCount": 0, - "specializedUserCount": 0 - } - }, - "Enterprise": { - "description": "Example active license count for an enterprise sized company for the currently authenticated tenant..", - "summary": "Enterprise", + "Channel Configuration Details": { + "description": "Example object returned on creation or update.", + "summary": "Channel Configuration", "value": { - "enterpriseDeviceCount": 60000, - "enterpriseInterfaceCount": 500, - "enterpriseIntermediaryCount": 20, - "enterpriseUserCount": 60000, - "privilegedDeviceCount": 200, - "privilegedInterfaceCount": 450, - "privilegedIntermediaryCount": 15, - "privilegedUserCount": 200, - "specializedDeviceCount": 1000, - "specializedInterfaceCount": 50, - "specializedIntermediaryCount": 2, - "specializedUserCount": 1000 + "latest": "1.12.5", + "name": "stable", + "previous": "1.12.4" } } }, "schema": { - "$ref": "#/components/schemas/LicenseEntitlement.Shield.Count" + "$ref": "#/components/schemas/Update.Shield.Channel" } } }, "description": "OK" }, + "400": { + "$ref": "#/components/responses/400" + }, "401": { "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, + "summary": "Upserts Channel Configuration", "tags": [ - "License Entitlement" + "SHIELD - Update" + ] + }, + "delete": { + "description": "Deletes the specified channel configuration and associated rings.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Delete", + "parameters": [ + { + "$ref": "#/components/parameters/channelName" + } ], - "summary": "List of Available Licenses" + "responses": { + "204": { + "description": "Deleted Successfully" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Deletes the Specified Channel", + "tags": [ + "SHIELD - Update" + ] } }, - "/Api/Entitlement/Shield/Tenant/{tenantId}": { + "/Api/Update/Shield/Channel/{channelName}/Ring": { "get": { - "description": "Retrieves the list of license entitlements that are assigned to the specified tenant.\n\nThis endpoint requires the `LicenseEntitlement.Read.All`, or `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/Entitlement/Shield/Tenant/:tenantId/Get", + "description": "Retrieves all of the ring configurations for a channel that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/Get", "parameters": [ { - "$ref": "#/components/parameters/tenantId" + "$ref": "#/components/parameters/channelName" } ], - "summary": "List of Entitlement Records for Specified Tenant", "responses": { "200": { "content": { "application/json": { "schema": { "type": "array", - "minItems": 0, "items": { - "$ref": "#/components/schemas/LicenseEntitlement.Shield" + "$ref": "#/components/schemas/Update.Shield.Channel.Ring" }, "examples": [ [ { - "correlationId": "e097a3f5-9599-44a2-8923-fd3276c83ae1", - "enterpriseDeviceCount": 5, - "enterpriseInterfaceCount": 6, - "enterpriseIntermediaryCount": 7, - "enterpriseUserCount": 8, - "notValidAfter": "2024-07-30T17:35:24.044Z", - "notValidBefore": "2024-07-30T17:37:15.300Z", - "privilegedDeviceCount": 9, - "privilegedInterfaceCount": 10, - "privilegedIntermediaryCount": 11, - "privilegedUserCount": 12, - "purchaseId": "any arbitrary string as purchaseId", - "specializedDeviceCount": 13, - "specializedInterfaceCount": 14, - "specializedIntermediaryCount": 15, - "specializedUserCount": 15, - "tenantId": "a2a1698d-a3e0-42d3-96a4-47eb3e8f7dd1" + "latest": true, + "number": 1 } ] ] }, "examples": { - "Example Purchase": { - "summary": "Example Entitlement Purchase", - "description": "An example SHIELD entitlement for the specified tenant.", + "All ring config": { + "summary": "Example All Ring Configs", + "description": "An example showing the configurations of all rings of the specified channel.", "value": [ { - "correlationId": "e097a3f5-9599-44a2-8923-fd3276c83ae1", - "enterpriseDeviceCount": 5, - "enterpriseInterfaceCount": 6, - "enterpriseIntermediaryCount": 7, - "enterpriseUserCount": 8, - "notValidAfter": "2024-07-30T17:35:24.044Z", - "notValidBefore": "2024-07-30T17:37:15.300Z", - "privilegedDeviceCount": 9, - "privilegedInterfaceCount": 10, - "privilegedIntermediaryCount": 11, - "privilegedUserCount": 12, - "purchaseId": "any arbitrary string as purchaseId", - "specializedDeviceCount": 13, - "specializedInterfaceCount": 14, - "specializedIntermediaryCount": 15, - "specializedUserCount": 15, - "tenantId": "a2a1698d-a3e0-42d3-96a4-47eb3e8f7dd1" + "latest": true, + "number": 1 + }, + { + "latest": false, + "number": 0 } ] } @@ -4209,90 +7158,109 @@ }, "description": "OK" }, - "400": { - "$ref": "#/components/responses/400" - }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Retrieves All Ring Configurations", + "tags": [ + "SHIELD - Update" + ] + } + }, + "/Api/Update/Shield/Channel/{channelName}/Ring/{number}": { + "get": { + "description": "Retrieves configuration for the specific channel ring from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Get", + "parameters": [ + { + "$ref": "#/components/parameters/channelName" + }, + { + "$ref": "#/components/parameters/channelRing" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Update.Shield.Channel.Ring" + }, + "examples": { + "Sample ring config": { + "summary": "Example Ring Configuration", + "description": "An example ring configuration for the specified channel and ring.", + "value": { + "latest": true, + "number": 1 + } + } + } + } + }, + "description": "OK" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, + "summary": "Retrieves Specific Channel Ring Configuration", "tags": [ - "License Entitlement" + "SHIELD - Update" ] - } - }, - "/Api/Entitlement/Shield/Tenant/{tenantId}/Correlation/{correlationId}": { - "delete": { - "description": "Deletes the requested SHIELD license entitlement record.\n\nThis endpoint requires the `LicenseEntitlement.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/Entitlement/Shield/Tenant/:tenantId/Correlation/:correlationId/Delete", + }, + "patch": { + "description": "Updates (or adds when missing) channel ring configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Patch", "parameters": [ { - "$ref": "#/components/parameters/tenantId" + "$ref": "#/components/parameters/channelName" }, { - "$ref": "#/components/parameters/correlationId" + "$ref": "#/components/parameters/channelRing" } ], - "summary": "Delete Specified License Entitlement", - "responses": { - "201": { - "description": "Deleted Successfully" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, - "404": { - "$ref": "#/components/responses/404" - } - }, - "tags": [ - "License Entitlement" - ] - } - }, - "/Api/Telemetry/Shield": { - "post": { - "description": "Submits the telemetry report for SHIELD.\n\nThis endpoint requires the `Telemetry.Shield.ReadWrite`, or `Telemetry.Shield.ReadWrite.All` scope (permission).", - "operationId": "/Api/Telemetry/Shield/Post", "requestBody": { "content": { "application/json": { "examples": { - "Monthly Report": { - "description": "Example monthly telemetry report for an enterprise organization.", - "summary": "Monthly Report", + "Channel Ring Configuration Details": { + "description": "Example channel ring configuration object.", + "summary": "Channel Ring Configuration", "value": { - "enterpriseDeviceCount": 64221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 642219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238 + "latest": true } } }, "schema": { - "$ref": "#/components/schemas/Telemetry.Shield" + "type": "object", + "properties": { + "latest": { + "description": "Flag that indicates if the ring should be operating off of the latest version number provided by the channel (`true`) or the previous (`false`).", + "examples": [ + true + ], + "type": "boolean" + } + }, + "examples": [ + { + "latest": false + } + ] } } } @@ -4302,374 +7270,273 @@ "content": { "application/json": { "examples": { - "Monthly Report": { - "description": "An example of latest monthly telemetry report for an enterprise organization after the latest telemetry input.", - "summary": "Updated Monthly Report", + "Channel Ring Configuration Details": { + "description": "Example object returned on creation or update.", + "summary": "Channel Ring Configuration", "value": { - "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", - "enterpriseDeviceCount": 64221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 642219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-08-05T15:25:55.525Z", - "updatedAt": "2024-08-05T15:25:55.525Z" + "latest": true, + "number": 1 } } }, "schema": { - "$ref": "#/components/schemas/Telemetry.Shield" + "$ref": "#/components/schemas/Update.Shield.Channel.Ring" } } }, "description": "OK" }, + "400": { + "$ref": "#/components/responses/400" + }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, + "summary": "Modifies Specific Channel Ring Configuration", "tags": [ - "Telemetry" - ], - "summary": "Collects SHIELD Telemetry" - }, - "get": { - "description": "Retrieves the telemetry records that have been reported for the authenticated tenant. Data is not guaranteed to be retrieved in any specific order.\n\nThis endpoint requires the `Telemetry.Shield.Read`, `Telemetry.Shield.Read.All`, `Telemetry.Shield.ReadWrite`, or `Telemetry.Shield.ReadWrite.All` scope (permission).", - "operationId": "/Api/Telemetry/Shield/Get", - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "List of Reports": { - "description": "List of all available SHIELD telemetry reports for the current authenticated tenant.", - "summary": "List of SHIELD Telemetry Reports", - "value": [ - { - "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", - "enterpriseDeviceCount": 64221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 642219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-08-05T15:25:55.525Z", - "updatedAt": "2024-08-05T15:25:55.525Z" - }, - { - "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", - "enterpriseDeviceCount": 63221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 632219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-07-05T15:25:55.525Z", - "updatedAt": "2024-07-05T15:25:55.525Z" - } - ] - } - }, - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Telemetry.Shield" - }, - "minItems": 0, - "examples": [ - [ - { - "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", - "enterpriseDeviceCount": 64221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 642219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-08-05T15:25:55.525Z", - "updatedAt": "2024-08-05T15:25:55.525Z" - }, - { - "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", - "enterpriseDeviceCount": 63221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 632219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-07-05T15:25:55.525Z", - "updatedAt": "2024-07-05T15:25:55.525Z" - } - ] - ] - } + "SHIELD - Update" + ] + }, + "delete": { + "description": "Deletes configuration of the specific channel ring.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Delete", + "parameters": [ + { + "$ref": "#/components/parameters/channelName" + }, + { + "$ref": "#/components/parameters/channelRing" + } + ], + "responses": { + "204": { + "description": "Deleted Successfully" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Deletes Specific Channel Ring Configuration", + "tags": [ + "SHIELD - Update" + ] + } + }, + "/Api/Update/Shield/Channel/{channelName}/Version/{version}": { + "post": { + "description": "Uploads new version of the update package for SHIELD in a specific channel.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Channel/:channelName/Version/:version/Post", + "parameters": [ + { + "$ref": "#/components/parameters/channelName" + }, + { + "$ref": "#/components/parameters/version" + } + ], + "requestBody": { + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" } - }, + } + } + }, + "responses": { + "204": { "description": "OK" }, + "400": { + "$ref": "#/components/responses/400" + }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Lists Reported Telemetry", + "summary": "Uploads New Application Package", "tags": [ - "Telemetry" + "SHIELD - Update" ] } }, - "/Api/Telemetry/Shield/Tenant/{tenantId}": { + "/Api/Update/Shield/Check": { "get": { - "description": "Retrieves the telemetry records that have been reported for the specified tenant. Data is not guaranteed to be retrieved in any specific order.\n\nThis endpoint requires the `Telemetry.Shield.Read.All`, or `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/Telemetry/Shield/Tenant/:tenantId/Get", + "description": "Retrieves the latest available version of the package for the running application. Version depends on the channel associated with the current tenant, or channel mentioned in the request, or default channel value. Applicable channel would be calculated on the server for each request.", + "operationId": "/Api/Update/Shield/Check/Get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Update.Shield.Check" + }, + "examples": { + "Latest package version": { + "summary": "Example Latest Application Version", + "description": "An example showing the latest SHIELD package available.", + "value": { + "updateVersion": "1.12.5" + } + } + } + } + }, + "description": "OK" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Retrieves Latest Application Version Number", + "tags": [ + "SHIELD - Update" + ] + } + }, + "/Api/Update/Shield/Check/Channel/{channelName}": { + "get": { + "description": "Retrieves the latest available version of the package for the running application for the specific channel.", + "operationId": "/Api/Update/Shield/Check/Channel/:channelName/Get", "parameters": [ { - "$ref": "#/components/parameters/tenantId" + "$ref": "#/components/parameters/channelName" } ], "responses": { "200": { "content": { "application/json": { + "schema": { + "$ref": "#/components/schemas/Update.Shield.Check" + }, "examples": { - "List of Reports": { - "description": "List of all available SHIELD telemetry reports for the specified tenant.", - "summary": "List of SHIELD Telemetry Reports", - "value": [ - { - "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", - "enterpriseDeviceCount": 64221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 642219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-08-05T15:25:55.525Z", - "updatedAt": "2024-08-05T15:25:55.525Z" - }, - { - "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", - "enterpriseDeviceCount": 63221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 632219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-07-05T15:25:55.525Z", - "updatedAt": "2024-07-05T15:25:55.525Z" - } - ] + "Latest package version": { + "summary": "Example Latest Application Version", + "description": "An example showing the latest SHIELD package available for the specified channel.", + "value": { + "updateVersion": "1.12.5" + } } - }, + } + } + }, + "description": "OK" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Retrieves Application Version Number For Specific Channel", + "tags": [ + "SHIELD - Update" + ] + } + }, + "/Api/Update/Shield/Download": { + "get": { + "description": "Sends a stream of the ZIP archive content to be saved that represents requested application update package.", + "operationId": "/Api/Update/Shield/Download/Get", + "responses": { + "200": { + "description": "OK", + "content": { + "application/zip": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Telemetry.Shield" - }, - "minItems": 0, + "type": "string", + "format": "binary", "examples": [ - [ - { - "correlationId": "6fe3cd30-931c-439a-b759-1e7f3a73622e", - "enterpriseDeviceCount": 64221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 642219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-08-05T15:25:55.525Z", - "updatedAt": "2024-08-05T15:25:55.525Z" - }, - { - "correlationId": "a57d03c6-8218-4738-b860-ac158e257e27", - "enterpriseDeviceCount": 63221, - "enterpriseInterfaceCount": 523, - "enterpriseIntermediaryCount": 44, - "enterpriseUserCount": 632219, - "monthlyActiveEntUsers": 0, - "monthlyActivePrivUsers": 0, - "monthlyActiveSpecUsers": 0, - "privilegedDeviceCount": 50, - "privilegedInterfaceCount": 2000, - "privilegedIntermediaryCount": 25, - "privilegedUserCount": 50, - "shieldArchitectureVersion": "2", - "shieldCoreVersion": "3.0.0", - "specializedDeviceCount": 0, - "specializedInterfaceCount": 612, - "specializedIntermediaryCount": 2, - "specializedUserCount": 5238, - "tenantId": "46759f55-fb42-49e3-83ab-93de2a39bc1d", - "createdAt": "2024-07-05T15:25:55.525Z", - "updatedAt": "2024-07-05T15:25:55.525Z" - } - ] + "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" ] + }, + "examples": { + "base64-inline": { + "summary": "Base64-encoded ZIP)", + "description": "Base64 encoding of a small ZIP (truncated) to simulate a update package binary string for the channel specified.", + "value": "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" + } } } - }, - "description": "OK" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" + } }, - "404": { - "$ref": "#/components/responses/404" + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Retrieves Telemetry for Specified Tenant", + "summary": "Streams File Content To Download", "tags": [ - "Telemetry" + "SHIELD - Update" ] } }, - "/Api/Telemetry/Shield/Tenant/{tenantId}/Correlation/{correlationId}": { - "delete": { - "description": "Deletes the specified telemetry record for the specified tenant.\n\nThis endpoint requires the `Telemetry.Shield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/Telemetry/Shield/Tenant/:tenantId/Correlation/:correlationId/Delete", + "/Api/Update/Shield/Download/Channel/{channelName}": { + "get": { + "description": "Sends a stream of the ZIP archive content to be saved that represents requested application update package for the specific channel.", + "operationId": "/Api/Update/Shield/Download/Channel/:channelName/Get", "parameters": [ { - "$ref": "#/components/parameters/tenantId" - }, - { - "$ref": "#/components/parameters/correlationId" + "$ref": "#/components/parameters/channelName" } ], "responses": { - "201": { - "description": "Deleted Successfully" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" + "200": { + "description": "OK", + "content": { + "application/zip": { + "schema": { + "type": "string", + "format": "binary", + "examples": [ + "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" + ] + }, + "examples": { + "base64-inline": { + "summary": "Base64-encoded ZIP", + "description": "Base64 encoding of a small ZIP (truncated) to simulate a update package binary string for the channel specified.", + "value": "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" + } + } + } + } }, "403": { "$ref": "#/components/responses/403" }, - "404": { - "$ref": "#/components/responses/404" + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Delete Specified Telemetry Record", + "summary": "Streams File Content From Specific Channel To Download", "tags": [ - "Telemetry" + "SHIELD - Update" ] } }, - "/Api/Update/Shield/Channel": { + "/Api/Update/Shield/Tenant": { "get": { - "description": "Retrieves all of the channel configurations that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/Get", + "description": "Retrieves all tenant configurations present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Tenant/Get", "responses": { "200": { "content": { @@ -4677,37 +7544,29 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/Update.Shield.Channel" + "$ref": "#/components/schemas/Update.Shield.Tenant" }, "examples": [ [ { - "latest": "1.12.5", - "name": "stable", - "previous": "1.12.4" + "alphaEnabled": false, + "channel": "stable", + "ring": 1, + "tenantId": "1d71e0fe-6e4a-464d-a690-80addf3bda55" } ] ] }, "examples": { - "Channel configuration": { - "summary": "Example All Channel Configs", - "description": "An example showing the all channel configurations.", + "All tenant list": { + "summary": "Example All Tenant List", + "description": "A example truncated list of all tenant configurations that present in the update service.", "value": [ { - "latest": "1.12.5", - "name": "stable", - "previous": "1.12.4" - }, - { - "latest": "1.12.7", - "name": "alpha", - "previous": "1.12.6" - }, - { - "latest": "1.12.6", - "name": "beta", - "previous": "1.12.5" + "alphaEnabled": false, + "channel": "stable", + "ring": 1, + "tenantId": "1d71e0fe-6e4a-464d-a690-80addf3bda55" } ] } @@ -4726,19 +7585,19 @@ "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Retrieves All Channel Configurations", + "summary": "Retrieves All Tenant Configurations", "tags": [ "SHIELD - Update" ] } }, - "/Api/Update/Shield/Channel/{channelName}": { + "/Api/Update/Shield/Tenant/{tenantId}": { "get": { - "description": "Retrieves configuration for the specific channel from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Get", + "description": "Retrieves configuration for the specific tenant from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Tenant/:tenantId/Get", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/tenantId" } ], "responses": { @@ -4746,25 +7605,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Update.Shield.Channel" + "$ref": "#/components/schemas/Update.Shield.Tenant" }, "examples": { - "Stable channel config": { - "summary": "Example Stable Channel Config", - "description": "An example showing the stable update channel configuration.", - "value": { - "latest": "1.12.5", - "name": "stable", - "previous": "1.12.4" - } - }, - "Alpha channel config": { - "summary": "Example Alpha Channel Config", - "description": "An example showing the alpha update channel configuration.", + "Tenant config": { + "summary": "Example Tenant Config", + "description": "A example configurations that present in the update service of the specified tenant.", "value": { - "latest": "1.12.7", - "name": "alpha", - "previous": "1.12.6" + "alphaEnabled": false, + "channel": "stable", + "ring": 1, + "tenantId": "1d71e0fe-6e4a-464d-a690-80addf3bda55" } } } @@ -4782,54 +7633,63 @@ "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Retrieves Specific Channel Configuration", + "summary": "Retrieves Specific Tenant Configuration", "tags": [ "SHIELD - Update" ] }, "patch": { - "description": "Updates (or adds when missing) the specified channel configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Patch", + "description": "Updates (or adds when missing) tenant configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Tenant/:tenantId/Patch", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/tenantId" } ], "requestBody": { "content": { "application/json": { "examples": { - "Channel Configuration Details": { - "description": "Example channel configuration object that will add/update for specified channel.", - "summary": "Channel Configuration", + "Tenant Configuration Details": { + "description": "Example tenant configuration object.", + "summary": "Tenant Configuration", "value": { - "latest": "1.12.5", - "previous": "1.12.4" + "alphaEnabled": false, + "channel": "stable", + "ring": 1 } } }, "schema": { "type": "object", "properties": { - "latest": { - "description": "Version number of the latest update available to the channel.", + "alphaEnabled": { + "description": "Flag that indicates if the current tenant is allowed to request alpha builds (`true`) or not (`false`).", "examples": [ - "1.12.5" + false ], - "type": "string" + "type": "boolean" }, - "previous": { - "description": "Version number of the number that is being replaced via ring deployment, available to all rings at the minimum.", + "channel": { + "description": "Name of the deploy channel.", "examples": [ - "1.12.14" + "stable" ], "type": "string" + }, + "ring": { + "description": "Ring number that the client belongs to for the current channel.", + "examples": [ + 1 + ], + "type": "integer" } }, "examples": [ { - "latest": "1.12.5", - "previous": "1.12.4" + "alphaEnabled": false, + "channel": "stable", + "ring": 1 } ] } @@ -4841,18 +7701,19 @@ "content": { "application/json": { "examples": { - "Channel Configuration Details": { - "description": "Example object returned on creation or update.", - "summary": "Channel Configuration", + "Tenant Configuration Details": { + "description": "Example object returned on creation or update with tenantId set.", + "summary": "Tenant Configuration", "value": { - "latest": "1.12.5", - "name": "stable", - "previous": "1.12.4" + "alphaEnabled": false, + "channel": "stable", + "ring": 1, + "tenantId": "a2a1698d-a3e0-42d3-96a4-47eb3e8f7dd1" } } }, "schema": { - "$ref": "#/components/schemas/Update.Shield.Channel" + "$ref": "#/components/schemas/Update.Shield.Tenant" } } }, @@ -4871,17 +7732,17 @@ "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Upserts Channel Configuration", + "summary": "Upserts Specific Tenant Configuration", "tags": [ "SHIELD - Update" ] }, "delete": { - "description": "Deletes the specified channel configuration and associated rings.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Delete", + "description": "Deletes configuration for the specific tenant.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", + "operationId": "/Api/Update/Shield/Tenant/:tenantId/Delete", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/tenantId" } ], "responses": { @@ -4898,19 +7759,19 @@ "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Deletes the Specified Channel", + "summary": "Deletes Specific Tenant Configuration", "tags": [ "SHIELD - Update" ] } }, - "/Api/Update/Shield/Channel/{channelName}/Ring": { + "/Api/Tenant": { "get": { - "description": "Retrieves all of the ring configurations for a channel that are present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/Get", + "description": "Retrieves the list of tenant records. Can use filter by parent ID limit the results. This endpoint requires the `Tenant.Read.All` or `Tenant.ReadWrite.All` scopes (permissions).", + "operationId": "/Api/Tenant/Get", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/parentId" } ], "responses": { @@ -4919,30 +7780,54 @@ "application/json": { "schema": { "type": "array", + "minItems": 0, "items": { - "$ref": "#/components/schemas/Update.Shield.Channel.Ring" + "$ref": "#/components/schemas/TenantDetails" }, "examples": [ [ { - "latest": true, - "number": 1 + "tenantId": "7e8f9a0b-1c2d-3e4b-5a6c-7d8e9f0a1b2c", + "tenantDisplayName": "Contoso - R&D", + "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", + "authorizedPrincipalList": [] } ] ] }, "examples": { - "All ring config": { - "summary": "Example All Ring Configs", - "description": "An example showing the configurations of all rings of the specified channel.", + "Example List Of Multiple Tenant Records": { + "description": "Sample list of multiple tenant records in the database", + "summary": "Multiple Tenant Records", "value": [ { - "latest": true, - "number": 1 + "tenantId": "5d6e7f8a-9b0c-1d2e-3f4a-5b6c7d8e9f0a", + "tenantDisplayName": "Contoso - Legal", + "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", + "authorizedPrincipalList": [ + "59673771-3b4f-4518-9187-aee8a51c8c07", + "47c42971-2dea-4553-a788-d29a42e3e867" + ] }, { - "latest": false, - "number": 0 + "tenantId": "7e8f9a0b-1c2d-3e4b-5a6c-7d8e9f0a1b2c", + "tenantDisplayName": "Contoso - R&D", + "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", + "authorizedPrincipalList": [ + "7e9ce415-32b2-4e7a-a920-d4dbaae022e3" + ] + } + ] + }, + "Example List Of Single Tenant Record": { + "description": "Example list of single tenant records which no user is authorized yet.", + "summary": "Single Tenant Records", + "value": [ + { + "tenantId": "7e8f9a0b-1c2d-3e4b-5a6c-7d8e9f0a1b2c", + "tenantDisplayName": "Contoso - R&D", + "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", + "authorizedPrincipalList": [] } ] } @@ -4951,32 +7836,29 @@ }, "description": "OK" }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" + "404": { + "$ref": "#/components/responses/404" }, "500": { "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Retrieves All Ring Configurations", + "summary": "Retrieves List of Tenant Records", "tags": [ - "SHIELD - Update" + "Tenant Records" ] } }, - "/Api/Update/Shield/Channel/{channelName}/Ring/{number}": { + "/Api/Tenant/{tenantId}": { "get": { - "description": "Retrieves configuration for the specific channel ring from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Get", + "description": "Retrieves details of a specific tenant record. This endpoint requires the `Tenant.Read.All` or `Tenant.ReadWrite.All` scopes (permissions).", + "operationId": "/Api/Tenant/:tenantId/Get", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/tenantId" }, { - "$ref": "#/components/parameters/channelRing" + "$ref": "#/components/parameters/parentId" } ], "responses": { @@ -4984,15 +7866,21 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Update.Shield.Channel.Ring" + "$ref": "#/components/schemas/TenantDetails" }, "examples": { - "Sample ring config": { - "summary": "Example Ring Configuration", - "description": "An example ring configuration for the specified channel and ring.", + "Example Complete Tenant Record": { + "description": "An example showing a single existing tenant record.", + "summary": "Existing Tenant Record", "value": { - "latest": true, - "number": 1 + "tenantId": "9f0a1b2c-3d4e-5f6a-7b8c-9d0e1f2a3b4c", + "tenantDisplayName": "Contoso - Testing", + "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", + "authorizedPrincipalList": [ + "9f0a1b2c-3d4e-5f6a-7b8c-9d0e1f2a3b4c", + "2e3f4a5b-6c7d-8e9f-0a1b-2c3d4e5f6a7b", + "4b5c6d7e-8f9a-0b1c-2d3e-4f5a6b7c8d9e" + ] } } } @@ -5000,1031 +7888,1585 @@ }, "description": "OK" }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" + "404": { + "$ref": "#/components/responses/404" }, "500": { "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." } }, - "summary": "Retrieves Specific Channel Ring Configuration", + "summary": "Retrieves Tenant Record", "tags": [ - "SHIELD - Update" + "Tenant Records" ] }, "patch": { - "description": "Updates (or adds when missing) channel ring configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Patch", + "description": "Update tenant record using provided information. Payload could contain any combination of existing properties. To remove a parent, set the parentId to be the same as the tenant ID value. This endpoint requires the `Tenant.ReadWrite.All` scopes (permissions).", + "operationId": "/Api/Tenant/:tenantId/Patch", "parameters": [ { - "$ref": "#/components/parameters/channelName" - }, - { - "$ref": "#/components/parameters/channelRing" + "$ref": "#/components/parameters/tenantId" } ], "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantDisplayName": { + "description": "Human readable name for the tenant record", + "type": "string", + "examples": [ + "Contoso - R&D East" + ] + }, + "parentId": { + "description": "The object ID of the tenant that is considered a parent to this record", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", + "type": "string", + "examples": [ + "6a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d" + ] + }, + "authorizedPrincipalList": { + "description": "List of object IDs that are allowed to access this record and related data.", + "type": "array", + "items": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", + "type": "string", + "examples": [ + "4cae3355-0cff-410c-b4f9-69cb5de8f1ac" + ] + }, + "examples": [ + [ + "4cae3355-0cff-410c-b4f9-69cb5de8f1ac", + "0e52e6ac-f8e1-4070-ae2e-9bd0a37507a1" + ] + ] + } + }, + "anyOf": [ + { + "required": [ + "tenantDisplayName" + ] + }, + { + "required": [ + "parentId" + ] + }, + { + "required": [ + "authorizedPrincipalList" + ] + } + ], + "examples": [ + { + "tenantDisplayName": "Contoso - R&D East", + "parentId": "6a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d", + "authorizedPrincipalList": [ + "4cae3355-0cff-410c-b4f9-69cb5de8f1ac", + "0e52e6ac-f8e1-4070-ae2e-9bd0a37507a1" + ] + } + ] + }, + "examples": { + "Example Request to Update Tenant Parent": { + "description": "Sample payload requesting adjustment to the parent value.", + "summary": "Update Parent Information for Tenant", + "value": { + "parentId": "6a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d" + } + }, + "Example Request for Tenant Name and Parent Update": { + "description": "Sample payload requesting to update parent value and display name on the tenant record.", + "summary": "Update Tenant Record Name and Parent Information", + "value": { + "parentId": "8f9a0b1c-2d3e-4f5a-6b7c-8d9e0a1b2c3d", + "tenantDisplayName": "Contoso - R&D West" + } + }, + "Example Request for Tenant Authorized Principals Update": { + "description": "Sample payload requesting to update authorized principals for the tenant record.", + "summary": "Update Tenant Authorized Principals List", + "value": { + "authorizedPrincipalList": [ + "4cae3355-0cff-410c-b4f9-69cb5de8f1ac", + "0e52e6ac-f8e1-4070-ae2e-9bd0a37507a1" + ] + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TenantDetails" + }, + "examples": { + "Example Complete Tenant Record": { + "description": "Sample response after updating a tenant record.", + "summary": "Updated Tenant Record", + "value": { + "tenantId": "c00ffc2c-b6f6-4121-bd8e-4d02e9504eb9", + "tenantDisplayName": "Contoso - Testing", + "parentId": "8c291062-a4f7-4706-b4df-59e605497f06", + "authorizedPrincipalList": [ + "b856517a-2086-4be4-b63e-d6ca8a5b0ff6" + ] + } + } + } + } + }, + "description": "OK" + }, + "500": { + "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + } + }, + "summary": "Update Tenant Record", + "tags": [ + "Tenant Records" + ] + } + }, + "/Api/V1/ArchitectureReport": { + "post": { + "description": "Stores the results of an Architecture report.\n\nThis endpoint requires the `ArchitectureReport.ReadWrite`, `ArchitectureReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/ArchitectureReport/Post", + "requestBody": { + "required": true, "content": { "application/json": { "examples": { - "Channel Ring Configuration Details": { - "description": "Example channel ring configuration object.", - "summary": "Channel Ring Configuration", + "Architecture Report V1": { + "description": "Sample, truncated report from an example customer environment. This will return the same report as the request input.", + "summary": "Example of License Report Stored.", "value": { - "latest": true + "correlation": { + "auditTenantAccount": "user@example.com" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Engineer", + "idpDepartment": "IT", + "idpOfficeLocation": "HQ", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "tenantMetadata": { + "totalDeviceCount": 1, + "totalGuestCount": 1, + "totalMemberCount": 1, + "totalUserCount": 1 + }, + "schemaVersion": 1 } } }, "schema": { - "type": "object", - "properties": { - "latest": { - "description": "Flag that indicates if the ring should be operating off of the latest version number provided by the channel (`true`) or the previous (`false`).", - "examples": [ - true - ], - "type": "boolean" - } - }, - "examples": [ - { - "latest": false - } - ] + "$ref": "#/components/schemas/ArchitectureReportV1" } } } }, "responses": { "200": { + "description": "Architecture Report V1 submitted successfully.", "content": { "application/json": { "examples": { - "Channel Ring Configuration Details": { - "description": "Example object returned on creation or update.", - "summary": "Channel Ring Configuration", + "Architecture Report V1": { + "description": "Sample, truncated report from an example customer environment. This will return the same report as the request input.", + "summary": "Example of License Report Stored.", "value": { - "latest": true, - "number": 1 + "correlation": { + "auditTenantAccount": "user@example.com", + "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Engineer", + "idpDepartment": "IT", + "idpOfficeLocation": "HQ", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "tenantMetadata": { + "totalDeviceCount": 1, + "totalGuestCount": 1, + "totalMemberCount": 1, + "totalUserCount": 1 + }, + "schemaVersion": 1 } } }, "schema": { - "$ref": "#/components/schemas/Update.Shield.Channel.Ring" + "$ref": "#/components/schemas/ArchitectureReportV1" } } - }, - "description": "OK" + } }, "400": { "$ref": "#/components/responses/400" }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Modifies Specific Channel Ring Configuration", "tags": [ - "SHIELD - Update" - ] - }, - "delete": { - "description": "Deletes configuration of the specific channel ring.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Ring/:number/Delete", - "parameters": [ - { - "$ref": "#/components/parameters/channelName" - }, - { - "$ref": "#/components/parameters/channelRing" - } + "Architecture Reporting" ], - "responses": { - "204": { - "description": "Deleted Successfully" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, - "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." - } - }, - "summary": "Deletes Specific Channel Ring Configuration", - "tags": [ - "SHIELD - Update" - ] + "summary": "Submit Architecture Report V1" } }, - "/Api/Update/Shield/Channel/{channelName}/Version/{version}": { - "post": { - "description": "Uploads new version of the update package for SHIELD in a specific channel.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Channel/:channelName/Version/:version/Post", + "/Api/V1/ArchitectureReport/Correlation": { + "get": { + "description": "Retrieves the list of correlation records for the authenticated tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific architecture report.\n\nThis endpoint requires the `ArchitectureReport.Read`, `ArchitectureReport.Read.All`, `ArchitectureReport.ReadWrite`, or `ArchitectureReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/ArchitectureReport/Correlation/Get", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/dateStart" }, { - "$ref": "#/components/parameters/version" + "$ref": "#/components/parameters/dateEnd" } ], - "requestBody": { - "content": { - "application/octet-stream": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "responses": { - "204": { - "description": "OK" - }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, - "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." - } - }, - "summary": "Uploads New Application Package", - "tags": [ - "SHIELD - Update" - ] - } - }, - "/Api/Update/Shield/Check": { - "get": { - "description": "Retrieves the latest available version of the package for the running application. Version depends on the channel associated with the current tenant, or channel mentioned in the request, or default channel value. Applicable channel would be calculated on the server for each request.", - "operationId": "/Api/Update/Shield/Check/Get", "responses": { "200": { + "description": "A list of correlation records.", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Update.Shield.Check" - }, "examples": { - "Latest package version": { - "summary": "Example Latest Application Version", - "description": "An example showing the latest SHIELD package available.", - "value": { - "updateVersion": "1.12.5" - } + "Example Correlation Records": { + "description": "Sample list of correlation records for the current authenticated tenant.", + "summary": "Available Correlation Records", + "value": [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "5888a922-9f5b-45fd-bd5f-de3283d6a79e", + "createdAt": "2023-12-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] } + }, + "schema": { + "examples": [ + [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "5888a922-9f5b-45fd-bd5f-de3283d6a79e", + "createdAt": "2023-12-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] + ], + "items": { + "$ref": "#/components/schemas/Report.CorrelationRecord" + }, + "minItems": 0, + "type": "array" } } - }, - "description": "OK" + } + }, + "400": { + "$ref": "#/components/responses/400" }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Retrieves Latest Application Version Number", "tags": [ - "SHIELD - Update" - ] + "Architecture Reporting" + ], + "summary": "Get Correlation Records" } }, - "/Api/Update/Shield/Check/Channel/{channelName}": { + "/Api/V1/ArchitectureReport/Correlation/Tenant/{tenantId}": { "get": { - "description": "Retrieves the latest available version of the package for the running application for the specific channel.", - "operationId": "/Api/Update/Shield/Check/Channel/:channelName/Get", + "description": "Retrieves the list of correlation records for the specified tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific architecture report.\n\nThis endpoint requires the `ArchitectureReport.Read.All`, or `ArchitectureReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/V1/ArchitectureReport/Correlation/Tenant/:tenantId/Get", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/tenantId" + }, + { + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" } ], "responses": { "200": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Update.Shield.Check" - }, "examples": { - "Latest package version": { - "summary": "Example Latest Application Version", - "description": "An example showing the latest SHIELD package available for the specified channel.", - "value": { - "updateVersion": "1.12.5" - } + "Example Correlation Records": { + "description": "Sample list of correlation records for the specified tenant.", + "summary": "Available Correlation Records", + "value": [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] } + }, + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/Report.CorrelationRecord" + }, + "examples": [ + [ + { + "auditTenantAccount": "user@example.com", + "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + { + "auditTenantAccount": "user@example.com", + "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + } + ] + ] } } }, - "description": "OK" + "description": "A list of correlation records for the specified tenant." + }, + "400": { + "$ref": "#/components/responses/400" }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Retrieves Application Version Number For Specific Channel", + "summary": "Get Correlation Records by Tenant", "tags": [ - "SHIELD - Update" + "Architecture Reporting" ] } }, - "/Api/Update/Shield/Download": { - "get": { - "description": "Sends a stream of the ZIP archive content to be saved that represents requested application update package.", - "operationId": "/Api/Update/Shield/Download/Get", + "/Api/V1/ArchitectureReport/Correlation/{correlationId}/Data": { + "delete": { + "description": "Deletes the full architecture report v1 for the specified correlation ID.\n\nThis endpoint requires the `ArchitectureReport.ReadWrite`, or `ArchitectureReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Data/Delete", + "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + } + ], "responses": { - "200": { - "description": "OK", - "content": { - "application/zip": { - "schema": { - "type": "string", - "format": "binary", - "examples": [ - "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" - ] - }, - "examples": { - "base64-inline": { - "summary": "Base64-encoded ZIP)", - "description": "Base64 encoding of a small ZIP (truncated) to simulate a update package binary string for the channel specified.", - "value": "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" - } - } - } - } + "204": { + "description": "Architecture report data deleted successfully." + }, + "400": { + "$ref": "#/components/responses/400" }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Streams File Content To Download", + "summary": "Delete Architecture Report Data by Correlation ID", "tags": [ - "SHIELD - Update" + "Architecture Reporting" ] - } - }, - "/Api/Update/Shield/Download/Channel/{channelName}": { + }, "get": { - "description": "Sends a stream of the ZIP archive content to be saved that represents requested application update package for the specific channel.", - "operationId": "/Api/Update/Shield/Download/Channel/:channelName/Get", + "description": "Retrieves the full architecture report v1 for the specified correlation ID in the authenticated tenant. The architecture report v1 contains all of the tenant metadata and user/device data with the required correlation data.\n\nThis endpoint requires the `ArchitectureReport.Read`, `ArchitectureReport.Read.All`, `ArchitectureReport.ReadWrite`, or `ArchitectureReport.ReadWrite.All` scope (permission).", + "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Data/Get", "parameters": [ { - "$ref": "#/components/parameters/channelName" + "$ref": "#/components/parameters/correlationId" } ], "responses": { "200": { - "description": "OK", + "description": "The architecture report data for the specified correlation ID.", "content": { - "application/zip": { - "schema": { - "type": "string", - "format": "binary", - "examples": [ - "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" - ] - }, + "application/json": { "examples": { - "base64-inline": { - "summary": "Base64-encoded ZIP", - "description": "Base64 encoding of a small ZIP (truncated) to simulate a update package binary string for the channel specified.", - "value": "UEsDBBQAAAAIAAeLbU0AAAAAAAAAAAAAAAAJAAQATm90ZS50eHRVVAkAA1V2YV... (truncated)" + "Example Architecture Report V1": { + "description": "Sample structure of the valid architecture report along with all relevant metadata retrieved using correlation record ID.", + "summary": "Architecture Report Details", + "value": { + "correlation": { + "auditTenantAccount": "user@example.com", + "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Engineer", + "idpDepartment": "IT", + "idpOfficeLocation": "HQ", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "tenantMetadata": { + "totalDeviceCount": 1, + "totalGuestCount": 1, + "totalMemberCount": 1, + "totalUserCount": 1 + }, + "schemaVersion": 1 + } } - } - } - } - }, - "403": { - "$ref": "#/components/responses/403" - }, - "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." - } - }, - "summary": "Streams File Content From Specific Channel To Download", - "tags": [ - "SHIELD - Update" - ] - } - }, - "/Api/Update/Shield/Tenant": { - "get": { - "description": "Retrieves all tenant configurations present in the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Tenant/Get", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Update.Shield.Tenant" - }, - "examples": [ - [ - { - "alphaEnabled": false, - "channel": "stable", - "ring": 1, - "tenantId": "1d71e0fe-6e4a-464d-a690-80addf3bda55" - } - ] - ] }, - "examples": { - "All tenant list": { - "summary": "Example All Tenant List", - "description": "A example truncated list of all tenant configurations that present in the update service.", - "value": [ - { - "alphaEnabled": false, - "channel": "stable", - "ring": 1, - "tenantId": "1d71e0fe-6e4a-464d-a690-80addf3bda55" - } - ] - } + "schema": { + "$ref": "#/components/schemas/ArchitectureReportV1" } } - }, - "description": "OK" - }, - "401": { - "$ref": "#/components/responses/401" + } }, - "403": { - "$ref": "#/components/responses/403" + "400": { + "$ref": "#/components/responses/400" }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Retrieves All Tenant Configurations", + "summary": "Retrieve the Specified Architecture Report V1 by Correlation ID", "tags": [ - "SHIELD - Update" + "Architecture Reporting" ] } }, - "/Api/Update/Shield/Tenant/{tenantId}": { - "get": { - "description": "Retrieves configuration for the specific tenant from the update service.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Tenant/:tenantId/Get", + "/Api/V1/ArchitectureReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { + "delete": { + "summary": "Delete the Specified Architecture Report V1 for Specified Tenant", + "description": "Deletes the full architecture report v1 for the specified correlation ID and tenant.\n\nThis endpoint requires the `ArchitectureReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Tenant/:tenantId/Data/Delete", "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + }, { "$ref": "#/components/parameters/tenantId" } ], "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Update.Shield.Tenant" - }, - "examples": { - "Tenant config": { - "summary": "Example Tenant Config", - "description": "A example configurations that present in the update service of the specified tenant.", - "value": { - "alphaEnabled": false, - "channel": "stable", - "ring": 1, - "tenantId": "1d71e0fe-6e4a-464d-a690-80addf3bda55" - } - } - } - } - }, - "description": "OK" - }, - "401": { - "$ref": "#/components/responses/401" + "204": { + "description": "Architecture report data deleted successfully." }, - "403": { - "$ref": "#/components/responses/403" + "400": { + "$ref": "#/components/responses/400" }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Retrieves Specific Tenant Configuration", "tags": [ - "SHIELD - Update" + "Architecture Reporting" ] }, - "patch": { - "description": "Updates (or adds when missing) tenant configuration.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Tenant/:tenantId/Patch", + "get": { + "summary": "Get Architecture Report V1 Data by Correlation ID and Tenant ID", + "description": "Retrieves the architecture report data associated with the specified correlation ID and tenant ID.\n\nThis endpoint requires the `ArchitectureReport.Read.All`, `ArchitectureReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", + "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", "parameters": [ + { + "$ref": "#/components/parameters/correlationId" + }, { "$ref": "#/components/parameters/tenantId" } ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "Tenant Configuration Details": { - "description": "Example tenant configuration object.", - "summary": "Tenant Configuration", - "value": { - "alphaEnabled": false, - "channel": "stable", - "ring": 1 - } - } - }, - "schema": { - "type": "object", - "properties": { - "alphaEnabled": { - "description": "Flag that indicates if the current tenant is allowed to request alpha builds (`true`) or not (`false`).", - "examples": [ - false - ], - "type": "boolean" - }, - "channel": { - "description": "Name of the deploy channel.", - "examples": [ - "stable" - ], - "type": "string" - }, - "ring": { - "description": "Ring number that the client belongs to for the current channel.", - "examples": [ - 1 - ], - "type": "integer" - } - }, - "examples": [ - { - "alphaEnabled": false, - "channel": "stable", - "ring": 1 - } - ] - } - } - } - }, "responses": { "200": { "content": { "application/json": { "examples": { - "Tenant Configuration Details": { - "description": "Example object returned on creation or update with tenantId set.", - "summary": "Tenant Configuration", + "Architecture Report V1": { + "description": "Sample structure of the valid architecture report along with all relevant metadata retrieved using correlation record ID and specific tenant ID.", + "summary": "Architecture Report Details", "value": { - "alphaEnabled": false, - "channel": "stable", - "ring": 1, - "tenantId": "a2a1698d-a3e0-42d3-96a4-47eb3e8f7dd1" + "correlation": { + "auditTenantAccount": "user@example.com", + "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "createdAt": "2023-11-19T10:00:00.000Z", + "reportTenantAccount": "user@example.com", + "tenantId": "123e4567-e89b-12d3-a456-426614174000", + "updatedAt": "2023-11-19T10:05:00.000Z" + }, + "principalData": { + "user": { + "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": { + "featureA": true, + "featureB": false + } + }, + "llmInferred": { + "isServiceAccount": false, + "isFrontlineWorker": true, + "isTempWorker": null + }, + "principalMetadata": { + "sharedMailbox": false + }, + "enhancedData": { + "userPrincipalName": "user@example.com", + "idpJobTitle": "Engineer", + "idpDepartment": "IT", + "idpOfficeLocation": "HQ", + "idpEmployeeType": "Full-Time" + } + } + }, + "device": { + "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { + "assignedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "assignedLicense": [ + { + "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", + "servicePlanList": [ + "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + } + ], + "consumedService": { + "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + }, + "principalMetadata": { + "sharedComputer": true + } + } + } + }, + "tenantMetadata": { + "totalDeviceCount": 1, + "totalGuestCount": 1, + "totalMemberCount": 1, + "totalUserCount": 1 + }, + "schemaVersion": 1 } } }, "schema": { - "$ref": "#/components/schemas/Update.Shield.Tenant" + "$ref": "#/components/schemas/ArchitectureReportV1" } } }, - "description": "OK" + "description": "The architecture report data for the specified correlation ID and tenant ID." }, "400": { "$ref": "#/components/responses/400" }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, - "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." - } - }, - "summary": "Upserts Specific Tenant Configuration", - "tags": [ - "SHIELD - Update" - ] - }, - "delete": { - "description": "Deletes configuration for the specific tenant.\n\nThis endpoint requires the `UpdateShield.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI Lab` tenant. End user access is restricted.", - "operationId": "/Api/Update/Shield/Tenant/:tenantId/Delete", - "parameters": [ - { - "$ref": "#/components/parameters/tenantId" - } - ], - "responses": { - "204": { - "description": "Deleted Successfully" - }, - "401": { - "$ref": "#/components/responses/401" - }, - "403": { - "$ref": "#/components/responses/403" - }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Deletes Specific Tenant Configuration", "tags": [ - "SHIELD - Update" + "Architecture Reporting" ] } }, - "/Api/Tenant": { + "/Api/CloudMatrix/Dashboard": { "get": { - "description": "Retrieves the list of tenant records. Can use filter by parent ID limit the results. This endpoint requires the `Tenant.Read.All` or `Tenant.ReadWrite.All` scopes (permissions).", - "operationId": "/Api/Tenant/Get", + "description": "Retrieves the list of cloud matrix correlation records on the tenant provided inside the token. Can use filters targeting creation date to limit results. Cloud matrix records store the metadata for a specific cloud matrix correlation.\n\nThis endpoint requires the `CloudMatrix.Read`, `CloudMatrix.Read.Del`, `CloudMatrix.Read.All`, `CloudMatrix.ReadWrite`, or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Dashboard/Get", "parameters": [ { - "$ref": "#/components/parameters/parentId" + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" } ], "responses": { "200": { + "description": "A list of cloud matrix correlation records.", "content": { "application/json": { - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/TenantDetails" - }, - "examples": [ - [ - { - "tenantId": "7e8f9a0b-1c2d-3e4b-5a6c-7d8e9f0a1b2c", - "displayName": "Contoso - R&D", - "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", - "authorizedPrincipalList": [] - } - ] - ] - }, "examples": { - "Example List Of Multiple Tenant Records": { - "description": "Sample list of multiple tenant records in the database", - "summary": "Multiple Tenant Records", + "Example Cloud Matrix Records": { + "description": "Sample list of cloud matrix correlation records.", + "summary": "Available Cloud Matrix correlation Records", "value": [ { - "tenantId": "5d6e7f8a-9b0c-1d2e-3f4a-5b6c7d8e9f0a", - "displayName": "Contoso - Legal", - "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", - "authorizedPrincipalList": [ - "59673771-3b4f-4518-9187-aee8a51c8c07", - "47c42971-2dea-4553-a788-d29a42e3e867" - ] + "accountName": "Test Account Name", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" }, { - "tenantId": "7e8f9a0b-1c2d-3e4b-5a6c-7d8e9f0a1b2c", - "displayName": "Contoso - R&D", - "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", - "authorizedPrincipalList": [ - "7e9ce415-32b2-4e7a-a920-d4dbaae022e3" - ] + "accountName": "Test Account Name", + "correlationId": "e7cc9996-3c5f-4be4-bba2-c815a157dedb", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "fbea61c3-6c80-4fbb-9bd7-b6fa2356892e", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": false, + "template": "Google", + "updatedAt": "2025-12-15T21:13:12.821Z" } ] - }, - "Example List Of Single Tenant Record": { - "description": "Example list of single tenant records which no user is authorized yet.", - "summary": "Single Tenant Records", - "value": [ + } + }, + "schema": { + "examples": [ + [ { - "tenantId": "7e8f9a0b-1c2d-3e4b-5a6c-7d8e9f0a1b2c", - "displayName": "Contoso - R&D", - "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", - "authorizedPrincipalList": [] + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" } ] - } + ], + "items": { + "$ref": "#/components/schemas/CloudMatrix.CloudMatrixCorrelation" + }, + "minItems": 0, + "type": "array" } } - }, - "description": "OK" + } }, - "404": { - "$ref": "#/components/responses/404" + "400": { + "$ref": "#/components/responses/400" }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Retrieves List of Tenant Records", "tags": [ - "Tenant Records" - ] + "Cloud Matrix" + ], + "summary": "Get Cloud Matrix Correlation Records" } }, - "/Api/Tenant/{tenantId}": { + "/Api/CloudMatrix/Account/{accountId}/Dashboard": { "get": { - "description": "Retrieves details of a specific tenant record. This endpoint requires the `Tenant.Read.All` or `Tenant.ReadWrite.All` scopes (permissions).", - "operationId": "/Api/Tenant/:tenantId/Get", + "description": "Retrieves the list of cloud matrix correlation records on the account passed in. Can use filters targeting creation date to limit results. Cloud matrix records store the metadata for a specific cloud matrix correlation.\n\nThis endpoint is only accessible from the `SHI` and `SHI Lab` tenants and requires the `CloudMatrix.Read.All` or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Account/:accountId/Dashboard/Get", "parameters": [ { - "$ref": "#/components/parameters/tenantId" + "$ref": "#/components/parameters/accountId" }, { - "$ref": "#/components/parameters/parentId" + "$ref": "#/components/parameters/dateStart" + }, + { + "$ref": "#/components/parameters/dateEnd" } ], "responses": { "200": { + "description": "A list of cloud matrix correlation records.", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/TenantDetails" - }, "examples": { - "Example Complete Tenant Record": { - "description": "An example showing a single existing tenant record.", - "summary": "Existing Tenant Record", - "value": { - "tenantId": "9f0a1b2c-3d4e-5f6a-7b8c-9d0e1f2a3b4c", - "displayName": "Contoso - Testing", - "parentId": "f3ed1efc-4e62-46b8-bf2a-6b59ca9784e5", - "authorizedPrincipalList": [ - "9f0a1b2c-3d4e-5f6a-7b8c-9d0e1f2a3b4c", - "2e3f4a5b-6c7d-8e9f-0a1b-2c3d4e5f6a7b", - "4b5c6d7e-8f9a-0b1c-2d3e-4f5a6b7c8d9e" - ] - } - } - } - } - }, - "description": "OK" - }, - "404": { - "$ref": "#/components/responses/404" - }, - "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." - } - }, - "summary": "Retrieves Tenant Record", - "tags": [ - "Tenant Records" - ] - }, - "patch": { - "description": "Update tenant record using provided information. Payload could contain any combination of existing properties. To remove a parent, set the parentId to be the same as the tenant ID value. This endpoint requires the `Tenant.ReadWrite.All` scopes (permissions).", - "operationId": "/Api/Tenant/:tenantId/Patch", - "parameters": [ - { - "$ref": "#/components/parameters/tenantId" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tenantDisplayName": { - "description": "Human readable name for the tenant record", - "type": "string", - "examples": [ - "Contoso - R&D East" - ] - }, - "parentId": { - "description": "The object ID of the tenant that is considered a parent to this record", - "format": "uuid", - "maxLength": 36, - "minLength": 36, - "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", - "type": "string", - "examples": [ - "6a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d" - ] - }, - "authorizedPrincipalList": { - "description": "List of object IDs that are allowed to access this record and related data.", - "type": "array", - "items": { - "format": "uuid", - "maxLength": 36, - "minLength": 36, - "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", - "type": "string", - "examples": [ - "4cae3355-0cff-410c-b4f9-69cb5de8f1ac" - ] - }, - "examples": [ - [ - "4cae3355-0cff-410c-b4f9-69cb5de8f1ac", - "0e52e6ac-f8e1-4070-ae2e-9bd0a37507a1" - ] - ] - } - }, - "anyOf": [ - { - "required": [ - "displayName" - ] - }, - { - "required": [ - "parentId" - ] - }, - { - "required": [ - "authorizedPrincipalList" - ] - } - ], - "examples": [ - { - "tenantDisplayName": "Contoso - R&D East", - "parentId": "6a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d", - "authorizedPrincipalList": [ - "4cae3355-0cff-410c-b4f9-69cb5de8f1ac", - "0e52e6ac-f8e1-4070-ae2e-9bd0a37507a1" + "Example Cloud Matrix Records": { + "description": "Sample list of cloud matrix correlation records.", + "summary": "Available Cloud Matrix correlation Records", + "value": [ + { + "accountName": "Test Account Name", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + }, + { + "accountName": "Test Account Name", + "correlationId": "e7cc9996-3c5f-4be4-bba2-c815a157dedb", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "fbea61c3-6c80-4fbb-9bd7-b6fa2356892e", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": false, + "template": "Google", + "updatedAt": "2025-12-15T21:13:12.821Z" + } ] } - ] - }, - "examples": { - "Example Request to Update Tenant Parent": { - "description": "Sample payload requesting adjustment to the parent value.", - "summary": "Update Parent Information for Tenant", - "value": { - "parentId": "6a7b8c9d-0e1f-2a3b-4c5d-6e7f8a9b0c1d" - } - }, - "Example Request for Tenant Name and Parent Update": { - "description": "Sample payload requesting to update parent value and display name on the tenant record.", - "summary": "Update Tenant Record Name and Parent Information", - "value": { - "parentId": "8f9a0b1c-2d3e-4f5a-6b7c-8d9e0a1b2c3d", - "displayName": "Contoso - R&D West" - } }, - "Example Request for Tenant Authorized Principals Update": { - "description": "Sample payload requesting to update authorized principals for the tenant record.", - "summary": "Update Tenant Authorized Principals List", - "value": { - "authorizedPrincipalList": [ - "4cae3355-0cff-410c-b4f9-69cb5de8f1ac", - "0e52e6ac-f8e1-4070-ae2e-9bd0a37507a1" + "schema": { + "examples": [ + [ + { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + } ] - } + ], + "items": { + "$ref": "#/components/schemas/CloudMatrix.CloudMatrixCorrelation" + }, + "minItems": 0, + "type": "array" } } } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "500": { + "$ref": "#/components/responses/500" } }, + "tags": [ + "Cloud Matrix" + ], + "summary": "Get Cloud Matrix Correlation Records" + } + }, + "/Api/CloudMatrix/Template": { + "get": { + "description": "Get a default assessment schema object as schema structure reference. \n\nThis endpoint requires the `CloudMatrix.Read`, `CloudMatrix.Read.Del`, `CloudMatrix.Read.All`, `CloudMatrix.ReadWrite`, or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Template/Get", "responses": { "200": { + "description": "The default assessment schema object.", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/TenantDetails" - }, "examples": { - "Example Complete Tenant Record": { - "description": "Sample response after updating a tenant record.", - "summary": "Updated Tenant Record", + "Default Output": { + "description": "Always returns the default schema template that stored in blob storage. This has been trimmed to contain one element for brevity.", + "summary": "Default Output", "value": { - "tenantId": "c00ffc2c-b6f6-4121-bd8e-4d02e9504eb9", - "displayName": "Contoso - Testing", - "parentId": "8c291062-a4f7-4706-b4df-59e605497f06", - "authorizedPrincipalList": [ - "b856517a-2086-4be4-b63e-d6ca8a5b0ff6" + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } + ] + } + ] + } + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] + }, + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + }, + { + "product": "F3", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } ] } } + }, + "schema": { + "$ref": "#/components/schemas/CloudMatrix.BulkCloudMatrix" } } - }, - "description": "OK" + } }, "500": { - "description": "Request has a failure that cannot be resolved and might require manual intervention or retry." + "$ref": "#/components/responses/500" } }, - "summary": "Update Tenant Record", "tags": [ - "Tenant Records" - ] + "Cloud Matrix" + ], + "summary": "Get a Default Assessment Schema Object" } }, - "/Api/V1/ArchitectureReport": { + "/Api/CloudMatrix/Assessment": { "post": { - "description": "Stores the results of an Architecture report.\n\nThis endpoint requires the `ArchitectureReport.ReadWrite`, `ArchitectureReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/ArchitectureReport/Post", + "description": "Stores a new Cloud Matrix assessment payload.\n\nThis endpoint is only accessible from the `SHI` and `SHI Lab` tenants and requires the `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Assessment/Post", "requestBody": { "required": true, "content": { "application/json": { "examples": { - "Architecture Report V1": { - "description": "Sample, truncated report from an example customer environment. This will return the same report as the request input.", - "summary": "Example of License Report Stored.", + "Cloud Matrix Assessment Post Request": { + "description": "Sample, truncated Cloud Matrix assessment payload from a production-like environment. The response echoes the same assessment data provided in the request.", + "summary": "Example request payload for creating a new Cloud Matrix assessment.", "value": { "correlation": { - "auditTenantAccount": "user@example.com" + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "assignedLicense": [ + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } ] } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Engineer", - "idpDepartment": "IT", - "idpOfficeLocation": "HQ", - "idpEmployeeType": "Full-Time" - } + ] } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 }, - "assignedLicense": [ + "profiles": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 } ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } }, - "principalMetadata": { - "sharedComputer": true - } + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" } - } - }, - "tenantMetadata": { - "totalDeviceCount": 1, - "totalGuestCount": 1, - "totalMemberCount": 1, - "totalUserCount": 1 + ] }, - "schemaVersion": 1 + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } + ] } } }, "schema": { - "$ref": "#/components/schemas/ArchitectureReportV1" + "$ref": "#/components/schemas/CloudMatrix" } } } }, "responses": { "200": { - "description": "Architecture Report V1 submitted successfully.", + "description": "Cloud Matrix assessment created successfully.", "content": { "application/json": { "examples": { - "Architecture Report V1": { - "description": "Sample, truncated report from an example customer environment. This will return the same report as the request input.", - "summary": "Example of License Report Stored.", + "Cloud Matrix Assessment Post Response": { + "description": "Sample, truncated response payload after creating a new Cloud Matrix assessment. In this example, the response echoes the submitted assessment data.", + "summary": "Example response payload for the newly created Cloud Matrix assessment.", "value": { "correlation": { - "auditTenantAccount": "user@example.com", - "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "assignedLicense": [ + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } ] } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false - } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Engineer", - "idpDepartment": "IT", - "idpOfficeLocation": "HQ", - "idpEmployeeType": "Full-Time" - } - } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + ] + } + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 }, - "assignedLicense": [ + "profiles": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 } ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } }, - "principalMetadata": { - "sharedComputer": true - } + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" } - } - }, - "tenantMetadata": { - "totalDeviceCount": 1, - "totalGuestCount": 1, - "totalMemberCount": 1, - "totalUserCount": 1 + ] }, - "schemaVersion": 1 + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } + ] } } }, "schema": { - "$ref": "#/components/schemas/ArchitectureReportV1" + "$ref": "#/components/schemas/CloudMatrix" } } } @@ -6037,78 +9479,406 @@ } }, "tags": [ - "Architecture Reporting" + "Cloud Matrix" ], - "summary": "Submit Architecture Report V1" + "summary": "Submit Cloud Matrix Assessment" } }, - "/Api/V1/ArchitectureReport/Correlation": { - "get": { - "description": "Retrieves the list of correlation records for the authenticated tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific architecture report.\n\nThis endpoint requires the `ArchitectureReport.Read`, `ArchitectureReport.Read.All`, `ArchitectureReport.ReadWrite`, or `ArchitectureReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/ArchitectureReport/Correlation/Get", + "/Api/CloudMatrix/Account/{accountId}/Correlation/{correlationId}": { + "patch": { + "description": "Updates the existing Cloud Matrix assessment data for specified accountId and correlationId.\n\nThis endpoint is only accessible from the `SHI` and `SHI Lab` tenants and requires the `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Account/:accountId/Correlation/:correlationId/Patch", "parameters": [ { - "$ref": "#/components/parameters/dateStart" + "$ref": "#/components/parameters/accountId" }, { - "$ref": "#/components/parameters/dateEnd" + "$ref": "#/components/parameters/correlationId" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "examples": { + "Cloud Matrix Assessment Update Request": { + "description": "Sample, truncated Cloud Matrix assessment payload from a production-like environment. The response echoes the same assessment data provided in the request.", + "summary": "Example request payload for updating a Cloud Matrix assessment.", + "value": { + "correlation": { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + }, + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } + ] + } + ] + } + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] + }, + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } + ] + } + } + }, + "schema": { + "$ref": "#/components/schemas/CloudMatrix" + } + } + } + }, "responses": { "200": { - "description": "A list of correlation records.", + "description": "Cloud Matrix Assessment updated successfully", "content": { "application/json": { "examples": { - "Example Correlation Records": { - "description": "Sample list of correlation records for the current authenticated tenant.", - "summary": "Available Correlation Records", - "value": [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" + "Cloud Matrix Assessment Updated Response": { + "description": "Sample, truncated response payload after updating a Cloud Matrix assessment. In this example, the response echoes the submitted assessment data.", + "summary": "Example response payload for an updated Cloud Matrix assessment.", + "value": { + "correlation": { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" }, - { - "auditTenantAccount": "user@example.com", - "correlationId": "5888a922-9f5b-45fd-bd5f-de3283d6a79e", - "createdAt": "2023-12-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - } - ] + "title": "CloudMatrix Value Assessment", + "description": "MICROSOFT CLOUD ADOPTION MATRIX v5.0", + "version": "5.0.14", + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ + { + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } + ] + } + ] + } + ], + "assessments": [ + { + "metadata": { + "name": "M365 Apps for Enterprise - Mobile/Online", + "breakoutId": null, + "category": "USER EXPERIENCE", + "subCategory": "Productivity", + "help": "Brief: Common applications available through a browser used for business purposes typically bundled together by software vendors like Microsoft and Google. i.e., spreadsheets, slide presentations, word processor, etc.", + "licensingProduct": "M365 Mobile Apps", + "licensingProductHelp": "Mobile Apps The Microsoft 365 mobile app combines Word, Excel, and PowerPoint into a single app for iOS and Android devices. It offers features like creating, editing, and sharing documents on the go, scanning and signing PDFs, and using voice commands for quick tasks. You can also connect your email accounts and calendars in one convenient spot1.\n\nWeb Apps Microsoft 365 for the web includes online versions of Word, Excel, PowerPoint, OneNote, and Outlook. These web apps allow you to create, edit, and share documents directly from your browser without needing to install any software. You can access your documents from anywhere with an internet connection, making it easy to collaborate with others in real-time2.", + "isAddon": false, + "isStrategicAddon": false, + "isTenantBased": false, + "availability": null, + "notes": "", + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "sourceValue": 0.0 + }, + "profiles": [ + { + "name": "Microsoft E5", + "abbreviation": "ME5P", + "value": 5.0 + } + ], + "features": [ + { + "licensing": "M365 SMB", + "products": [ + { + "product": "PS", + "value": "na", + "comment": "" + } + ] + } + ] + } + ], + "displacements": [ + { + "name": "Example displacement opportunity", + "currentProvider": { + "name": "Microsoft", + "terms": "5 Years", + "contractNumber": "C12345678", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + }, + "displacement": { + "name": "Google", + "terms": "3 Years", + "contractNumber": "C87654321", + "expiryDate": "2026-01-01T00:00:00Z", + "costs": [ + { + "monthlyCost": 5001, + "annualCost": 5002, + "contractValue": 5003 + } + ], + "replacementDate": "2026-12-31T00:00:00Z" + }, + "notes": "Example notes" + } + ] + }, + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + } + ] + } + ] + } + ] + } + ] + } } }, "schema": { - "examples": [ - [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - { - "auditTenantAccount": "user@example.com", - "correlationId": "5888a922-9f5b-45fd-bd5f-de3283d6a79e", - "createdAt": "2023-12-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - } - ] - ], - "items": { - "$ref": "#/components/schemas/Report.CorrelationRecord" - }, - "minItems": 0, - "type": "array" + "$ref": "#/components/schemas/CloudMatrix" } } } @@ -6121,84 +9891,47 @@ } }, "tags": [ - "Architecture Reporting" + "Cloud Matrix" ], - "summary": "Get Correlation Records" - } - }, - "/Api/V1/ArchitectureReport/Correlation/Tenant/{tenantId}": { + "summary": "Update Cloud Matrix Assessment" + }, "get": { - "description": "Retrieves the list of correlation records for the specified tenant. Can use filters targeting creation date to limit results. Correlation records store the metadata for a specific architecture report.\n\nThis endpoint requires the `ArchitectureReport.Read.All`, or `ArchitectureReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/V1/ArchitectureReport/Correlation/Tenant/:tenantId/Get", + "description": "Retrieves the details of a specific Cloud Matrix correlation record.\n\nThis endpoint is only accessible from the `SHI` and `SHI Lab` tenants and requires the `CloudMatrix.Read.All` or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Account/:accountId/Correlation/:correlationId/Get", "parameters": [ { - "$ref": "#/components/parameters/tenantId" - }, - { - "$ref": "#/components/parameters/dateStart" + "$ref": "#/components/parameters/accountId" }, { - "$ref": "#/components/parameters/dateEnd" + "$ref": "#/components/parameters/correlationId" } ], "responses": { "200": { + "description": "A specific cloud matrix correlation record.", "content": { "application/json": { "examples": { - "Example Correlation Records": { - "description": "Sample list of correlation records for the specified tenant.", - "summary": "Available Correlation Records", - "value": [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - { - "auditTenantAccount": "user@example.com", - "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - } - ] + "Example Cloud Matrix CorrelationRecord": { + "description": "A single existing Cloud Matrix correlation record.", + "summary": "Existing Cloud Matrix Correlation Record", + "value": { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + } } }, "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/Report.CorrelationRecord" - }, - "examples": [ - [ - { - "auditTenantAccount": "user@example.com", - "correlationId": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - }, - { - "auditTenantAccount": "user@example.com", - "correlationId": "e0d101e8-6f1e-40a9-a66f-cad4112c9a59", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" - } - ] - ] + "$ref": "#/components/schemas/CloudMatrix.CloudMatrixCorrelation" } } - }, - "description": "A list of correlation records for the specified tenant." + } }, "400": { "$ref": "#/components/responses/400" @@ -6207,24 +9940,47 @@ "$ref": "#/components/responses/500" } }, - "summary": "Get Correlation Records by Tenant", "tags": [ - "Architecture Reporting" - ] + "Cloud Matrix" + ], + "summary": "Get a Specific Cloud Matrix Correlation Record" } }, - "/Api/V1/ArchitectureReport/Correlation/{correlationId}/Data": { - "delete": { - "description": "Deletes the full architecture report v1 for the specified correlation ID.\n\nThis endpoint requires the `ArchitectureReport.ReadWrite`, or `ArchitectureReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Data/Delete", + "/Api/CloudMatrix/Correlation/{correlationId}": { + "get": { + "description": "Retrieves the details of a specific Cloud Matrix correlation record if it exists on the tenant found in the token.\n\nThis endpoint requires the `CloudMatrix.Read`, `CloudMatrix.Read.Del`, `CloudMatrix.Read.All`, `CloudMatrix.ReadWrite`, or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Correlation/:correlationId/Get", "parameters": [ { "$ref": "#/components/parameters/correlationId" } ], "responses": { - "204": { - "description": "Architecture report data deleted successfully." + "200": { + "description": "A specific cloud matrix correlation record.", + "content": { + "application/json": { + "examples": { + "Example Cloud Matrix CorrelationRecord": { + "description": "A single existing Cloud Matrix correlation record.", + "summary": "Existing Cloud Matrix Correlation Record", + "value": { + "accountName": "AstraZeneca", + "correlationId": "bbab2907-c781-4bf1-b912-b91510853052", + "createdAt": "2025-12-15T21:13:12.821Z", + "accountId": "75498125-33cb-4b33-8705-f0fadadb1a2f", + "discoveryDate": "2025-12-15T21:13:12.821Z", + "isComplete": true, + "template": "Microsoft Enterprise", + "updatedAt": "2025-12-15T21:13:12.821Z" + } + } + }, + "schema": { + "$ref": "#/components/schemas/CloudMatrix.CloudMatrixCorrelation" + } + } + } }, "400": { "$ref": "#/components/responses/400" @@ -6233,14 +9989,17 @@ "$ref": "#/components/responses/500" } }, - "summary": "Delete Architecture Report Data by Correlation ID", "tags": [ - "Architecture Reporting" - ] - }, + "Cloud Matrix" + ], + "summary": "Get a Specific Cloud Matrix Correlation Record" + } + }, + "/Api/CloudMatrix/Correlation/{correlationId}/Data": { "get": { - "description": "Retrieves the full architecture report v1 for the specified correlation ID in the authenticated tenant. The architecture report v1 contains all of the tenant metadata and user/device data with the required correlation data.\n\nThis endpoint requires the `ArchitectureReport.Read`, `ArchitectureReport.Read.All`, `ArchitectureReport.ReadWrite`, or `ArchitectureReport.ReadWrite.All` scope (permission).", - "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Data/Get", + "summary": "Get Specific Cloud Matrix Assessment Data With Correlation Record by CorrelationId.", + "description": "Retrieves Cloud Matrix Assessment data with correlation record associated with the specified correlation ID if it exists on the tenant found in the token.\n\nThis endpoint requires the `CloudMatrix.Read`, `CloudMatrix.Read.Del`, `CloudMatrix.Read.All`, `CloudMatrix.ReadWrite`, or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Correlation/:correlationId/Data/Get", "parameters": [ { "$ref": "#/components/parameters/correlationId" @@ -6248,96 +10007,304 @@ ], "responses": { "200": { - "description": "The architecture report data for the specified correlation ID.", + "description": "A cloud matrix assessment record.", "content": { "application/json": { "examples": { - "Example Architecture Report V1": { - "description": "Sample structure of the valid architecture report along with all relevant metadata retrieved using correlation record ID.", - "summary": "Architecture Report Details", + "Example Cloud Matrix Data with Correlation Record": { + "description": "Sample cloud matrix assessment with correlation record.", + "summary": "Requested Cloud Matrix Assessment With Correlation Record", "value": { + "title": "Microsoft Security & Productivity Roadmap (Sample)", + "version": "5.0.4", + "description": "Sample roadmap data showing service offerings, values, and plan profiles.", "correlation": { - "auditTenantAccount": "user@example.com", - "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" + "accountName": "CMTestAccount1", + "correlationId": "745b00d0-d772-11f0-899c-41d4a068f985", + "accountId": "de186670-d772-11f0-899c-41d4a068f985", + "template": "Microsoft", + "isComplete": true, + "discoveryDate": "2026-01-08T21:13:12.821Z", + "createdAt": "2026-01-08T21:13:12.821Z", + "updatedAt": "2026-01-08T21:13:12.821Z" }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "assessments": [ + { + "metadata": { + "name": "Microsoft 365 Copilot Chat", + "breakoutId": "97676a10-6875-4a32-8f2f-4bee4b147a84", + "category": "Productivity", + "notes": "these are notes.", + "availability": "", + "subCategory": "AI Assistance", + "help": "Assess Teams Phone rollout readiness.", + "licensingProduct": "Microsoft Teams Phone", + "licensingProductHelp": "Requires Teams Phone compatible license.", + "isAddon": true, + "isStrategicAddon": true, + "isTenantBased": false, + "sourceValue": 10, + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null } }, - "assignedLicense": [ + "profiles": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] + "name": "Information Worker", + "abbreviation": "IW", + "value": 90 } ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false + "features": [ + { + "licensing": "M365 E5 + Teams Phone", + "products": [ + { + "product": "Teams Phone Standard", + "value": "Included", + "comment": "Primary voice service" + } + ] } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Engineer", - "idpDepartment": "IT", - "idpOfficeLocation": "HQ", - "idpEmployeeType": "Full-Time" - } + ] } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "assignedLicense": [ + ], + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } ] } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + ] + } + ], + "displacements": [ + { + "name": "Legacy ABC", + "currentProvider": { + "name": "Old Widgets", + "terms": "36 months", + "contractNumber": "Wid-0475477", + "expiryDate": "2026-12-31T23:59:59.000Z", + "costs": { + "monthlyCost": 1000, + "annualCost": 2000, + "contractValue": 3000 + } }, - "principalMetadata": { - "sharedComputer": true - } + "displacement": { + "name": "New Widgets", + "terms": "36 months", + "contractNumber": "NWid-20948372", + "expiryDate": "2029-03-01T00:00:00.000Z", + "replacementDate": "2026-06-01T00:00:00.000Z", + "costs": [ + { + "monthlyCost": 4000, + "annualCost": 5000, + "contractValue": 6000 + } + ] + }, + "notes": "Here are my notes." } - } - }, - "tenantMetadata": { - "totalDeviceCount": 1, - "totalGuestCount": 1, - "totalMemberCount": 1, - "totalUserCount": 1 + ] }, - "schemaVersion": 1 + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Viva Insights - Personal provides privacy-protected insights and data-driven recommendations to help individuals improve productivity and wellbeing in Microsoft 365.", + "publisherLink": "https://www.abcd123.com/abcd", + "subscriptionFeatures": [ + { + "licensing": "M365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + }, + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + }, + { + "product": "F3", + "value": "na", + "comment": "" + } + ] + }, + { + "licensing": "O365", + "products": [ + { + "product": "F3", + "value": "na", + "comment": "" + }, + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E1", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + } + ] + }, + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Lists", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + }, + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "available", + "comment": "" + }, + { + "product": "F3", + "value": "available", + "comment": "" + } + ] + }, + { + "licensing": "O365", + "products": [ + { + "product": "F3", + "value": "available", + "comment": "" + }, + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E1", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + } + ] + } + ] + } + ] } } }, "schema": { - "$ref": "#/components/schemas/ArchitectureReportV1" + "$ref": "#/components/schemas/CloudMatrix" } } } @@ -6349,151 +10316,327 @@ "$ref": "#/components/responses/500" } }, - "summary": "Retrieve the Specified Architecture Report V1 by Correlation ID", "tags": [ - "Architecture Reporting" + "Cloud Matrix" ] } }, - "/Api/V1/ArchitectureReport/Correlation/{correlationId}/Tenant/{tenantId}/Data": { - "delete": { - "summary": "Delete the Specified Architecture Report V1 for Specified Tenant", - "description": "Deletes the full architecture report v1 for the specified correlation ID and tenant.\n\nThis endpoint requires the `ArchitectureReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Tenant/:tenantId/Data/Delete", - "parameters": [ - { - "$ref": "#/components/parameters/correlationId", - "required": true - }, - { - "$ref": "#/components/parameters/tenantId", - "required": true - } - ], - "responses": { - "204": { - "description": "Architecture report data deleted successfully." - }, - "400": { - "$ref": "#/components/responses/400" - }, - "500": { - "$ref": "#/components/responses/500" - } - }, - "tags": [ - "Architecture Reporting" - ] - }, + "/Api/CloudMatrix/Account/{accountId}/Correlation/{correlationId}/Data": { "get": { - "summary": "Get Architecture Report V1 Data by Correlation ID and Tenant ID", - "description": "Retrieves the architecture report data associated with the specified correlation ID and tenant ID.\n\nThis endpoint requires the `ArchitectureReport.Read.All`, `ArchitectureReport.ReadWrite.All` scope (permission). This endpoint is also only accessible from the `SHI` and `SHI Lab` tenants. End user access is restricted.", - "operationId": "/Api/V1/ArchitectureReport/Correlation/:correlationId/Tenant/:tenantId/Data/Get", + "summary": "Get Specific Cloud Matrix Assessment Data With Correlation Record by AccountId and CorrelationId", + "description": "Retrieves Cloud Matrix Assessment data with correlation record associated with the specified account ID (`accountId`) and correlation ID (`correlationId`).\n\nThis endpoint is only accessible from the `SHI` and `SHI Lab` tenants and requires the `CloudMatrix.Read.All` or `CloudMatrix.ReadWrite.All` scope (permission).", + "operationId": "/Api/CloudMatrix/Account/:accountId/Correlation/:correlationId/Data/Get", "parameters": [ { - "$ref": "#/components/parameters/correlationId", - "required": true + "$ref": "#/components/parameters/accountId" }, { - "$ref": "#/components/parameters/tenantId", - "required": true + "$ref": "#/components/parameters/correlationId" } ], "responses": { "200": { + "description": "A cloud matrix assessment record.", "content": { "application/json": { "examples": { - "Architecture Report V1": { - "description": "Sample structure of the valid architecture report along with all relevant metadata retrieved using correlation record ID and specific tenant ID.", - "summary": "Architecture Report Details", + "Example Cloud Matrix Data with Correlation Record": { + "description": "Sample cloud matrix assessment with correlation record.", + "summary": "Requested Cloud Matrix Assessment With Correlation Record", "value": { + "title": "Microsoft Security & Productivity Roadmap (Sample)", + "version": "5.0.4", + "description": "Sample roadmap data showing service offerings, values, and plan profiles.", "correlation": { - "auditTenantAccount": "user@example.com", - "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "createdAt": "2023-11-19T10:00:00.000Z", - "reportTenantAccount": "user@example.com", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "updatedAt": "2023-11-19T10:05:00.000Z" + "accountName": "CMTestAccount1", + "correlationId": "745b00d0-d772-11f0-899c-41d4a068f985", + "accountId": "de186670-d772-11f0-899c-41d4a068f985", + "template": "Microsoft", + "isComplete": true, + "discoveryDate": "2026-01-08T21:13:12.821Z", + "createdAt": "2026-01-08T21:13:12.821Z", + "updatedAt": "2026-01-08T21:13:12.821Z" }, - "principalData": { - "user": { - "e7b8c8a2-1f2e-4c3a-9b6a-2d8e4f8a9b7c": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false + "valueAssessment": { + "actionPlan": { + "accountName": "AstraZeneca", + "discoveryDate": "2026-01-01T00:00:00Z", + "accountManager": "John Smith", + "consultant": "MSAG Consultant", + "licensingExecutive": "Jane Doe", + "customerSuccessManager": "John Doe", + "notesAndObjectives": "Sample notes and objectives for the account.", + "accountId": "fd9a6a53-594d-41aa-950a-b21ff41d4688", + "createdDate": "2026-01-01T00:00:00Z", + "modifiedDate": "2026-01-01T00:00:00Z", + "primaryPublisher": "Microsoft" + }, + "assessments": [ + { + "metadata": { + "name": "Microsoft 365 Copilot Chat", + "breakoutId": "97676a10-6875-4a32-8f2f-4bee4b147a84", + "category": "Productivity", + "notes": "these are notes.", + "availability": "", + "subCategory": "AI Assistance", + "help": "Assess Teams Phone rollout readiness.", + "licensingProduct": "Microsoft Teams Phone", + "licensingProductHelp": "Requires Teams Phone compatible license.", + "isAddon": true, + "isStrategicAddon": true, + "isTenantBased": false, + "sourceValue": 10, + "startYearConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusOneConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusTwoConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null + }, + "yearPlusThreeConfig": { + "value": null, + "userProfileIds": null, + "isDeepDive": false, + "altProduct": null, + "publisher": null, + "useCase": null } }, - "assignedLicense": [ + "profiles": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] + "name": "Information Worker", + "abbreviation": "IW", + "value": 90 } ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": { - "featureA": true, - "featureB": false + "features": [ + { + "licensing": "M365 E5 + Teams Phone", + "products": [ + { + "product": "Teams Phone Standard", + "value": "Included", + "comment": "Primary voice service" + } + ] } - }, - "llmInferred": { - "isServiceAccount": false, - "isFrontlineWorker": true, - "isTempWorker": null - }, - "principalMetadata": { - "sharedMailbox": false - }, - "enhancedData": { - "userPrincipalName": "user@example.com", - "idpJobTitle": "Engineer", - "idpDepartment": "IT", - "idpOfficeLocation": "HQ", - "idpEmployeeType": "Full-Time" - } + ] } - }, - "device": { - "f1e2d3c4-b5a6-7890-1234-56789abcdef0": { - "assignedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 - }, - "assignedLicense": [ + ], + "userProfiles": [ + { + "id": "00000000-0000-0000-0000-000000000001", + "name": "Profile Details", + "details": [ { - "id": "3d282045-ec7f-4813-88e2-29b74ee609f7", - "servicePlanList": [ - "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + "name": "Profile Details", + "values": [ + { + "name": "Profile Name", + "value": "Knowledge Worker" + } ] } - ], - "consumedService": { - "3d282045-ec7f-4813-88e2-29b74ee609f7": 5 + ] + } + ], + "displacements": [ + { + "name": "Legacy ABC", + "currentProvider": { + "name": "Old Widgets", + "terms": "36 months", + "contractNumber": "Wid-0475477", + "expiryDate": "2026-12-31T23:59:59.000Z", + "costs": { + "monthlyCost": 1000, + "annualCost": 2000, + "contractValue": 3000 + } }, - "principalMetadata": { - "sharedComputer": true - } + "displacement": { + "name": "New Widgets", + "terms": "36 months", + "contractNumber": "NWid-20948372", + "expiryDate": "2029-03-01T00:00:00.000Z", + "replacementDate": "2026-06-01T00:00:00.000Z", + "costs": [ + { + "monthlyCost": 4000, + "annualCost": 5000, + "contractValue": 6000 + } + ] + }, + "notes": "Here are my notes." } - } - }, - "tenantMetadata": { - "totalDeviceCount": 1, - "totalGuestCount": 1, - "totalMemberCount": 1, - "totalUserCount": 1 + ] }, - "schemaVersion": 1 + "breakouts": [ + { + "title": "PORTAL APPS", + "breakoutId": "f1ebe6ab-1164-4ab8-8970-2d561ee7634f", + "breakoutName": "BREAKOUT -Portal Apps", + "features": [ + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Viva Insights - Personal", + "description": "Microsoft Viva Insights - Personal provides privacy-protected insights and data-driven recommendations to help individuals improve productivity and wellbeing in Microsoft 365.", + "publisherLink": "https://www.abcd123.com/abcd", + "subscriptionFeatures": [ + { + "licensing": "M365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + }, + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "na", + "comment": "" + }, + { + "product": "F3", + "value": "na", + "comment": "" + } + ] + }, + { + "licensing": "O365", + "products": [ + { + "product": "F3", + "value": "na", + "comment": "" + }, + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E1", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + } + ] + }, + { + "roadmapElementPath": "User Experience /Productivity Apps/Extended Productivity App Ecosystem", + "elementSubdimension": "Productivity Apps", + "roadmapProduct": "Platform Only", + "feature": "Lists", + "description": "Microsoft Lists is a Microsoft 365 app that helps you track information and organize work with customizable lists for tasks, projects, and more.", + "publisherLink": "", + "subscriptionFeatures": [ + { + "licensing": "M365", + "products": [ + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + }, + { + "licensing": "M365 FLW", + "products": [ + { + "product": "F1", + "value": "available", + "comment": "" + }, + { + "product": "F3", + "value": "available", + "comment": "" + } + ] + }, + { + "licensing": "O365", + "products": [ + { + "product": "F3", + "value": "available", + "comment": "" + }, + { + "product": "E5", + "value": "available", + "comment": "" + }, + { + "product": "E1", + "value": "available", + "comment": "" + }, + { + "product": "E3", + "value": "available", + "comment": "" + } + ] + } + ] + } + ] + } + ] } } }, "schema": { - "$ref": "#/components/schemas/ArchitectureReportV1" + "$ref": "#/components/schemas/CloudMatrix" } } - }, - "description": "The architecture report data for the specified correlation ID and tenant ID." + } }, "400": { "$ref": "#/components/responses/400" @@ -6503,7 +10646,7 @@ } }, "tags": [ - "Architecture Reporting" + "Cloud Matrix" ] } } @@ -6559,6 +10702,10 @@ { "name": "Chat", "description": "Enables query for available information (like tenant, license, etc) via conversation with OpenAI agent." + }, + { + "description": "Collects and manages customer Cloud Matrix data.", + "name": "Cloud Matrix" } ] } diff --git a/src/dataGateway/TypeScript/package-lock.json b/src/dataGateway/TypeScript/package-lock.json index e92be77..952f01c 100644 --- a/src/dataGateway/TypeScript/package-lock.json +++ b/src/dataGateway/TypeScript/package-lock.json @@ -1,12 +1,12 @@ { "name": "@shi-corp/sdk-data-gateway", - "version": "3.1.0", + "version": "3.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@shi-corp/sdk-data-gateway", - "version": "3.1.0", + "version": "3.2.0", "license": "MIT", "dependencies": { "@microsoft/kiota-authentication-azure": "~1.0.0-preview.99", @@ -1392,9 +1392,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1409,9 +1406,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1426,9 +1420,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1443,9 +1434,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1460,9 +1448,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1477,9 +1462,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1494,9 +1476,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1511,9 +1490,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ diff --git a/src/dataGateway/TypeScript/package.json b/src/dataGateway/TypeScript/package.json index a330e61..b2e2ab3 100644 --- a/src/dataGateway/TypeScript/package.json +++ b/src/dataGateway/TypeScript/package.json @@ -1,6 +1,6 @@ { "name": "@shi-corp/sdk-data-gateway", - "version": "3.1.0", + "version": "3.2.0", "type": "module", "main": "bin/index.js", "description": "SDK client used to interface with the SHI Data Gateway service.",