diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_CreateOrUpdate.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_CreateOrUpdate.json new file mode 100644 index 000000000000..af439f4648bc --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_CreateOrUpdate.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "parameters": { + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "filePath": "/test-byos/evidence1.png", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Evidence_CreateOrUpdate", + "title": "Evidence_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Delete.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Delete.json new file mode 100644 index 000000000000..890214acc94b --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "reportName": "testReportName" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Evidence_Delete", + "title": "Evidence_Delete" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Download.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Download.json new file mode 100644 index 000000000000..7827cea38d1f --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Download.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "parameters": { + "offerGuid": "00000000-0000-0000-0000-000000000000", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "evidenceFile": { + "url": "this is a url" + } + } + } + }, + "operationId": "Evidence_Download", + "title": "Evidence_Download" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Get.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Get.json new file mode 100644 index 000000000000..3ce86f20bad4 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_Get.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Evidence_Get", + "title": "Evidence_Get" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_ListByReport.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_ListByReport.json new file mode 100644 index 000000000000..b93a76ee8334 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Evidence_ListByReport.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "reportName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Evidence_ListByReport", + "title": "Evidence_ListByReport" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ListInUseStorageAccountsWithSubscriptions.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ListInUseStorageAccountsWithSubscriptions.json new file mode 100644 index 000000000000..e5596d869abe --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ListInUseStorageAccountsWithSubscriptions.json @@ -0,0 +1,33 @@ +{ + "operationId": "ProviderActions_ListInUseStorageAccounts", + "title": "ListInUseStorageAccountsWithSubscriptions", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "subscriptionIds": [ + "0000000-0000-0000-0000-000000000001", + "0000000-0000-0000-0000-000000000002" + ] + } + }, + "responses": { + "200": { + "body": { + "storageAccountList": [ + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name1", + "location": "WEST US" + }, + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name2", + "location": "WEST US" + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ListInUseStorageAccountsWithoutSubscriptions.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ListInUseStorageAccountsWithoutSubscriptions.json new file mode 100644 index 000000000000..7b9ccfcd9e83 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ListInUseStorageAccountsWithoutSubscriptions.json @@ -0,0 +1,28 @@ +{ + "operationId": "ProviderActions_ListInUseStorageAccounts", + "title": "ListInUseStorageAccountsWithoutSubscriptions", + "parameters": { + "api-version": "2024-06-27", + "parameters": {} + }, + "responses": { + "200": { + "body": { + "storageAccountList": [ + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name1", + "location": "WEST US" + }, + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name2", + "location": "WEST US" + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Onboard.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Onboard.json new file mode 100644 index 000000000000..3aaaff41bbd4 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Onboard.json @@ -0,0 +1,29 @@ +{ + "operationId": "ProviderActions_Onboard", + "title": "Onboard", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "subscriptionIds": [ + "00000000-0000-0000-0000-000000000000", + "00000000-0000-0000-0000-000000000001" + ] + } + }, + "responses": { + "200": { + "body": { + "subscriptionIds": [ + "00000000-0000-0000-0000-000000000000", + "00000000-0000-0000-0000-000000000001" + ] + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}", + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}" + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Operations_List.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Operations_List.json new file mode 100644 index 000000000000..289f672cdec0 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Operations_List.json @@ -0,0 +1,25 @@ +{ + "title": "Operations_List", + "operationId": "Operations_List", + "parameters": { + "api-version": "2024-06-27" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.AppComplianceAutomation/reports/write", + "isDataAction": false, + "display": { + "provider": "Microsoft AppComplianceAutomation", + "resource": "Microsoft.AppComplianceAutomation/reports", + "operation": "Microsoft.AppComplianceAutomation/reports/write", + "description": "Create new reports." + } + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_CheckNameAvailability.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_CheckNameAvailability.json new file mode 100644 index 000000000000..bcd762897e0a --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_CheckNameAvailability.json @@ -0,0 +1,20 @@ +{ + "operationId": "ProviderActions_CheckNameAvailability", + "title": "Report_CheckNameAvailability", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "reportABC", + "type": "Microsoft.AppComplianceAutomation/reports" + } + }, + "responses": { + "200": { + "body": { + "message": "An report named 'reportABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_CreateOrUpdate.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_CreateOrUpdate.json new file mode 100644 index 000000000000..2efea20388ba --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_CreateOrUpdate.json @@ -0,0 +1,149 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + } + ], + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T05:00:00.000Z" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_CreateOrUpdate", + "title": "Report_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Delete.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Delete.json new file mode 100644 index 000000000000..80a2ac5a5f87 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + }, + "204": {} + }, + "operationId": "Report_Delete", + "title": "Report_Delete" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Fix.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Fix.json new file mode 100644 index 000000000000..bcc813dce1b6 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Fix.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReport" + }, + "responses": { + "200": { + "body": { + "reason": "", + "result": "Succeeded" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_Fix", + "title": "Report_Fix" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Get.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Get.json new file mode 100644 index 000000000000..968fefe131b4 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Get.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReport" + }, + "responses": { + "200": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "errors": [ + "resource-inaccessible" + ], + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Failed", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Report_Get", + "title": "Report_Get" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetCollectionCount.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetCollectionCount.json new file mode 100644 index 000000000000..5bc1b448f3d4 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetCollectionCount.json @@ -0,0 +1,18 @@ +{ + "operationId": "ProviderActions_GetCollectionCount", + "title": "Report_GetCollectionCount", + "parameters": { + "api-version": "2024-06-27", + "$filter": "Name eq 'Milk'", + "parameters": { + "type": "Microsoft.AppComplianceAutomation/reports" + } + }, + "responses": { + "200": { + "body": { + "count": 100 + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetOverviewStatus.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetOverviewStatus.json new file mode 100644 index 000000000000..1ddbfccb5cb5 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetOverviewStatus.json @@ -0,0 +1,30 @@ +{ + "operationId": "ProviderActions_GetOverviewStatus", + "title": "Report_GetOverviewStatus", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "type": "Microsoft.AppComplianceAutomation/reports" + } + }, + "responses": { + "200": { + "body": { + "statusList": [ + { + "statusName": "Active", + "statusValue": "100" + }, + { + "statusName": "Failed", + "statusValue": "0" + }, + { + "statusName": "Disabled", + "statusValue": "0" + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetScopingQuestions.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetScopingQuestions.json new file mode 100644 index 000000000000..08ef357ea5fd --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_GetScopingQuestions.json @@ -0,0 +1,100 @@ +{ + "operationId": "Report_GetScopingQuestions", + "title": "Report_GetScopingQuestions", + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "questions": [ + { + "questionId": "DHP_G07_customerDataProcess", + "inputType": "Boolean", + "optionIds": [], + "rules": [ + "Required" + ], + "showSubQuestionsValue": "true", + "superiorQuestionId": null + }, + { + "questionId": "DHP_G04_graphPermissionData", + "inputType": "Text", + "optionIds": [], + "rules": [ + "Required", + "CharLength" + ], + "showSubQuestionsValue": null, + "superiorQuestionId": "DHP_G07_customerDataProcess" + }, + { + "questionId": "DHP_G06_customerDataStorage", + "inputType": "Boolean", + "optionIds": [], + "rules": [ + "Required" + ], + "showSubQuestionsValue": "true", + "superiorQuestionId": null + }, + { + "questionId": "DHP_G05_graphPermissionInfo", + "inputType": "Text", + "optionIds": [], + "rules": [ + "Required", + "CharLength", + "PreventNonEnglishChar" + ], + "showSubQuestionsValue": null, + "superiorQuestionId": "DHP_G06_customerDataStorage" + }, + { + "questionId": "DHP_G08_storageLocation", + "inputType": "MultiSelectDropdown", + "optionIds": [ + "Croatia", + "Cuba", + "Curaçao", + "Cyprus", + "Czechia", + "Côte d'Ivoire", + "Denmark", + "Djibouti", + "Dominica", + "Dominican Republic (the)", + "Ecuador", + "Egypt" + ], + "rules": [ + "Required" + ], + "showSubQuestionsValue": null, + "superiorQuestionId": "DHP_G06_customerDataStorage" + }, + { + "questionId": "LEG03_complianceDataTermination", + "superiorQuestionId": "DHP_G06_customerDataStorage", + "inputType": "SingleSelectEnum", + "optionIds": [], + "rules": [ + "Required" + ], + "showSubQuestionsValue": null + } + ] + }, + "systemData": { + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "createdAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z" + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_List.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_List.json new file mode 100644 index 000000000000..0821ff0492b8 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_List.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "$skipToken": "1", + "$top": "100", + "api-version": "2024-06-27", + "offerGuid": "00000000-0000-0000-0000-000000000000", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports?api-version=2024-06-27&skipToken=1&top=100", + "value": [ + { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "notApplicableCount": 0, + "passedCount": 0, + "pendingCount": 0 + } + }, + "errors": [], + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Report_List", + "title": "Report_List" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json new file mode 100644 index 000000000000..b15d2c857cb6 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "evidenceABC", + "type": "Microsoft.AppComplianceAutomation/reports/evidences" + }, + "reportName": "reportABC" + }, + "responses": { + "200": { + "body": { + "message": "An evidence named 'evidenceABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Report_NestedResourceCheckNameAvailability", + "title": "Report_EvidenceCheckNameAvailability" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json new file mode 100644 index 000000000000..4064467ccddc --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "snapshotABC", + "type": "Microsoft.AppComplianceAutomation/reports/snapshots" + }, + "reportName": "reportABC" + }, + "responses": { + "200": { + "body": { + "message": "An snapshot named 'snapshotABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Report_NestedResourceCheckNameAvailability", + "title": "Report_SnapshotCheckNameAvailability" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json new file mode 100644 index 000000000000..388d47f9a2c2 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "webhookABC", + "type": "Microsoft.AppComplianceAutomation/reports/webhooks" + }, + "reportName": "reportABC" + }, + "responses": { + "200": { + "body": { + "message": "An webhook named 'webhookABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Report_NestedResourceCheckNameAvailability", + "title": "Report_WebhookCheckNameAvailability" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_SyncCertRecord.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_SyncCertRecord.json new file mode 100644 index 000000000000..00f3a43324da --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_SyncCertRecord.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "certRecord": { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "certRecord": { + "offerGuid": "addb13fc-64bf-4005-b693-4c2f094e2187", + "certificationStatus": "CertIngestion", + "ingestionStatus": "InitialDocumentResubmitted", + "controls": [] + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_SyncCertRecord", + "title": "Report_SyncCertRecord" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Update.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Update.json new file mode 100644 index 000000000000..fba98d1d3712 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Update.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T05:00:00.000Z" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_Update", + "title": "Report_Update" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Verify.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Verify.json new file mode 100644 index 000000000000..e41d7293a90b --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Report_Verify.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReport" + }, + "responses": { + "200": { + "body": { + "reason": "", + "result": "Succeeded" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_Verify", + "title": "Report_Verify" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_CreateOrUpdate.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_CreateOrUpdate.json new file mode 100644 index 000000000000..ac5ce8c3467a --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_CreateOrUpdate.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "scopingConfigurationName": "default", + "parameters": { + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ScopingConfiguration_CreateOrUpdate", + "title": "ScopingConfiguration_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_Delete.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_Delete.json new file mode 100644 index 000000000000..f5a132637ae2 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "scopingConfigurationName": "default" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ScopingConfiguration_Delete", + "title": "ScopingConfiguration_Delete" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_Get.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_Get.json new file mode 100644 index 000000000000..5ec5a51c5190 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_Get.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "scopingConfigurationName": "default" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ScopingConfiguration_Get", + "title": "ScopingConfiguration" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_List.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_List.json new file mode 100644 index 000000000000..d29f4275ceb8 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/ScopingConfiguration_List.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "ScopingConfiguration_List", + "title": "ScopingConfiguration_List" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json new file mode 100644 index 000000000000..d84be3fd0ea1 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "ComplianceDetailedPdfReport", + "offerGuid": "00000000-0000-0000-0000-000000000000", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "complianceDetailedPdfReport": { + "sasUri": "this is a uri" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_ComplianceDetailedPdfReport" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json new file mode 100644 index 000000000000..fab4b64e88d1 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "CompliancePdfReport", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "compliancePdfReport": { + "sasUri": "this is uri of report" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_CompliancePdfReport" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Report.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Report.json new file mode 100644 index 000000000000..e7e5d3d67aed --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Compliance_Report.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "ComplianceReport", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "complianceReport": [ + { + "categoryName": "Data Security & Privacy", + "controlFamilyName": "Incident Response", + "controlId": "Operational_Security_75", + "controlName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlStatus": "Passed", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceStatus": "Healthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "Microsoft.SignalRService/SignalR", + "responsibilityDescription": "Restrict access to the Kubernetes Service Management API by granting API access only to IP addresses in specific ranges. It is recommended to limit access to authorized IP ranges to ensure that only applications from allowed networks can access the cluster.", + "responsibilityTitle": "Authorized IP ranges should be defined on Kubernetes Services" + } + ] + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_ComplianceReport" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Resource_List.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Resource_List.json new file mode 100644 index 000000000000..603716a5154a --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Download_Snapshot_Download_Resource_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "ResourceList", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "resourceList": [ + { + "resourceGroup": "myResourceGroup", + "resourceId": "mySignalRService", + "resourceType": "SignalR", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + } + ] + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_ResourceList" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Get.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Get.json new file mode 100644 index 000000000000..9637ea243640 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_Get.json @@ -0,0 +1,184 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "snapshotName": "testSnapshot" + }, + "responses": { + "200": { + "body": { + "name": "testSnapshot", + "type": "Microsfot.AppComplianceAutomation/reports/snapshots", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/snapshots/testSnapshot", + "properties": { + "complianceResults": [ + { + "categories": [ + { + "categoryName": "Operational Security", + "categoryStatus": "Passed", + "controlFamilies": [ + { + "controlFamilyName": "Incident Response", + "controlFamilyStatus": "Passed", + "controls": [ + { + "controlDescription": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlDescriptionHyperLink": "https://aka.ms/acat/m365cert/operational/control73", + "controlFullName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlId": "Operational_Security_75", + "controlName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlStatus": "Passed", + "responsibilities": [ + { + "evidenceFiles": [ + "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/reportABC/fileName?api-version=2024-06-27" + ], + "failedResourceCount": 0, + "guidance": "Please upload the screen capture file to ACAT service.", + "justification": "Here is my evidence files", + "recommendationList": [ + { + "recommendationId": "failed_reason_1", + "recommendationShortName": "Invalid TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Setting minimal TLS version to 1.2 improves security by ensuring your SQL Managed Instance can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities", + "recommendationSolutionIndex": "1" + } + ] + }, + { + "recommendationId": "failed_reason_2", + "recommendationShortName": "Invalid AWS TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Open the AWS related service, and set its TLS version to 1.2 or higher version.", + "recommendationSolutionIndex": "1" + } + ] + } + ], + "resourceList": [ + { + "recommendationIds": [ + "failed_reason_1" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "recommendationIds": [ + "failed_reason_2" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "iam.user" + } + ], + "responsibilityDescription": "Restrict access to the Kubernetes Service Management API by granting API access only to IP addresses in specific ranges. It is recommended to limit access to authorized IP ranges to ensure that only applications from allowed networks can access the cluster.", + "responsibilityEnvironment": "Azure", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services", + "responsibilitySeverity": "High", + "responsibilityStatus": "Passed", + "responsibilityTitle": "Authorized IP ranges should be defined on Kubernetes Services", + "responsibilityType": "Automated", + "totalResourceCount": 1 + } + ] + } + ] + } + ] + } + ], + "complianceName": "M365" + } + ], + "createdAt": "2022-03-04T15:33:59.160Z", + "provisioningState": "Succeeded", + "reportProperties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "errors": [], + "lastTriggerTime": "2022-03-04T15:00:00.000Z", + "nextTriggerTime": "2022-03-04T15:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T15:00:00.000Z" + }, + "reportSystemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + }, + "snapshotName": "testSnapshot" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Snapshot_Get", + "title": "Snapshot_Get" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_List.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_List.json new file mode 100644 index 000000000000..592c4f1160b5 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Snapshot_List.json @@ -0,0 +1,194 @@ +{ + "parameters": { + "$skipToken": "1", + "$top": "100", + "api-version": "2024-06-27", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/testReportName/snapshots?api-version=2024-06-27&skipToken=1&top=100", + "value": [ + { + "name": "testSnapshot", + "type": "Microsfot.AppComplianceAutomation/reports/snapshots", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/snapshots/testSnapshot", + "properties": { + "complianceResults": [ + { + "categories": [ + { + "categoryName": "Operational Security", + "categoryStatus": "Passed", + "controlFamilies": [ + { + "controlFamilyName": "Incident Response", + "controlFamilyStatus": "Passed", + "controls": [ + { + "controlDescription": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlDescriptionHyperLink": "https://aka.ms/acat/m365cert/operational/control73", + "controlFullName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlId": "Operational_Security_75", + "controlName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlStatus": "Passed", + "responsibilities": [ + { + "evidenceFiles": [ + "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/reportABC/fileName?api-version=2024-06-27" + ], + "failedResourceCount": 0, + "guidance": "Please upload the screen capture file to ACAT service.", + "justification": "Here is my evidence files", + "recommendationList": [ + { + "recommendationId": "failed_reason_1", + "recommendationShortName": "Invalid TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Setting minimal TLS version to 1.2 improves security by ensuring your SQL Managed Instance can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities", + "recommendationSolutionIndex": "1" + } + ] + }, + { + "recommendationId": "failed_reason_2", + "recommendationShortName": "Invalid AWS TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Open the AWS related service, and set its TLS version to 1.2 or higher version.", + "recommendationSolutionIndex": "1" + } + ] + } + ], + "resourceList": [ + { + "recommendationIds": [ + "failed_reason_1" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "recommendationIds": [ + "failed_reason_2" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "iam.user" + } + ], + "responsibilityDescription": "Restrict access to the Kubernetes Service Management API by granting API access only to IP addresses in specific ranges. It is recommended to limit access to authorized IP ranges to ensure that only applications from allowed networks can access the cluster.", + "responsibilityEnvironment": "Azure", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services", + "responsibilitySeverity": "High", + "responsibilityStatus": "Passed", + "responsibilityTitle": "Authorized IP ranges should be defined on Kubernetes Services", + "responsibilityType": "Automated", + "totalResourceCount": 1 + } + ] + } + ] + } + ] + } + ], + "complianceName": "M365" + } + ], + "createdAt": "2022-03-04T15:33:59.160Z", + "provisioningState": "Succeeded", + "reportProperties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "notApplicableCount": 0, + "passedCount": 0, + "pendingCount": 0 + } + }, + "errors": [], + "lastTriggerTime": "2022-03-04T15:00:00.000Z", + "nextTriggerTime": "2022-03-04T15:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T15:00:00.000Z" + }, + "reportSystemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + }, + "snapshotName": "testSnapshot" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Snapshot_List", + "title": "Snapshot_List" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/TriggerEvaluation.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/TriggerEvaluation.json new file mode 100644 index 000000000000..e9fd6273c264 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/TriggerEvaluation.json @@ -0,0 +1,51 @@ +{ + "operationId": "ProviderActions_TriggerEvaluation", + "title": "TriggerEvaluation", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "resourceIds": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService" + ] + } + }, + "responses": { + "200": { + "body": { + "properties": { + "evaluationEndTime": "2022-03-04T05:10:00.000Z", + "quickAssessments": [ + { + "description": "Protect your storage accounts from potential threats using virtual network rules as a preferred method instead of IP-based filtering. Disabling IP-based filtering prevents public IPs from accessing your storage accounts.", + "displayName": "Storage accounts should restrict network access using virtual network rules", + "remediationLink": "Protect your storage accounts from potential threats using virtual network rules as a preferred method instead of IP-based filtering. Disabling IP-based filtering prevents public IPs from accessing your storage accounts.", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.storage/storageaccounts/storettas3iw2megtcarm", + "resourceStatus": "Healthy", + "responsibilityId": "/providers/microsoft.authorization/policydefinitions/2a1a9cdf-e04d-429a-8416-3bfb72a1b26f", + "timestamp": "2022-03-04T05:00:00.000Z" + }, + { + "description": "", + "displayName": "Secure transfer to storage accounts should be enabled", + "remediationLink": "", + "resourceId": "/subscriptions/0000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.storage/storageaccounts/storettas3iw2megtcarm", + "resourceStatus": "Unhealthy", + "responsibilityId": "/providers/Microsoft.Authorization/policyDefinitions/404c3081-a854-4457-ae30-26a93ef643f9", + "timestamp": "2022-03-04T05:00:00.000Z" + } + ], + "resourceIds": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.storage/storageaccounts/storettas3iw2megtcarm" + ], + "triggerTime": "2022-03-04T05:00:00.000Z" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + } +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_CreateOrUpdate.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_CreateOrUpdate.json new file mode 100644 index 000000000000..02279408de64 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_CreateOrUpdate.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "contentType": "application/json", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "sendAllEvents": "false", + "status": "Enabled", + "updateWebhookKey": "true", + "webhookKey": "00000000-0000-0000-0000-000000000000" + } + }, + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/webhooks/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/webhooks/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Webhook_CreateOrUpdate", + "title": "Webhook_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Delete.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Delete.json new file mode 100644 index 000000000000..681e90bfaf99 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Webhook_Delete", + "title": "Webhook_Delete" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Get.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Get.json new file mode 100644 index 000000000000..8433044df3b6 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Get.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/webhooks/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Webhook_Get", + "title": "Webhook_Get" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_List.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_List.json new file mode 100644 index 000000000000..5218b564374a --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_List.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "$skipToken": "1", + "$top": "100", + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/testReportName/webhooks?api-version=2024-06-27&skipToken=1&top=100", + "value": [ + { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/snapshots/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "false" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Webhook_List", + "title": "Webhook_List" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Update.json b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Update.json new file mode 100644 index 000000000000..d30eb32aadbe --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/examples/2024-06-27/Webhook_Update.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "contentType": "application/json", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "sendAllEvents": "false", + "status": "Enabled", + "updateWebhookKey": "true", + "webhookKey": "00000000-0000-0000-0000-000000000000" + } + }, + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Webhook_Update", + "title": "Webhook_Update" +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/main.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/main.tsp new file mode 100644 index 000000000000..6e9ffc9b4780 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/main.tsp @@ -0,0 +1,39 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models/models.tsp"; +import "./resources/ReportResource.tsp"; +import "./resources/WebhookResource.tsp"; +import "./resources/SnapshotResource.tsp"; +import "./resources/ScopingConfigurationResource.tsp"; +import "./resources/EvidenceResource.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * App Compliance Automation Tool for Microsoft 365 API spec + */ +@armProviderNamespace +@service({ + title: "App Compliance Automation Tool for Microsoft 365", +}) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.AppComplianceAutomation; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-06-27 API version. + */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + v2024_06_27: "2024-06-27", +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/models/models.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/models/models.tsp new file mode 100644 index 000000000000..b04607c54826 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/models/models.tsp @@ -0,0 +1,1876 @@ +import "../main.tsp"; +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-client-generator-core"; +import "@azure-tools/typespec-azure-core"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using OpenAPI; +using Azure.Core; + +namespace Microsoft.AppComplianceAutomation; + +/** + * Indicates the resource status. + */ +union ResourceStatus { + @doc("The resource is healthy.") + Healthy: "Healthy", + + @doc("The resource is unhealthy.") + Unhealthy: "Unhealthy", + + string, +} + +/** + * Report status. + */ +union ReportStatus { + @doc("The report is active.") + Active: "Active", + + @doc("The report is failed.") + Failed: "Failed", + + @doc("The report is under reviewing.") + Reviewing: "Reviewing", + + @doc("The report is disabled.") + Disabled: "Disabled", + + string, +} + +/** + * Resource Origin. + */ +union ResourceOrigin { + @doc("The resource is from Azure.") + Azure: "Azure", + + @doc("The resource is from AWS.") + AWS: "AWS", + + @doc("The resource is from GCP.") + GCP: "GCP", + + string, +} + +/** + * Resource provisioning states. + */ +union ProvisioningState { + @doc("The provision is succeeded.") + Succeeded: "Succeeded", + + @doc("The provision is failed.") + Failed: "Failed", + + @doc("The provision is canceled.") + Canceled: "Canceled", + + @doc("The creation is in progress.") + Creating: "Creating", + + @doc("The deletion is in progress.") + Deleting: "Deleting", + + @doc("The fix of the resource in progress.") + Fixing: "Fixing", + + @doc("The verification of the resource in progress.") + Verifying: "Verifying", + + @doc("The update of the resource in progress.") + Updating: "Updating", + + string, +} + +/** + * Webhook status. + */ +union WebhookStatus { + @doc("The webhook is enabled.") + Enabled: "Enabled", + + @doc("The webhook is disabled.") + Disabled: "Disabled", + + string, +} + +/** + * whether to send notification under any event. + */ +union SendAllEvents { + @doc("Need send notification under any event.") + True: "true", + + @doc("No need to send notification under any event.") + False: "false", + + string, +} + +/** + * notification event. + */ +union NotificationEvent { + @doc("The subscribed report's snapshot is successfully generated.") + generate_snapshot_success: "generate_snapshot_success", + + @doc("The subscribed report's snapshot is failed to generate.") + generate_snapshot_failed: "generate_snapshot_failed", + + @doc("The subscribed report failed while collecting the assessments.") + assessment_failure: "assessment_failure", + + @doc("The subscribed report's configuration is changed.") + report_configuration_changes: "report_configuration_changes", + + @doc("The subscribed report is deleted.") + report_deletion: "report_deletion", + + string, +} + +/** + * content type + */ +union ContentType { + @doc("The content type is application/json.") + ApplicationJson: "application/json", + + string, +} + +/** + * whether to update webhookKey. + */ +union UpdateWebhookKey { + @doc("Need update the webhook key.") + True: "true", + + @doc("No need to update the webhook key.") + False: "false", + + string, +} + +/** + * whether webhookKey is enabled. + */ +union WebhookKeyEnabled { + @doc("The webhookKey is enabled.") + True: "true", + + @doc("The webhookKey is not enabled.") + False: "false", + + string, +} + +/** + * whether to enable ssl verification + */ +union EnableSslVerification { + @doc("The ssl verification is enabled.") + True: "true", + + @doc("The ssl verification is not enabled.") + False: "false", + + string, +} + +/** + * webhook deliveryStatus + */ +union DeliveryStatus { + @doc("The webhook is delivered successfully.") + Succeeded: "Succeeded", + + @doc("The webhook is failed to deliver.") + Failed: "Failed", + + @doc("The webhook is not delivered.") + NotStarted: "NotStarted", + + string, +} + +/** + * Indicates the category status. + */ +union CategoryStatus { + @doc("The category is passed.") + Passed: "Passed", + + @doc("The category is failed.") + Failed: "Failed", + + @doc("The category is not applicable.") + NotApplicable: "NotApplicable", + + @doc("The category is pending for approval.") + PendingApproval: "PendingApproval", + + string, +} + +/** + * Indicates the control family status. + */ +union ControlFamilyStatus { + @doc("The control family is passed.") + Passed: "Passed", + + @doc("The control family is failed.") + Failed: "Failed", + + @doc("The control family is not applicable.") + NotApplicable: "NotApplicable", + + @doc("The control family is pending for approval.") + PendingApproval: "PendingApproval", + + string, +} + +/** + * Indicates the control status. + */ +union ControlStatus { + @doc("The control is passed.") + Passed: "Passed", + + @doc("The control is failed.") + Failed: "Failed", + + @doc("The control is not applicable.") + NotApplicable: "NotApplicable", + + @doc("The control is pending for approval.") + PendingApproval: "PendingApproval", + + string, +} + +/** + * Indicates the customer responsibility type. + */ +union ResponsibilityType { + @doc("The responsibility is automated.") + Automated: "Automated", + + @doc("The responsibility is scoped manual.") + ScopedManual: "ScopedManual", + + @doc("The responsibility is manual.") + Manual: "Manual", + + string, +} + +/** + * Indicates the customer responsibility severity. + */ +union ResponsibilitySeverity { + @doc("The responsibility is high severity.") + High: "High", + + @doc("The responsibility is medium severity.") + Medium: "Medium", + + @doc("The responsibility is low severity.") + Low: "Low", + + string, +} + +/** + * Indicates the customer responsibility status. + */ +union ResponsibilityStatus { + @doc("The responsibility is passed.") + Passed: "Passed", + + @doc("The responsibility is failed.") + Failed: "Failed", + + @doc("The responsibility is not applicable.") + NotApplicable: "NotApplicable", + + @doc("The responsibility is pending for approval.") + PendingApproval: "PendingApproval", + + string, +} + +/** + * Indicates the customer responsibility supported cloud environment. + */ +union ResponsibilityEnvironment { + @doc("The responsibility is supported in Azure.") + Azure: "Azure", + + @doc("The responsibility is supported in AWS.") + AWS: "AWS", + + @doc("The responsibility is supported in GCP.") + GCP: "GCP", + + @doc("The responsibility is general requirement of all environment.") + General: "General", + + string, +} + +/** + * Indicates whether this solution is the recommended. + */ +union IsRecommendSolution { + @doc("This solution is the recommended.") + True: "true", + + @doc("This solution is not the recommended.") + False: "false", + + string, +} + +/** + * Indicates the download type. + */ +union DownloadType { + @doc("Download the compliance report.") + ComplianceReport: "ComplianceReport", + + @doc("Download the compliance pdf report.") + CompliancePdfReport: "CompliancePdfReport", + + @doc("Download the detailed compliance pdf report.") + ComplianceDetailedPdfReport: "ComplianceDetailedPdfReport", + + @doc("Download the resource list of the report.") + ResourceList: "ResourceList", + + string, +} + +/** + * Evidence type + */ +union EvidenceType { + @doc("The evidence is a file.") + File: "File", + + @doc("The evidence auto collected by App Compliance Automation.") + AutoCollectedEvidence: "AutoCollectedEvidence", + + @doc("The evidence is data.") + Data: "Data", + + string, +} + +/** + * Indicates whether the fix action is Succeeded or Failed. + */ +union Result { + @doc("The result is succeeded.") + Succeeded: "Succeeded", + + @doc("The result is failed.") + Failed: "Failed", + + string, +} + +/** + * Scoping question rule. + */ +union Rule { + @doc("The question is required to answer.") + Required: "Required", + + @doc("The question answer length is limited.") + CharLength: "CharLength", + + @doc("The question answer should be an Url.") + Url: "Url", + + @doc("The question answer should be Urls.") + Urls: "Urls", + + @doc("The question answer should be domains.") + Domains: "Domains", + + @doc("The question answer should be a UsPrivacyShield.") + USPrivacyShield: "USPrivacyShield", + + @doc("The question answer should be a PublicSOX.") + PublicSOX: "PublicSOX", + + @doc("The question answer should be a CreditCardPCI.") + CreditCardPCI: "CreditCardPCI", + + @doc("The question answer should be an AzureApplication.") + AzureApplication: "AzureApplication", + + @doc("The question answer should be a valid guid.") + ValidGuid: "ValidGuid", + + @doc("The question answer should be publisher verification.") + PublisherVerification: "PublisherVerification", + + @doc("The question answer should be dynamic dropdown.") + DynamicDropdown: "DynamicDropdown", + + @doc("The question answer should prevent non-english char.") + PreventNonEnglishChar: "PreventNonEnglishChar", + + @doc("The question answer should be a valid email.") + ValidEmail: "ValidEmail", + + string, +} + +/** + * Question input type. + */ +union InputType { + @doc("The input type is a text box.") + None: "None", + + @doc("The input content is text string.") + Text: "Text", + + @doc("The input content should be an email address.") + Email: "Email", + + @doc("The input content should be multiline text.") + MultilineText: "MultilineText", + + @doc("The input content should be a URL.") + Url: "Url", + + @doc("The input content should be a number.") + Number: "Number", + + @doc("The input content should be a boolean.") + Boolean: "Boolean", + + @doc("The input content should be a telephone number.") + Telephone: "Telephone", + + @doc("The input content should be Yes, No or Na.") + YesNoNa: "YesNoNa", + + @doc("The input content should be a date.") + Date: "Date", + + @doc("The input content is a Year, pick from the dropdown list.") + YearPicker: "YearPicker", + + @doc("The input content is a single result seleted from the options.") + SingleSelection: "SingleSelection", + + @doc("The input content is a single result seleted from the dropdown options.") + SingleSelectDropdown: "SingleSelectDropdown", + + @doc("The input content are multiple results seleted from the checkboxes.") + MultiSelectCheckbox: "MultiSelectCheckbox", + + @doc("The input content are multiple results seleted from the dropdown options.") + MultiSelectDropdown: "MultiSelectDropdown", + + @doc("The input content are result seleted from the custom dropdown options.") + MultiSelectDropdownCustom: "MultiSelectDropdownCustom", + + @doc("The input content is a group of answers.") + Group: "Group", + + @doc("The input content is a uploaded file.") + Upload: "Upload", + + string, +} + +/** + * The get collection count request body. + */ +@doc("Get collection count's request object.") +model GetCollectionCountRequest { + /** + * The resource type. + */ + type?: string; +} + +/** + * The get collection count response. + */ +model GetCollectionCountResponse { + /** + * The count of the specified resource. + */ + count?: int32; +} + +/** + * The get overview status request body. + */ +@doc("Get overview status request object.") +model GetOverviewStatusRequest { + /** + * The resource type. + */ + type?: string; +} + +/** + * The get overview status response. + */ +model GetOverviewStatusResponse { + /** + * List of different status items. + */ + @extension("x-ms-identifiers", ["statusName"]) + statusList?: StatusItem[]; +} + +/** + * Single status. + */ +model StatusItem { + /** + * Status name - e.g. "Active", "Failed". + */ + statusName?: string; + + /** + * Status value. e.g. "100", or "100%". + */ + statusValue?: string; +} + +/** + * Onboard subscriptions request. + */ +@doc("Parameters for onboard operation") +model OnboardRequest { + /** + * List of subscription ids to be onboarded + */ + subscriptionIds: string[]; +} + +/** + * Onboard subscriptions response. + */ +@doc("Success. The response indicates given subscriptions has been onboarded.") +model OnboardResponse { + /** + * List of subscription ids that are onboarded + */ + subscriptionIds?: string[]; +} + +/** + * Trigger evaluation request. + */ +model TriggerEvaluationRequest { + /** + * List of resource ids to be evaluated + */ + resourceIds: string[]; +} + +/** + * Trigger evaluation response. + */ +model TriggerEvaluationResponse { + /** + * trigger evaluation property. + */ + properties?: TriggerEvaluationProperty; +} + +/** + * Trigger evaluation response. + */ +model TriggerEvaluationProperty { + /** + * The time when the evaluation is triggered. + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + triggerTime?: utcDateTime; + + /** + * The time when the evaluation is end. + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + evaluationEndTime?: utcDateTime; + + /** + * List of resource ids to be evaluated + */ + @extension("x-ms-identifiers", ["resourceId"]) + resourceIds?: string[]; + + /** + * List of quick assessments + */ + @extension("x-ms-identifiers", ["resourceId"]) + quickAssessments?: QuickAssessment[]; +} + +/** + * A class represent the quick assessment. + */ +model QuickAssessment { + /** + * Resource id. + */ + @visibility("read") + resourceId?: string; + + /** + * Responsibility id. + */ + @visibility("read") + responsibilityId?: string; + + /** + * The timestamp of resource creation (UTC). + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timestamp?: utcDateTime; + + /** + * Quick assessment status. + */ + @visibility("read") + resourceStatus?: ResourceStatus; + + /** + * Quick assessment display name. + */ + @visibility("read") + displayName?: string; + + /** + * Quick assessment display name. + */ + @visibility("read") + description?: string; + + /** + * Link to remediation steps for this quick assessment. + */ + @visibility("read") + remediationLink?: string; +} + +/** + * List in use storage accounts request. + */ +@doc("Parameters for listing in use storage accounts operation. If subscription list is null, it will check the user's all subscriptions.") +model ListInUseStorageAccountsRequest { + /** + * List of subscription ids to be query. If the list is null or empty, the API will query all the subscriptions of the user. + */ + subscriptionIds?: string[]; +} + +/** + * List in use storage accounts response. + */ +@doc("Parameters for listing in use storage accounts operation. If subscription list is null, it will check the user's all subscriptions.") +model ListInUseStorageAccountsResponse { + /** + * The storage account list which in use in related reports. + */ + @extension("x-ms-identifiers", ["accountName"]) + storageAccountList?: StorageInfo[]; +} + +/** + * The information of 'bring your own storage' account binding to the report + */ +model StorageInfo { + /** + * The subscription id which 'bring your own storage' account belongs to + */ + subscriptionId?: string; + + /** + * The resourceGroup which 'bring your own storage' account belongs to + */ + resourceGroup?: string; + + /** + * 'bring your own storage' account name + */ + accountName?: string; + + /** + * The region of 'bring your own storage' account + */ + location?: string; +} + +/** + * Report's properties. + */ +alias ReportBaseProperties = { + /** + * Report status. + */ + @visibility("read") + status?: ReportStatus; + + /** + * List of report error codes. + */ + @visibility("read") + errors?: string[]; + + /** + * Report's tenant id. + */ + @visibility("read") + tenantId?: string; + + /** + * A list of comma-separated offerGuids indicates a series of offerGuids that map to the report. For example, "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002" and "00000000-0000-0000-0000-000000000003". + */ + offerGuid?: string; + + /** + * Report next collection trigger time. + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + nextTriggerTime?: utcDateTime; + + /** + * Report last collection trigger time. + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastTriggerTime?: utcDateTime; + + /** + * List of subscription Ids. + */ + @visibility("read") + subscriptions?: string[]; + + /** + * Report compliance status. + */ + @visibility("read") + complianceStatus?: ReportComplianceStatus; + + /** + * The information of 'bring your own storage' binding to the report + */ + storageInfo?: StorageInfo; + + /** + * List of synchronized certification records. + */ + @visibility("read") + @extension("x-ms-identifiers", ["offerGuid"]) + certRecords?: CertSyncRecord[]; + + /** + * Azure lifecycle management + */ + @visibility("read") + provisioningState?: ProvisioningState; +}; + +/** + * Create Report's properties. + */ +model ReportProperties { + /** + * Report collection trigger time. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + triggerTime: utcDateTime; + + /** + * Report collection trigger time's time zone, the available list can be obtained by executing "Get-TimeZone -ListAvailable" in PowerShell. + * An example of valid timezone id is "Pacific Standard Time". + */ + timeZone: string; + + /** + * List of resource data. + */ + @extension("x-ms-identifiers", ["resourceId"]) + resources: ResourceMetadata[]; + + ...ReportBaseProperties; +} + +/** + * Patch Report's properties. + */ +model ReportPatchProperties { + /** + * Report collection trigger time. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + triggerTime?: utcDateTime; + + /** + * Report collection trigger time's time zone, the available list can be obtained by executing "Get-TimeZone -ListAvailable" in PowerShell. + * An example of valid timezone id is "Pacific Standard Time". + */ + timeZone?: string; + + /** + * List of resource data. + */ + @extension("x-ms-identifiers", ["resourceId"]) + resources?: ResourceMetadata[]; + + ...ReportBaseProperties; +} + +/** + * Single resource Id's metadata. + */ +model ResourceMetadata { + /** + * Resource Id - e.g. "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1". + */ + resourceId: string; + + /** + * Resource type. e.g. "Microsoft.Compute/virtualMachines" + */ + resourceType?: string; + + /** + * Resource kind. + */ + resourceKind?: string; + + /** + * Resource Origin. + */ + resourceOrigin?: ResourceOrigin; + + /** + * Account Id. For example - the AWS account id. + */ + accountId?: string; +} + +/** + * A list which includes all the compliance result for one report. + */ +model ReportComplianceStatus { + /** + * The Microsoft 365 certification name. + */ + @visibility("read") + m365?: OverviewStatus; +} + +/** + * The overview of the compliance result for one report. + */ +model OverviewStatus { + /** + * The count of all passed control. + */ + @visibility("read") + passedCount?: int32; + + /** + * The count of all failed control. + */ + @visibility("read") + failedCount?: int32; + + /** + * The count of all manual control. + */ + @visibility("read") + manualCount?: int32; + + /** + * The count of all not applicable control. + */ + @visibility("read") + notApplicableCount?: int32; + + /** + * The count of all pending for approval control. + */ + @visibility("read") + pendingCount?: int32; +} + +/** + * A class represent the certification record synchronized from app compliance. + */ +model CertSyncRecord { + /** + * The offerGuid which mapping to the reports. + */ + @minLength(1) + offerGuid?: string; + + /** + * Indicates the status of certification process. + */ + certificationStatus?: string; + + /** + * Indicates the status of compliance process. + */ + ingestionStatus?: string; + + /** + * The control records list to be synchronized. + */ + @extension("x-ms-identifiers", ["controlId"]) + controls?: ControlSyncRecord[]; +} + +/** + * A class represent the control record synchronized from app compliance. + */ +model ControlSyncRecord { + /** + * The Id of the control. e.g. "Operational_Security_10" + */ + controlId?: string; + + /** + * Control status synchronized from app compliance. + */ + controlStatus?: string; +} + +/** + * A class represent a AppComplianceAutomation report resource update properties. + */ +model ReportResourcePatch { + /** + * Report property. + */ + properties?: ReportPatchProperties; +} + +/** + * Synchronize certification record request. + */ +model SyncCertRecordRequest { + /** + * certification record to be synchronized. + */ + certRecord: CertSyncRecord; +} + +/** + * Synchronize certification record response. + */ +model SyncCertRecordResponse { + /** + * certification record synchronized. + */ + certRecord?: CertSyncRecord; +} + +/** + * Webhook properties. + */ +model WebhookProperties { + /** + * Webhook id in database. + */ + @visibility("read") + webhookId?: string; + + /** + * Webhook status. + */ + status?: WebhookStatus; + + /** + * Tenant id. + */ + @visibility("read") + tenantId?: string; + + /** + * whether to send notification under any event. + */ + sendAllEvents?: SendAllEvents; + + /** + * under which event notification should be sent. + */ + events?: NotificationEvent[]; + + /** + * webhook payload url + */ + @pattern("^(http(s)?://)[\\S]{0,64994}$") + payloadUrl?: string; + + /** + * content type + */ + contentType?: ContentType; + + /** + * webhook secret token. If not set, this field value is null; otherwise, please set a string value. + */ + @pattern("^.{0,2048}$") + webhookKey?: string; + + /** + * whether to update webhookKey. + */ + updateWebhookKey?: UpdateWebhookKey; + + /** + * whether webhookKey is enabled. + */ + @visibility("read") + webhookKeyEnabled?: WebhookKeyEnabled; + + /** + * whether to enable ssl verification + */ + enableSslVerification?: EnableSslVerification; + + /** + * webhook deliveryStatus + */ + @visibility("read") + deliveryStatus?: DeliveryStatus; + + /** + * Azure Resource Provisioning State + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * A class represent a AppComplianceAutomation webhook resource update properties. + */ +model WebhookResourcePatch { + /** + * Webhook property. + */ + properties?: WebhookProperties; +} + +/** + * Snapshot's properties. + */ +model SnapshotProperties { + /** + * Snapshot name. + */ + @visibility("read") + snapshotName?: string; + + /** + * The timestamp of resource creation (UTC). + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + createdAt?: utcDateTime; + + /** + * Azure lifecycle management + */ + @visibility("read") + provisioningState?: ProvisioningState; + + /** + * The report essential info. + */ + @visibility("read") + reportProperties?: ReportProperties; + + /** + * Metadata pertaining to creation and last modification of the resource. + */ + @visibility("read") + reportSystemData?: SystemData; + + /** + * List of compliance results. + */ + @visibility("read") + @extension("x-ms-identifiers", ["complianceName"]) + complianceResults?: ComplianceResult[]; +} + +/** + * A class represent the compliance result. + */ +model ComplianceResult { + /** + * The name of the compliance. e.g. "M365" + */ + @visibility("read") + complianceName?: string; + + /** + * List of categories. + */ + @visibility("read") + @extension("x-ms-identifiers", ["categoryName"]) + categories?: Category[]; +} + +/** + * A class represent the compliance category. + */ +model Category { + /** + * The name of the compliance category. e.g. "Operational Security" + */ + @visibility("read") + categoryName?: string; + + /** + * Category status. + */ + @visibility("read") + categoryStatus?: CategoryStatus; + + /** + * List of control families. + */ + @visibility("read") + @extension("x-ms-identifiers", ["controlFamilyName"]) + controlFamilies?: ControlFamily[]; +} + +/** + * A class represent the control family. + */ +model ControlFamily { + /** + * The name of the control family. e.g. "Malware Protection - Anti-Virus" + */ + @visibility("read") + controlFamilyName?: string; + + /** + * The control family status + */ + @visibility("read") + controlFamilyStatus?: ControlFamilyStatus; + + /** + * List of controls. + */ + @visibility("read") + @extension("x-ms-identifiers", ["controlId"]) + controls?: Control[]; +} + +/** + * A class represent the control. + */ +model Control { + /** + * The Id of the control. e.g. "Operational_Security_10" + */ + @visibility("read") + controlId?: string; + + /** + * The name of the control. e.g. "Unsupported OS and Software." + */ + @visibility("read") + controlName?: string; + + /** + * The full name of the control. e.g. "Validate that unsupported operating systems and software components are not in use." + */ + @visibility("read") + controlFullName?: string; + + /** + * The control's description + */ + @visibility("read") + controlDescription?: string; + + /** + * The hyper link to the control's description'. + */ + @visibility("read") + controlDescriptionHyperLink?: string; + + /** + * Control status. + */ + @visibility("read") + controlStatus?: ControlStatus; + + /** + * List of customer responsibility. + */ + @visibility("read") + @extension("x-ms-identifiers", ["responsibilityId"]) + responsibilities?: Responsibility[]; +} + +/** + * A class represent the customer responsibility. + */ +model Responsibility { + /** + * The id of the customer responsibility. + */ + @visibility("read") + responsibilityId?: string; + + /** + * The title of the customer responsibility. + */ + @visibility("read") + responsibilityTitle?: string; + + /** + * The description of the customer responsibility. + */ + @visibility("read") + responsibilityDescription?: string; + + /** + * The type of customer responsibility. + */ + @visibility("read") + responsibilityType?: ResponsibilityType; + + /** + * The severity level of this customer responsibility. + */ + @visibility("read") + responsibilitySeverity?: ResponsibilitySeverity; + + /** + * The status of this customer responsibility. + */ + @visibility("read") + responsibilityStatus?: ResponsibilityStatus; + + /** + * The supported cloud environment of this customer responsibility. + */ + @visibility("read") + responsibilityEnvironment?: ResponsibilityEnvironment; + + /** + * The count of all failed resources. + */ + failedResourceCount?: int32; + + /** + * The count of all resources. + */ + totalResourceCount?: int32; + + /** + * List of resource. + */ + @visibility("read") + @extension("x-ms-identifiers", ["resourceId"]) + resourceList?: ResponsibilityResource[]; + + /** + * List of recommendation. + */ + @visibility("read") + @extension("x-ms-identifiers", ["recommendationId"]) + recommendationList?: Recommendation[]; + + /** + * The evidence upload guidance description. + */ + @visibility("read") + guidance?: string; + + /** + * The justification given by the user to clarify the reason. + */ + @visibility("read") + justification?: string; + + /** + * List of evidence file url. + */ + evidenceFiles?: string[]; +} + +/** + * A class represent the resource. + */ +model ResponsibilityResource { + /** + * The Id of the resource. + */ + @visibility("read") + resourceId?: string; + + /** + * Account Id. For example - AWS account Id. + */ + @visibility("read") + accountId?: string; + + /** + * The type of the resource. e.g. "Microsoft.SignalRService/SignalR" + */ + @visibility("read") + resourceType?: string; + + /** + * Resource origin. + */ + @visibility("read") + resourceOrigin?: ResourceOrigin; + + /** + * Resource status. + */ + @visibility("read") + resourceStatus?: ResourceStatus; + + /** + * The status change date for the resource. + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + resourceStatusChangeDate?: utcDateTime; + + /** + * List of recommendation id. + */ + recommendationIds?: string[]; +} + +/** + * A class represent the recommendation. + */ +model Recommendation { + /** + * The Id of the recommendation. + */ + @visibility("read") + recommendationId?: string; + + /** + * The short name of the recommendation. e.g. "Invalid TLS config" + */ + @visibility("read") + recommendationShortName?: string; + + /** + * List of recommendation solutions. + */ + @visibility("read") + @extension("x-ms-identifiers", ["recommendationSolutionIndex"]) + recommendationSolutions?: RecommendationSolution[]; +} + +/** + * A class represent the recommendation solution. + */ +model RecommendationSolution { + /** + * The index of the recommendation solution. + */ + @visibility("read") + recommendationSolutionIndex?: string; + + /** + * The detail steps of the recommendation solution. + */ + @visibility("read") + recommendationSolutionContent?: string; + + /** + * Indicates whether this solution is the recommended. + */ + @visibility("read") + isRecommendSolution?: IsRecommendSolution; +} + +/** + * Snapshot's download request. + */ +model SnapshotDownloadRequest { + /** + * Tenant id. + */ + reportCreatorTenantId?: string; + + /** + * Indicates the download type. + */ + downloadType: DownloadType; + + /** + * The offerGuid which mapping to the reports. + */ + @minLength(1) + offerGuid?: string; +} + +/** + * Object that includes all the possible response for the download operation. + */ +model DownloadResponse { + /** + * Resource list of the report + */ + @visibility("read") + @extension("x-ms-identifiers", ["resourceId"]) + resourceList?: ResourceItem[]; + + /** + * List of the compliance result + */ + @visibility("read") + @extension("x-ms-identifiers", ["controlId"]) + complianceReport?: ComplianceReportItem[]; + + /** + * Compliance pdf report + */ + @visibility("read") + compliancePdfReport?: DownloadResponseCompliancePdfReport; + + /** + * The detailed compliance pdf report + */ + @visibility("read") + complianceDetailedPdfReport?: DownloadResponseComplianceDetailedPdfReport; +} + +/** + * Resource Id. + */ +model ResourceItem { + /** + * The subscription Id of this resource. + */ + @visibility("read") + subscriptionId?: string; + + /** + * The resource group name of this resource. + */ + @visibility("read") + resourceGroup?: string; + + /** + * The resource type of this resource. e.g. "Microsoft.SignalRService/SignalR" + */ + @visibility("read") + resourceType?: string; + + /** + * The resource Id - e.g. "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1". + */ + @visibility("read") + resourceId?: string; +} + +/** + * Object that includes all the content for single compliance result. + */ +model ComplianceReportItem { + /** + * The category name. + */ + @visibility("read") + categoryName?: string; + + /** + * The control family name. + */ + @visibility("read") + controlFamilyName?: string; + + /** + * The control Id - e.g. "1". + */ + @visibility("read") + controlId?: string; + + /** + * The control name. + */ + @visibility("read") + controlName?: string; + + /** + * Control status. + */ + @visibility("read") + controlStatus?: ControlStatus; + + /** + * The title of the customer responsibility. + */ + @visibility("read") + responsibilityTitle?: string; + + /** + * The description of the customer responsibility. + */ + @visibility("read") + responsibilityDescription?: string; + + /** + * The Id of the resource. + */ + @visibility("read") + resourceId?: string; + + /** + * The type of the resource. e.g. "Microsoft.SignalRService/SignalR" + */ + @visibility("read") + resourceType?: string; + + /** + * Resource origin. + */ + @visibility("read") + resourceOrigin?: ResourceOrigin; + + /** + * Resource status. + */ + @visibility("read") + resourceStatus?: ResourceStatus; + + /** + * The status change date for the resource. + */ + @visibility("read") + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + resourceStatusChangeDate?: utcDateTime; +} + +/** + * Compliance pdf report + */ +model DownloadResponseCompliancePdfReport { + /** + * The uri of compliance pdf report + */ + @visibility("read") + sasUri?: string; +} + +/** + * The detailed compliance pdf report + */ +model DownloadResponseComplianceDetailedPdfReport { + /** + * The uri of detailed compliance pdf report + */ + @visibility("read") + sasUri?: string; +} + +/** + * ScopingConfiguration's properties. + */ +model ScopingConfigurationProperties { + /** + * List of scoping question answers. + */ + @extension("x-ms-identifiers", ["questionId"]) + answers?: ScopingAnswer[]; + + /** + * Azure lifecycle management + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * Scoping question list. + */ +model ScopingQuestions { + /** + * List of scoping questions. + */ + @extension("x-ms-identifiers", ["questionId"]) + questions?: ScopingQuestion[]; +} + +/** + * The definition of a scoping question. + */ +model ScopingQuestion { + /** + * Question id. + */ + @visibility("read") + questionId: string; + + /** + * Superior question id. + */ + @visibility("read") + superiorQuestionId?: string; + + /** + * Input type of the question answer. + */ + @visibility("read") + inputType: InputType; + + /** + * Option id list. + */ + @visibility("read") + optionIds: string[]; + + /** + * The rule of the question. + */ + @visibility("read") + rules: Rule[]; + + /** + * The answer value to show the sub questions. + */ + @visibility("read") + showSubQuestionsValue?: string; +} + +/** + * Scoping answer. + */ +model ScopingAnswer { + /** + * Question id. + */ + @pattern("^[-a-zA-Z0-9_]{1,50}$") + questionId: string; + + /** + * Question answer value list. + */ + answers: string[]; +} + +/** + * Evidence's properties. + */ +model EvidenceProperties { + /** + * Evidence type. + */ + evidenceType?: EvidenceType; + + /** + * The path of the file in storage. + */ + filePath: string; + + /** + * Extra data considered as evidence. + */ + extraData?: string; + + /** + * Control id. + */ + controlId?: string; + + /** + * Responsibility id. + */ + responsibilityId?: string; + + /** + * Azure lifecycle management + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * Evidence file's download request. + */ +model EvidenceFileDownloadRequest { + /** + * Tenant id. + */ + reportCreatorTenantId?: string; + + /** + * The offerGuid which mapping to the reports. + */ + @minLength(1) + offerGuid?: string; +} + +/** + * Object that includes all the possible response for the evidence file download operation. + */ +model EvidenceFileDownloadResponse { + /** + * The uri of evidence file + */ + @visibility("read") + evidenceFile?: EvidenceFileDownloadResponseEvidenceFile; +} + +/** + * The uri of evidence file + */ +model EvidenceFileDownloadResponseEvidenceFile { + /** + * The url of evidence file + */ + @visibility("read") + url?: string; +} + +/** + * Report fix result. + */ +model ReportFixResult { + /** + * Indicates whether the fix action is Succeeded or Failed. + */ + @visibility("read") + result?: Result; + + /** + * If the report fix action failed, to indicate the detailed failed reason. + */ + @visibility("read") + reason?: string; +} + +/** + * Report health status verification result. + */ +model ReportVerificationResult { + /** + * Indicates whether the report verification action is Succeeded or Failed. + */ + @visibility("read") + result?: Result; + + /** + * If the report verification action failed, to indicate the detailed failed reason. + */ + @visibility("read") + reason?: string; +} + +/** + * Query parameters for list operations. + */ +model QueryParameters { + /** + * Skip over when retrieving results. + */ + @query("$skipToken") + skipToken?: string; + + /** + * Number of elements to return when retrieving results. + */ + @maxValue(100) + @minValue(1) + @query("$top") + top?: int32; + + /** + * OData Select statement. Limits the properties on each entry to just those requested, e.g. ?$select=reportName,id. + */ + @minLength(1) + @query("$select") + select?: string; + + /** + * The filter to apply on the operation. + */ + @minLength(1) + @query("$filter") + filter?: string; + + /** + * OData order by query option. + */ + @minLength(1) + @query("$orderby") + orderby?: string; + + /** + * The offerGuid which mapping to the reports. + */ + @minLength(1) + @query("offerGuid") + offerGuid?: string; + + /** + * The tenant id of the report creator. + */ + @minLength(1) + @query("reportCreatorTenantId") + reportCreatorTenantId?: string; +} + +/** + * Extra parameters for app compliance. + */ +model ExtraParameter { + /** + * The offerGuid which mapping to the reports. + */ + @minLength(1) + @query("offerGuid") + offerGuid?: string; + + /** + * The tenant id of the report creator. + */ + @minLength(1) + @query("reportCreatorTenantId") + reportCreatorTenantId?: string; +} diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/EvidenceResource.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/EvidenceResource.tsp new file mode 100644 index 000000000000..059fafb96781 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/EvidenceResource.tsp @@ -0,0 +1,122 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "../models/models.tsp"; +import "./ReportResource.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using OpenAPI; +using Azure.ClientGenerator.Core; + +namespace Microsoft.AppComplianceAutomation; +/** + * A class represent an AppComplianceAutomation evidence resource. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" +@parentResource(ReportResource) +@includeInapplicableMetadataInPayload(false) +@Azure.ResourceManager.Private.armResourceInternal(EvidenceProperties) +model EvidenceResource extends Azure.ResourceManager.Foundations.ProxyResource { + /** + * The evidence name. + */ + @key("evidenceName") + @segment("evidences") + @visibility("read") + @pattern("^[a-zA-Z0-9-_.]+$") + @path + name: string; + + /** + * Evidence property. + */ + @extension("x-ms-client-flatten", true) + @extension("x-ms-client-name", "properties") + properties: EvidenceProperties; +} + +@armResourceOperations +@tag("AppComplianceAutomation") +interface Evidence { + /** + * Get the evidence metadata + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Evidence_Get") + get is ArmResourceRead< + EvidenceResource, + { + ...Azure.ResourceManager.Foundations.BaseParameters; + } + >; + + /** + * Create or Update an evidence a specified report + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Evidence_CreateOrUpdate") + createOrUpdate is ArmResourceCreateOrReplaceSync< + EvidenceResource, + { + ...Azure.ResourceManager.Foundations.BaseParameters; + ...ExtraParameter; + } + >; + + /** + * Delete an existent evidence from a specified report + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Evidence_Delete") + delete is ArmResourceDeleteSync; + + /** + * Returns a paginated list of evidences for a specified report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Evidence_ListByReport") + listByReport is ArmResourceListByParent< + EvidenceResource, + { + ...Azure.ResourceManager.Foundations.BaseParameters; + ...QueryParameters; + } + >; + + /** + * Download evidence file. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Evidence_Download") + download is ArmResourceActionSync< + EvidenceResource, + EvidenceFileDownloadRequest, + EvidenceFileDownloadResponse + >; +} + +@@doc(Evidence.createOrUpdate::parameters.resource, + "Parameters for the create or update operation" +); +@@encodedName(Evidence.download::parameters.body, + "application/json", + "parameters" +); +@@doc(Evidence.download::parameters.body, "Parameters for the query operation"); + +@@encodedName(Evidence.createOrUpdate::parameters.resource, + "application/json", + "parameters" +); + +@@OpenAPI.extension(Evidence.createOrUpdate::parameters.resource, + "x-ms-client-name", + "properties" +); + +@@clientName(Evidence.createOrUpdate::parameters.resource, "parameters"); diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp new file mode 100644 index 000000000000..19be57009d87 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp @@ -0,0 +1,191 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "../models/models.tsp"; + +using Azure.ClientGenerator.Core; +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using OpenAPI; +using Azure.Core; + +namespace Microsoft.AppComplianceAutomation; +/** + * A class represent an AppComplianceAutomation report resource. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" +@tenantResource +@includeInapplicableMetadataInPayload(false) +@Azure.ResourceManager.Private.armResourceInternal(ReportProperties) +model ReportResource extends Azure.ResourceManager.Foundations.ProxyResource { + /** + * Report Name. + */ + @pattern("^[-a-zA-Z0-9_]{1,50}$") + @key("reportName") + @segment("reports") + @visibility("read") + @path + name: string; + + /** + * Report property. + */ + @extension("x-ms-client-flatten", true) + @extension("x-ms-client-name", "properties") + properties: ReportProperties; +} + +@armResourceOperations +@tag("AppComplianceAutomation") +interface Report { + /** + * Get the AppComplianceAutomation report and its properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_Get") + get is ArmResourceRead; + + /** + * Create a new AppComplianceAutomation report or update an exiting AppComplianceAutomation report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_CreateOrUpdate") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + ReportResource, + Azure.ResourceManager.Foundations.BaseParameters + >; + + /** + * Update an exiting AppComplianceAutomation report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @parameterVisibility + @operationId("Report_Update") + update is ArmCustomPatchAsync< + ReportResource, + ReportResourcePatch, + Azure.ResourceManager.Foundations.BaseParameters + >; + + /** + * Delete an AppComplianceAutomation report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_Delete") + delete is ArmResourceDeleteWithoutOkAsync< + ReportResource, + Azure.ResourceManager.Foundations.BaseParameters + >; + + /** + * Get the AppComplianceAutomation report list for the tenant. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_List") + list is ArmResourceListByParent< + ReportResource, + { + ...Azure.ResourceManager.Foundations.BaseParameters; + ...QueryParameters; + } + >; + + /** + * Synchronize attestation record from app compliance. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_SyncCertRecord") + syncCertRecord is ArmResourceActionAsync< + ReportResource, + SyncCertRecordRequest, + SyncCertRecordResponse, + Azure.ResourceManager.Foundations.BaseParameters + >; + + /** + * Checks the report's nested resource name availability, e.g: Webhooks, Evidences, Snapshots. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_NestedResourceCheckNameAvailability") + checkNameAvailability is ArmResourceActionSync< + ReportResource, + Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest, + Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse + >; + + /** + * Fix the AppComplianceAutomation report error. e.g: App Compliance Automation Tool service unregistered, automation removed. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_Fix") + fix is ArmResourceActionAsync< + ReportResource, + void, + ReportFixResult, + Azure.ResourceManager.Foundations.BaseParameters + >; + + /** + * Fix the AppComplianceAutomation report error. e.g: App Compliance Automation Tool service unregistered, automation removed. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_GetScopingQuestions") + getScopingQuestions is ArmResourceActionSync< + ReportResource, + void, + ScopingQuestions, + Azure.ResourceManager.Foundations.BaseParameters + >; + + /** + * Verify the AppComplianceAutomation report health status. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Report_Verify") + verify is ArmResourceActionAsync< + ReportResource, + void, + ReportVerificationResult, + Azure.ResourceManager.Foundations.BaseParameters + >; +} + +@@doc(Report.createOrUpdate::parameters.resource, + "Parameters for the create or update operation" +); +@@encodedName(Report.createOrUpdate::parameters.resource, + "application/json", + "parameters" +); + +@@OpenAPI.extension(Report.createOrUpdate::parameters.resource, + "x-ms-client-name", + "properties" +); + +@@clientName(Report.createOrUpdate::parameters.resource, "parameters"); + +@@doc(Report.update::parameters.properties, + "Parameters for the create or update operation" +); +@@doc(Report.syncCertRecord::parameters.body, + "Parameters for synchronize certification record operation" +); +@@doc(Report.checkNameAvailability::parameters.body, + "NameAvailabilityRequest object." +); + +@@encodedName(Report.update::parameters.properties, + "application/json", + "parameters" +); + +@@encodedName(Report.syncCertRecord::parameters.body, + "application/json", + "parameters" +); diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ScopingConfigurationResource.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ScopingConfigurationResource.tsp new file mode 100644 index 000000000000..518cd41308a5 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ScopingConfigurationResource.tsp @@ -0,0 +1,96 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "../models/models.tsp"; +import "./ReportResource.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.ResourceManager; +using Azure.ClientGenerator.Core; +using OpenAPI; + +namespace Microsoft.AppComplianceAutomation; +/** + * A class represent an AppComplianceAutomation scoping configuration resource. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" +@parentResource(ReportResource) +@includeInapplicableMetadataInPayload(false) +@Azure.ResourceManager.Private.armResourceInternal( + ScopingConfigurationProperties +) +model ScopingConfigurationResource + extends Azure.ResourceManager.Foundations.ProxyResource { + @key("scopingConfigurationName") + @segment("scopingConfigurations") + @visibility("read") + @doc("The scoping configuration of the specific report.") + @pattern("^[a-zA-Z0-9_]*$") + @path + name: string; + + /** + * ScopingConfiguration property. + */ + @extension("x-ms-client-flatten", true) + @extension("x-ms-client-name", "properties") + properties: ScopingConfigurationProperties; +} + +@armResourceOperations +@tag("AppComplianceAutomation") +interface ScopingConfiguration { + /** + * Get the AppComplianceAutomation scoping configuration of the specific report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("ScopingConfiguration_Get") + get is ArmResourceRead; + + /** + * Get the AppComplianceAutomation scoping configuration of the specific report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("ScopingConfiguration_CreateOrUpdate") + createOrUpdate is ArmResourceCreateOrReplaceSync; + + /** + * Clean the AppComplianceAutomation scoping configuration of the specific report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("ScopingConfiguration_Delete") + delete is ArmResourceDeleteSync; + + /** + * Returns a list format of the singleton scopingConfiguration for a specified report. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("ScopingConfiguration_List") + list is ArmResourceListByParent; +} + +@@doc(ScopingConfiguration.createOrUpdate::parameters.resource, + "Parameters for the create or update operation, this is a singleton resource, so please make sure you're using 'default' as the name." +); + +@@encodedName(ScopingConfiguration.createOrUpdate::parameters.resource, + "application/json", + "parameters" +); + +@@OpenAPI.extension(ScopingConfiguration.createOrUpdate::parameters.resource, + "x-ms-client-name", + "properties" +); + +@@clientName(ScopingConfiguration.createOrUpdate::parameters.resource, + "parameters" +); diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/SnapshotResource.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/SnapshotResource.tsp new file mode 100644 index 000000000000..9fafd95080e9 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/SnapshotResource.tsp @@ -0,0 +1,77 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "../models/models.tsp"; +import "./ReportResource.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using OpenAPI; + +namespace Microsoft.AppComplianceAutomation; +/** + * A class represent a AppComplianceAutomation snapshot resource. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" +@parentResource(ReportResource) +@includeInapplicableMetadataInPayload(false) +@Azure.ResourceManager.Private.armResourceInternal(SnapshotProperties) +model SnapshotResource extends Azure.ResourceManager.Foundations.ProxyResource { + /** + * Snapshot Name. + */ + @path + @key("snapshotName") + @segment("snapshots") + @visibility("read") + @pattern("^[a-zA-Z0-9-_]{1,64}$") + name: string; + + /** + * Snapshot's property. + */ + @extension("x-ms-client-flatten", true) + @extension("x-ms-client-name", "properties") + properties?: SnapshotProperties; +} + +@armResourceOperations +@tag("AppComplianceAutomation") +interface Snapshot { + /** + * Get the AppComplianceAutomation snapshot and its properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Snapshot_Get") + get is ArmResourceRead; + + /** + * Get the AppComplianceAutomation snapshot list. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Snapshot_List") + list is ArmResourceListByParent< + SnapshotResource, + { + ...Azure.ResourceManager.Foundations.BaseParameters; + ...QueryParameters; + } + >; + + /** + * Download compliance needs from snapshot, like: Compliance Report, Resource List. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Snapshot_Download") + download is ArmResourceActionAsync< + SnapshotResource, + SnapshotDownloadRequest, + DownloadResponse, + Azure.ResourceManager.Foundations.BaseParameters + >; +} + +@@doc(Snapshot.download::parameters.body, "Parameters for the query operation"); diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/WebhookResource.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/WebhookResource.tsp new file mode 100644 index 000000000000..40e57c6edeaa --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/WebhookResource.tsp @@ -0,0 +1,120 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "../models/models.tsp"; +import "./ReportResource.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.ResourceManager; +using Azure.ClientGenerator.Core; +using OpenAPI; + +namespace Microsoft.AppComplianceAutomation; +/** + * A class represent an AppComplianceAutomation webhook resource. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" +@parentResource(ReportResource) +@includeInapplicableMetadataInPayload(false) +@Azure.ResourceManager.Private.armResourceInternal(WebhookProperties) +model WebhookResource extends Azure.ResourceManager.Foundations.ProxyResource { + /** + * Webhook Name. + */ + @pattern("^[-a-zA-Z0-9_]{1,50}$") + @key("webhookName") + @segment("webhooks") + @visibility("read") + @path + name: string; + + /** + * Webhook property. + */ + @extension("x-ms-client-flatten", true) + @extension("x-ms-client-name", "properties") + properties: WebhookProperties; // Replace 'WebhookProperties' with the actual type +} + +@armResourceOperations +@tag("AppComplianceAutomation") +interface Webhook { + /** + * Get the AppComplianceAutomation webhook and its properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Webhook_Get") + get is ArmResourceRead; + + /** + * Create a new AppComplianceAutomation webhook or update an exiting AppComplianceAutomation webhook. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Webhook_CreateOrUpdate") + createOrUpdate is ArmResourceCreateOrReplaceSync; + + /** + * Update an exiting AppComplianceAutomation webhook. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @parameterVisibility + @operationId("Webhook_Update") + update is ArmCustomPatchSync< + WebhookResource, + WebhookResourcePatch, + Response = ArmResponse, + Error = ErrorResponse + >; + + /** + * Delete an AppComplianceAutomation webhook. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Webhook_Delete") + delete is ArmResourceDeleteSync; + + /** + * Get the AppComplianceAutomation webhook list. + */ + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + @operationId("Webhook_List") + list is ArmResourceListByParent< + WebhookResource, + { + ...Azure.ResourceManager.Foundations.BaseParameters; + ...QueryParameters; + } + >; +} + +@@doc(Webhook.createOrUpdate::parameters.resource, + "Parameters for the create or update operation" +); +@@doc(Webhook.update::parameters.properties, + "Parameters for the create or update operation" +); + +@@encodedName(Webhook.update::parameters.properties, + "application/json", + "parameters" +); + +@@encodedName(Webhook.createOrUpdate::parameters.resource, + "application/json", + "parameters" +); + +@@OpenAPI.extension(Webhook.createOrUpdate::parameters.resource, + "x-ms-client-name", + "properties" +); + +@@clientName(Webhook.createOrUpdate::parameters.resource, "parameters"); diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/routes.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/routes.tsp new file mode 100644 index 000000000000..f5e9912fb6f4 --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/routes.tsp @@ -0,0 +1,91 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "./models/models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using OpenAPI; +using Azure.Core; +using Azure.Core.Traits; + +namespace Microsoft.AppComplianceAutomation; + +interface Operations extends Azure.ResourceManager.Operations {} + +alias PlaceholderResource = Azure.ResourceManager.Foundations.ProxyResource; + +alias ArmProviderActionAsync< + Request extends {} | void, + Response extends {} | void, + Parameters extends {} = {}, + LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader +> = Azure.ResourceManager.ArmResourceActionAsync< + PlaceholderResource, + Request, + Response | ArmAcceptedLroResponse<"Accepted", LroHeaders>, + BaseParameters = ApiVersionParameter, + Parameters = Parameters, + LroHeaders = ArmLroLocationHeader> +>; + +alias ArmProviderActionSync< + Request extends {} | void, + Response extends {} | void, + Parameters extends {} = {} +> = Azure.ResourceManager.ArmResourceActionSync< + PlaceholderResource, + Request, + Response, + BaseParameters = ApiVersionParameter, + Parameters = Parameters +>; + +@armResourceOperations +@tag("AppComplianceAutomation") +interface ProviderActions { + @doc("Check if the given name is available for a report.") + checkNameAvailability is ArmProviderActionSync< + Azure.ResourceManager.Foundations.CheckNameAvailabilityRequest, + Azure.ResourceManager.Foundations.CheckNameAvailabilityResponse + >; + + @doc("Get the count of reports.") + getCollectionCount is ArmProviderActionSync< + GetCollectionCountRequest, + GetCollectionCountResponse + >; + + @doc("Get the resource overview status.") + getOverviewStatus is ArmProviderActionSync< + GetOverviewStatusRequest, + GetOverviewStatusResponse + >; + + @doc("Onboard given subscriptions to Microsoft.AppComplianceAutomation provider.") + onboard is ArmProviderActionAsync; + + @doc("Trigger quick evaluation for the given subscriptions.") + triggerEvaluation is ArmProviderActionAsync< + TriggerEvaluationRequest, + TriggerEvaluationResponse + >; + + @doc("List the storage accounts which are in use by related reports") + listInUseStorageAccounts is ArmProviderActionSync< + ListInUseStorageAccountsRequest, + ListInUseStorageAccountsResponse + >; +} + +@@encodedName(ArmProviderActionAsync::parameters.body, + "application/json", + "parameters" +); +@@encodedName(ArmProviderActionSync::parameters.body, + "application/json", + "parameters" +); diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/tspconfig.yaml b/specification/appcomplianceautomation/AppComplianceAutomation.Management/tspconfig.yaml new file mode 100644 index 000000000000..f7b8f046327c --- /dev/null +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/tspconfig.yaml @@ -0,0 +1,34 @@ +parameters: + "service-dir": + default: "sdk/appcomplianceautomation" + "dependencies": + "additionalDirectories": [] + default: "" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + use-read-only-status-schema: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/appcomplianceautomation.json" + examples-directory: "{project-root}/examples" + "@azure-tools/typespec-python": + flavor: azure + package-dir: "azure-mgmt-appcomplianceautomation" + package-name: "{package-dir}" + "@azure-tools/typespec-ts": + flavor: azure + package-dir: "arm-appcomplianceautomation" + packageDetails: + name: "@azure/arm-appcomplianceautomation" + examples-directory: "{project-root}/examples" + "@azure-tools/typespec-java": + flavor: azure + package-dir: "azure-resourcemanager-appcomplianceautomation" + namespace: "com.azure.resourcemanager.appcomplianceautomation" + service-name: "App Compliance Automation" + examples-directory: "examples" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/appcomplianceautomation.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/appcomplianceautomation.json new file mode 100644 index 000000000000..d602558f2e49 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/appcomplianceautomation.json @@ -0,0 +1,4552 @@ +{ + "swagger": "2.0", + "info": { + "title": "App Compliance Automation Tool for Microsoft 365", + "version": "2024-06-27", + "description": "App Compliance Automation Tool for Microsoft 365 API spec", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "AppComplianceAutomation" + }, + { + "name": "Operations" + } + ], + "paths": { + "/providers/Microsoft.AppComplianceAutomation/checkNameAvailability": { + "post": { + "operationId": "ProviderActions_CheckNameAvailability", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Check if the given name is available for a report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/CheckNameAvailabilityRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/CheckNameAvailabilityResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_CheckNameAvailability": { + "$ref": "./examples/Report_CheckNameAvailability.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/getCollectionCount": { + "post": { + "operationId": "ProviderActions_GetCollectionCount", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the count of reports.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/GetCollectionCountRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/GetCollectionCountResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_GetCollectionCount": { + "$ref": "./examples/Report_GetCollectionCount.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/getOverviewStatus": { + "post": { + "operationId": "ProviderActions_GetOverviewStatus", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the resource overview status.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/GetOverviewStatusRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/GetOverviewStatusResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_GetOverviewStatus": { + "$ref": "./examples/Report_GetOverviewStatus.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/listInUseStorageAccounts": { + "post": { + "operationId": "ProviderActions_ListInUseStorageAccounts", + "tags": [ + "AppComplianceAutomation" + ], + "description": "List the storage accounts which are in use by related reports", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/ListInUseStorageAccountsRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListInUseStorageAccountsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListInUseStorageAccountsWithSubscriptions": { + "$ref": "./examples/ListInUseStorageAccountsWithSubscriptions.json" + }, + "ListInUseStorageAccountsWithoutSubscriptions": { + "$ref": "./examples/ListInUseStorageAccountsWithoutSubscriptions.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/onboard": { + "post": { + "operationId": "ProviderActions_Onboard", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Onboard given subscriptions to Microsoft.AppComplianceAutomation provider.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/OnboardRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OnboardResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Onboard": { + "$ref": "./examples/Onboard.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AppComplianceAutomation/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports": { + "get": { + "operationId": "Report_List", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation report list for the tenant.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/QueryParameters.skipToken" + }, + { + "$ref": "#/parameters/QueryParameters.top" + }, + { + "$ref": "#/parameters/QueryParameters.select" + }, + { + "$ref": "#/parameters/QueryParameters.filter" + }, + { + "$ref": "#/parameters/QueryParameters.orderby" + }, + { + "$ref": "#/parameters/QueryParameters.offerGuid" + }, + { + "$ref": "#/parameters/QueryParameters.reportCreatorTenantId" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ReportResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_List": { + "$ref": "./examples/Report_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}": { + "get": { + "operationId": "Report_Get", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation report and its properties.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ReportResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_Get": { + "$ref": "./examples/Report_Get.json" + } + } + }, + "put": { + "operationId": "Report_CreateOrUpdate", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Create a new AppComplianceAutomation report or update an exiting AppComplianceAutomation report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation", + "required": true, + "schema": { + "$ref": "#/definitions/ReportResource" + }, + "x-ms-client-name": "properties" + } + ], + "responses": { + "200": { + "description": "Resource 'ReportResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/ReportResource" + } + }, + "201": { + "description": "Resource 'ReportResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/ReportResource" + }, + "headers": { + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_CreateOrUpdate": { + "$ref": "./examples/Report_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Report_Update", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Update an exiting AppComplianceAutomation report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation", + "required": true, + "schema": { + "$ref": "#/definitions/ReportResourcePatch" + }, + "x-ms-client-name": "properties" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ReportResource" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_Update": { + "$ref": "./examples/Report_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Report_Delete", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Delete an AppComplianceAutomation report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_Delete": { + "$ref": "./examples/Report_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/checkNameAvailability": { + "post": { + "operationId": "Report_NestedResourceCheckNameAvailability", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Checks the report's nested resource name availability, e.g: Webhooks, Evidences, Snapshots.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "parameters", + "in": "body", + "description": "NameAvailabilityRequest object.", + "required": true, + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/CheckNameAvailabilityRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/CheckNameAvailabilityResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_EvidenceCheckNameAvailability": { + "$ref": "./examples/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json" + }, + "Report_SnapshotCheckNameAvailability": { + "$ref": "./examples/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json" + }, + "Report_WebhookCheckNameAvailability": { + "$ref": "./examples/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/evidences": { + "get": { + "operationId": "Evidence_ListByReport", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Returns a paginated list of evidences for a specified report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/QueryParameters.skipToken" + }, + { + "$ref": "#/parameters/QueryParameters.top" + }, + { + "$ref": "#/parameters/QueryParameters.select" + }, + { + "$ref": "#/parameters/QueryParameters.filter" + }, + { + "$ref": "#/parameters/QueryParameters.orderby" + }, + { + "$ref": "#/parameters/QueryParameters.offerGuid" + }, + { + "$ref": "#/parameters/QueryParameters.reportCreatorTenantId" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EvidenceResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Evidence_ListByReport": { + "$ref": "./examples/Evidence_ListByReport.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/evidences/{evidenceName}": { + "get": { + "operationId": "Evidence_Get", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the evidence metadata", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "evidenceName", + "in": "path", + "description": "The evidence name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_.]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EvidenceResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Evidence_Get": { + "$ref": "./examples/Evidence_Get.json" + } + } + }, + "put": { + "operationId": "Evidence_CreateOrUpdate", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Create or Update an evidence a specified report", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ExtraParameter.offerGuid" + }, + { + "$ref": "#/parameters/ExtraParameter.reportCreatorTenantId" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "evidenceName", + "in": "path", + "description": "The evidence name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_.]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation", + "required": true, + "schema": { + "$ref": "#/definitions/EvidenceResource" + }, + "x-ms-client-name": "properties" + } + ], + "responses": { + "200": { + "description": "Resource 'EvidenceResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/EvidenceResource" + } + }, + "201": { + "description": "Resource 'EvidenceResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/EvidenceResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Evidence_CreateOrUpdate": { + "$ref": "./examples/Evidence_CreateOrUpdate.json" + } + } + }, + "delete": { + "operationId": "Evidence_Delete", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Delete an existent evidence from a specified report", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "evidenceName", + "in": "path", + "description": "The evidence name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_.]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Evidence_Delete": { + "$ref": "./examples/Evidence_Delete.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/evidences/{evidenceName}/download": { + "post": { + "operationId": "Evidence_Download", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Download evidence file.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "evidenceName", + "in": "path", + "description": "The evidence name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_.]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the query operation", + "required": true, + "schema": { + "$ref": "#/definitions/EvidenceFileDownloadRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EvidenceFileDownloadResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Evidence_Download": { + "$ref": "./examples/Evidence_Download.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/fix": { + "post": { + "operationId": "Report_Fix", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Fix the AppComplianceAutomation report error. e.g: App Compliance Automation Tool service unregistered, automation removed.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ReportFixResult" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_Fix": { + "$ref": "./examples/Report_Fix.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/getScopingQuestions": { + "post": { + "operationId": "Report_GetScopingQuestions", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Fix the AppComplianceAutomation report error. e.g: App Compliance Automation Tool service unregistered, automation removed.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ScopingQuestions" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_GetScopingQuestions": { + "$ref": "./examples/Report_GetScopingQuestions.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/scopingConfigurations": { + "get": { + "operationId": "ScopingConfiguration_List", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Returns a list format of the singleton scopingConfiguration for a specified report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ScopingConfigurationResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ScopingConfiguration_List": { + "$ref": "./examples/ScopingConfiguration_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/scopingConfigurations/{scopingConfigurationName}": { + "get": { + "operationId": "ScopingConfiguration_Get", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation scoping configuration of the specific report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "scopingConfigurationName", + "in": "path", + "description": "The scoping configuration of the specific report.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_]*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ScopingConfigurationResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ScopingConfiguration": { + "$ref": "./examples/ScopingConfiguration_Get.json" + } + } + }, + "put": { + "operationId": "ScopingConfiguration_CreateOrUpdate", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation scoping configuration of the specific report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "scopingConfigurationName", + "in": "path", + "description": "The scoping configuration of the specific report.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_]*$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation, this is a singleton resource, so please make sure you're using 'default' as the name.", + "required": true, + "schema": { + "$ref": "#/definitions/ScopingConfigurationResource" + }, + "x-ms-client-name": "properties" + } + ], + "responses": { + "200": { + "description": "Resource 'ScopingConfigurationResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/ScopingConfigurationResource" + } + }, + "201": { + "description": "Resource 'ScopingConfigurationResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/ScopingConfigurationResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ScopingConfiguration_CreateOrUpdate": { + "$ref": "./examples/ScopingConfiguration_CreateOrUpdate.json" + } + } + }, + "delete": { + "operationId": "ScopingConfiguration_Delete", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Clean the AppComplianceAutomation scoping configuration of the specific report.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "scopingConfigurationName", + "in": "path", + "description": "The scoping configuration of the specific report.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_]*$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ScopingConfiguration_Delete": { + "$ref": "./examples/ScopingConfiguration_Delete.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/snapshots": { + "get": { + "operationId": "Snapshot_List", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation snapshot list.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/QueryParameters.skipToken" + }, + { + "$ref": "#/parameters/QueryParameters.top" + }, + { + "$ref": "#/parameters/QueryParameters.select" + }, + { + "$ref": "#/parameters/QueryParameters.filter" + }, + { + "$ref": "#/parameters/QueryParameters.orderby" + }, + { + "$ref": "#/parameters/QueryParameters.offerGuid" + }, + { + "$ref": "#/parameters/QueryParameters.reportCreatorTenantId" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SnapshotResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Snapshot_List": { + "$ref": "./examples/Snapshot_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/snapshots/{snapshotName}": { + "get": { + "operationId": "Snapshot_Get", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation snapshot and its properties.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "snapshotName", + "in": "path", + "description": "Snapshot Name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{1,64}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SnapshotResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Snapshot_Get": { + "$ref": "./examples/Snapshot_Get.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/snapshots/{snapshotName}/download": { + "post": { + "operationId": "Snapshot_Download", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Download compliance needs from snapshot, like: Compliance Report, Resource List.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "snapshotName", + "in": "path", + "description": "Snapshot Name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{1,64}$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the query operation", + "required": true, + "schema": { + "$ref": "#/definitions/SnapshotDownloadRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DownloadResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Snapshot_Download_ComplianceDetailedPdfReport": { + "$ref": "./examples/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json" + }, + "Snapshot_Download_CompliancePdfReport": { + "$ref": "./examples/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json" + }, + "Snapshot_Download_ComplianceReport": { + "$ref": "./examples/Snapshot_Download_Snapshot_Download_Compliance_Report.json" + }, + "Snapshot_Download_ResourceList": { + "$ref": "./examples/Snapshot_Download_Snapshot_Download_Resource_List.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/syncCertRecord": { + "post": { + "operationId": "Report_SyncCertRecord", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Synchronize attestation record from app compliance.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for synchronize certification record operation", + "required": true, + "schema": { + "$ref": "#/definitions/SyncCertRecordRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SyncCertRecordResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_SyncCertRecord": { + "$ref": "./examples/Report_SyncCertRecord.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/verify": { + "post": { + "operationId": "Report_Verify", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Verify the AppComplianceAutomation report health status.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ReportVerificationResult" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Report_Verify": { + "$ref": "./examples/Report_Verify.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/webhooks": { + "get": { + "operationId": "Webhook_List", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation webhook list.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/QueryParameters.skipToken" + }, + { + "$ref": "#/parameters/QueryParameters.top" + }, + { + "$ref": "#/parameters/QueryParameters.select" + }, + { + "$ref": "#/parameters/QueryParameters.filter" + }, + { + "$ref": "#/parameters/QueryParameters.orderby" + }, + { + "$ref": "#/parameters/QueryParameters.offerGuid" + }, + { + "$ref": "#/parameters/QueryParameters.reportCreatorTenantId" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WebhookResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Webhook_List": { + "$ref": "./examples/Webhook_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/reports/{reportName}/webhooks/{webhookName}": { + "get": { + "operationId": "Webhook_Get", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Get the AppComplianceAutomation webhook and its properties.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "webhookName", + "in": "path", + "description": "Webhook Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WebhookResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Webhook_Get": { + "$ref": "./examples/Webhook_Get.json" + } + } + }, + "put": { + "operationId": "Webhook_CreateOrUpdate", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Create a new AppComplianceAutomation webhook or update an exiting AppComplianceAutomation webhook.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "webhookName", + "in": "path", + "description": "Webhook Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation", + "required": true, + "schema": { + "$ref": "#/definitions/WebhookResource" + }, + "x-ms-client-name": "properties" + } + ], + "responses": { + "200": { + "description": "Resource 'WebhookResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/WebhookResource" + } + }, + "201": { + "description": "Resource 'WebhookResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/WebhookResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Webhook_CreateOrUpdate": { + "$ref": "./examples/Webhook_CreateOrUpdate.json" + } + } + }, + "patch": { + "operationId": "Webhook_Update", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Update an exiting AppComplianceAutomation webhook.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "webhookName", + "in": "path", + "description": "Webhook Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation", + "required": true, + "schema": { + "$ref": "#/definitions/WebhookResourcePatch" + }, + "x-ms-client-name": "properties" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WebhookResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Webhook_Update": { + "$ref": "./examples/Webhook_Update.json" + } + } + }, + "delete": { + "operationId": "Webhook_Delete", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Delete an AppComplianceAutomation webhook.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "reportName", + "in": "path", + "description": "Report Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + { + "name": "webhookName", + "in": "path", + "description": "Webhook Name.", + "required": true, + "type": "string", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Webhook_Delete": { + "$ref": "./examples/Webhook_Delete.json" + } + } + } + }, + "/providers/Microsoft.AppComplianceAutomation/triggerEvaluation": { + "post": { + "operationId": "ProviderActions_TriggerEvaluation", + "tags": [ + "AppComplianceAutomation" + ], + "description": "Trigger quick evaluation for the given subscriptions.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/TriggerEvaluationRequest" + }, + "x-ms-client-name": "body" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/TriggerEvaluationResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "TriggerEvaluation": { + "$ref": "./examples/TriggerEvaluation.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "Category": { + "type": "object", + "description": "A class represent the compliance category.", + "properties": { + "categoryName": { + "type": "string", + "description": "The name of the compliance category. e.g. \"Operational Security\"", + "readOnly": true + }, + "categoryStatus": { + "$ref": "#/definitions/CategoryStatus", + "description": "Category status.", + "readOnly": true + }, + "controlFamilies": { + "type": "array", + "description": "List of control families.", + "items": { + "$ref": "#/definitions/ControlFamily" + }, + "readOnly": true, + "x-ms-identifiers": [ + "controlFamilyName" + ] + } + } + }, + "CategoryStatus": { + "type": "string", + "description": "Indicates the category status.", + "enum": [ + "Passed", + "Failed", + "NotApplicable", + "PendingApproval" + ], + "x-ms-enum": { + "name": "CategoryStatus", + "modelAsString": true, + "values": [ + { + "name": "Passed", + "value": "Passed", + "description": "The category is passed." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The category is failed." + }, + { + "name": "NotApplicable", + "value": "NotApplicable", + "description": "The category is not applicable." + }, + { + "name": "PendingApproval", + "value": "PendingApproval", + "description": "The category is pending for approval." + } + ] + } + }, + "CertSyncRecord": { + "type": "object", + "description": "A class represent the certification record synchronized from app compliance.", + "properties": { + "offerGuid": { + "type": "string", + "description": "The offerGuid which mapping to the reports.", + "minLength": 1 + }, + "certificationStatus": { + "type": "string", + "description": "Indicates the status of certification process." + }, + "ingestionStatus": { + "type": "string", + "description": "Indicates the status of compliance process." + }, + "controls": { + "type": "array", + "description": "The control records list to be synchronized.", + "items": { + "$ref": "#/definitions/ControlSyncRecord" + }, + "x-ms-identifiers": [ + "controlId" + ] + } + } + }, + "ComplianceReportItem": { + "type": "object", + "description": "Object that includes all the content for single compliance result.", + "properties": { + "categoryName": { + "type": "string", + "description": "The category name.", + "readOnly": true + }, + "controlFamilyName": { + "type": "string", + "description": "The control family name.", + "readOnly": true + }, + "controlId": { + "type": "string", + "description": "The control Id - e.g. \"1\".", + "readOnly": true + }, + "controlName": { + "type": "string", + "description": "The control name.", + "readOnly": true + }, + "controlStatus": { + "$ref": "#/definitions/ControlStatus", + "description": "Control status.", + "readOnly": true + }, + "responsibilityTitle": { + "type": "string", + "description": "The title of the customer responsibility.", + "readOnly": true + }, + "responsibilityDescription": { + "type": "string", + "description": "The description of the customer responsibility.", + "readOnly": true + }, + "resourceId": { + "type": "string", + "description": "The Id of the resource.", + "readOnly": true + }, + "resourceType": { + "type": "string", + "description": "The type of the resource. e.g. \"Microsoft.SignalRService/SignalR\"", + "readOnly": true + }, + "resourceOrigin": { + "$ref": "#/definitions/ResourceOrigin", + "description": "Resource origin.", + "readOnly": true + }, + "resourceStatus": { + "$ref": "#/definitions/ResourceStatus", + "description": "Resource status.", + "readOnly": true + }, + "resourceStatusChangeDate": { + "type": "string", + "format": "date-time", + "description": "The status change date for the resource.", + "readOnly": true + } + } + }, + "ComplianceResult": { + "type": "object", + "description": "A class represent the compliance result.", + "properties": { + "complianceName": { + "type": "string", + "description": "The name of the compliance. e.g. \"M365\"", + "readOnly": true + }, + "categories": { + "type": "array", + "description": "List of categories.", + "items": { + "$ref": "#/definitions/Category" + }, + "readOnly": true, + "x-ms-identifiers": [ + "categoryName" + ] + } + } + }, + "ContentType": { + "type": "string", + "description": "content type", + "enum": [ + "application/json" + ], + "x-ms-enum": { + "name": "ContentType", + "modelAsString": true, + "values": [ + { + "name": "ApplicationJson", + "value": "application/json", + "description": "The content type is application/json." + } + ] + } + }, + "Control": { + "type": "object", + "description": "A class represent the control.", + "properties": { + "controlId": { + "type": "string", + "description": "The Id of the control. e.g. \"Operational_Security_10\"", + "readOnly": true + }, + "controlName": { + "type": "string", + "description": "The name of the control. e.g. \"Unsupported OS and Software.\"", + "readOnly": true + }, + "controlFullName": { + "type": "string", + "description": "The full name of the control. e.g. \"Validate that unsupported operating systems and software components are not in use.\"", + "readOnly": true + }, + "controlDescription": { + "type": "string", + "description": "The control's description", + "readOnly": true + }, + "controlDescriptionHyperLink": { + "type": "string", + "description": "The hyper link to the control's description'.", + "readOnly": true + }, + "controlStatus": { + "$ref": "#/definitions/ControlStatus", + "description": "Control status.", + "readOnly": true + }, + "responsibilities": { + "type": "array", + "description": "List of customer responsibility.", + "items": { + "$ref": "#/definitions/Responsibility" + }, + "readOnly": true, + "x-ms-identifiers": [ + "responsibilityId" + ] + } + } + }, + "ControlFamily": { + "type": "object", + "description": "A class represent the control family.", + "properties": { + "controlFamilyName": { + "type": "string", + "description": "The name of the control family. e.g. \"Malware Protection - Anti-Virus\"", + "readOnly": true + }, + "controlFamilyStatus": { + "$ref": "#/definitions/ControlFamilyStatus", + "description": "The control family status", + "readOnly": true + }, + "controls": { + "type": "array", + "description": "List of controls.", + "items": { + "$ref": "#/definitions/Control" + }, + "readOnly": true, + "x-ms-identifiers": [ + "controlId" + ] + } + } + }, + "ControlFamilyStatus": { + "type": "string", + "description": "Indicates the control family status.", + "enum": [ + "Passed", + "Failed", + "NotApplicable", + "PendingApproval" + ], + "x-ms-enum": { + "name": "ControlFamilyStatus", + "modelAsString": true, + "values": [ + { + "name": "Passed", + "value": "Passed", + "description": "The control family is passed." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The control family is failed." + }, + { + "name": "NotApplicable", + "value": "NotApplicable", + "description": "The control family is not applicable." + }, + { + "name": "PendingApproval", + "value": "PendingApproval", + "description": "The control family is pending for approval." + } + ] + } + }, + "ControlStatus": { + "type": "string", + "description": "Indicates the control status.", + "enum": [ + "Passed", + "Failed", + "NotApplicable", + "PendingApproval" + ], + "x-ms-enum": { + "name": "ControlStatus", + "modelAsString": true, + "values": [ + { + "name": "Passed", + "value": "Passed", + "description": "The control is passed." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The control is failed." + }, + { + "name": "NotApplicable", + "value": "NotApplicable", + "description": "The control is not applicable." + }, + { + "name": "PendingApproval", + "value": "PendingApproval", + "description": "The control is pending for approval." + } + ] + } + }, + "ControlSyncRecord": { + "type": "object", + "description": "A class represent the control record synchronized from app compliance.", + "properties": { + "controlId": { + "type": "string", + "description": "The Id of the control. e.g. \"Operational_Security_10\"" + }, + "controlStatus": { + "type": "string", + "description": "Control status synchronized from app compliance." + } + } + }, + "DeliveryStatus": { + "type": "string", + "description": "webhook deliveryStatus", + "enum": [ + "Succeeded", + "Failed", + "NotStarted" + ], + "x-ms-enum": { + "name": "DeliveryStatus", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The webhook is delivered successfully." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The webhook is failed to deliver." + }, + { + "name": "NotStarted", + "value": "NotStarted", + "description": "The webhook is not delivered." + } + ] + }, + "readOnly": true + }, + "DownloadResponse": { + "type": "object", + "description": "Object that includes all the possible response for the download operation.", + "properties": { + "resourceList": { + "type": "array", + "description": "Resource list of the report", + "items": { + "$ref": "#/definitions/ResourceItem" + }, + "readOnly": true, + "x-ms-identifiers": [ + "resourceId" + ] + }, + "complianceReport": { + "type": "array", + "description": "List of the compliance result", + "items": { + "$ref": "#/definitions/ComplianceReportItem" + }, + "readOnly": true, + "x-ms-identifiers": [ + "controlId" + ] + }, + "compliancePdfReport": { + "$ref": "#/definitions/DownloadResponseCompliancePdfReport", + "description": "Compliance pdf report", + "readOnly": true + }, + "complianceDetailedPdfReport": { + "$ref": "#/definitions/DownloadResponseComplianceDetailedPdfReport", + "description": "The detailed compliance pdf report", + "readOnly": true + } + } + }, + "DownloadResponseComplianceDetailedPdfReport": { + "type": "object", + "description": "The detailed compliance pdf report", + "properties": { + "sasUri": { + "type": "string", + "description": "The uri of detailed compliance pdf report", + "readOnly": true + } + } + }, + "DownloadResponseCompliancePdfReport": { + "type": "object", + "description": "Compliance pdf report", + "properties": { + "sasUri": { + "type": "string", + "description": "The uri of compliance pdf report", + "readOnly": true + } + } + }, + "DownloadType": { + "type": "string", + "description": "Indicates the download type.", + "enum": [ + "ComplianceReport", + "CompliancePdfReport", + "ComplianceDetailedPdfReport", + "ResourceList" + ], + "x-ms-enum": { + "name": "DownloadType", + "modelAsString": true, + "values": [ + { + "name": "ComplianceReport", + "value": "ComplianceReport", + "description": "Download the compliance report." + }, + { + "name": "CompliancePdfReport", + "value": "CompliancePdfReport", + "description": "Download the compliance pdf report." + }, + { + "name": "ComplianceDetailedPdfReport", + "value": "ComplianceDetailedPdfReport", + "description": "Download the detailed compliance pdf report." + }, + { + "name": "ResourceList", + "value": "ResourceList", + "description": "Download the resource list of the report." + } + ] + } + }, + "EnableSslVerification": { + "type": "string", + "description": "whether to enable ssl verification", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "EnableSslVerification", + "modelAsString": true, + "values": [ + { + "name": "True", + "value": "true", + "description": "The ssl verification is enabled." + }, + { + "name": "False", + "value": "false", + "description": "The ssl verification is not enabled." + } + ] + } + }, + "EvidenceFileDownloadRequest": { + "type": "object", + "description": "Evidence file's download request.", + "properties": { + "reportCreatorTenantId": { + "type": "string", + "description": "Tenant id." + }, + "offerGuid": { + "type": "string", + "description": "The offerGuid which mapping to the reports.", + "minLength": 1 + } + } + }, + "EvidenceFileDownloadResponse": { + "type": "object", + "description": "Object that includes all the possible response for the evidence file download operation.", + "properties": { + "evidenceFile": { + "$ref": "#/definitions/EvidenceFileDownloadResponseEvidenceFile", + "description": "The uri of evidence file", + "readOnly": true + } + } + }, + "EvidenceFileDownloadResponseEvidenceFile": { + "type": "object", + "description": "The uri of evidence file", + "properties": { + "url": { + "type": "string", + "description": "The url of evidence file", + "readOnly": true + } + } + }, + "EvidenceProperties": { + "type": "object", + "description": "Evidence's properties.", + "properties": { + "evidenceType": { + "$ref": "#/definitions/EvidenceType", + "description": "Evidence type." + }, + "filePath": { + "type": "string", + "description": "The path of the file in storage." + }, + "extraData": { + "type": "string", + "description": "Extra data considered as evidence." + }, + "controlId": { + "type": "string", + "description": "Control id." + }, + "responsibilityId": { + "type": "string", + "description": "Responsibility id." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Azure lifecycle management", + "readOnly": true + } + }, + "required": [ + "filePath" + ] + }, + "EvidenceResource": { + "type": "object", + "description": "A class represent an AppComplianceAutomation evidence resource.", + "properties": { + "properties": { + "$ref": "#/definitions/EvidenceProperties", + "description": "Evidence property.", + "x-ms-client-flatten": true, + "x-ms-client-name": "properties" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "EvidenceResourceListResult": { + "type": "object", + "description": "The response of a EvidenceResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EvidenceResource items on this page", + "items": { + "$ref": "#/definitions/EvidenceResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EvidenceType": { + "type": "string", + "description": "Evidence type", + "enum": [ + "File", + "AutoCollectedEvidence", + "Data" + ], + "x-ms-enum": { + "name": "EvidenceType", + "modelAsString": true, + "values": [ + { + "name": "File", + "value": "File", + "description": "The evidence is a file." + }, + { + "name": "AutoCollectedEvidence", + "value": "AutoCollectedEvidence", + "description": "The evidence auto collected by App Compliance Automation." + }, + { + "name": "Data", + "value": "Data", + "description": "The evidence is data." + } + ] + } + }, + "GetCollectionCountRequest": { + "type": "object", + "description": "Get collection count's request object.", + "properties": { + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "GetCollectionCountResponse": { + "type": "object", + "description": "The get collection count response.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the specified resource." + } + } + }, + "GetOverviewStatusRequest": { + "type": "object", + "description": "Get overview status request object.", + "properties": { + "type": { + "type": "string", + "description": "The resource type." + } + } + }, + "GetOverviewStatusResponse": { + "type": "object", + "description": "The get overview status response.", + "properties": { + "statusList": { + "type": "array", + "description": "List of different status items.", + "items": { + "$ref": "#/definitions/StatusItem" + }, + "x-ms-identifiers": [ + "statusName" + ] + } + } + }, + "InputType": { + "type": "string", + "description": "Question input type.", + "enum": [ + "None", + "Text", + "Email", + "MultilineText", + "Url", + "Number", + "Boolean", + "Telephone", + "YesNoNa", + "Date", + "YearPicker", + "SingleSelection", + "SingleSelectDropdown", + "MultiSelectCheckbox", + "MultiSelectDropdown", + "MultiSelectDropdownCustom", + "Group", + "Upload" + ], + "x-ms-enum": { + "name": "InputType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "The input type is a text box." + }, + { + "name": "Text", + "value": "Text", + "description": "The input content is text string." + }, + { + "name": "Email", + "value": "Email", + "description": "The input content should be an email address." + }, + { + "name": "MultilineText", + "value": "MultilineText", + "description": "The input content should be multiline text." + }, + { + "name": "Url", + "value": "Url", + "description": "The input content should be a URL." + }, + { + "name": "Number", + "value": "Number", + "description": "The input content should be a number." + }, + { + "name": "Boolean", + "value": "Boolean", + "description": "The input content should be a boolean." + }, + { + "name": "Telephone", + "value": "Telephone", + "description": "The input content should be a telephone number." + }, + { + "name": "YesNoNa", + "value": "YesNoNa", + "description": "The input content should be Yes, No or Na." + }, + { + "name": "Date", + "value": "Date", + "description": "The input content should be a date." + }, + { + "name": "YearPicker", + "value": "YearPicker", + "description": "The input content is a Year, pick from the dropdown list." + }, + { + "name": "SingleSelection", + "value": "SingleSelection", + "description": "The input content is a single result seleted from the options." + }, + { + "name": "SingleSelectDropdown", + "value": "SingleSelectDropdown", + "description": "The input content is a single result seleted from the dropdown options." + }, + { + "name": "MultiSelectCheckbox", + "value": "MultiSelectCheckbox", + "description": "The input content are multiple results seleted from the checkboxes." + }, + { + "name": "MultiSelectDropdown", + "value": "MultiSelectDropdown", + "description": "The input content are multiple results seleted from the dropdown options." + }, + { + "name": "MultiSelectDropdownCustom", + "value": "MultiSelectDropdownCustom", + "description": "The input content are result seleted from the custom dropdown options." + }, + { + "name": "Group", + "value": "Group", + "description": "The input content is a group of answers." + }, + { + "name": "Upload", + "value": "Upload", + "description": "The input content is a uploaded file." + } + ] + } + }, + "IsRecommendSolution": { + "type": "string", + "description": "Indicates whether this solution is the recommended.", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "IsRecommendSolution", + "modelAsString": true, + "values": [ + { + "name": "True", + "value": "true", + "description": "This solution is the recommended." + }, + { + "name": "False", + "value": "false", + "description": "This solution is not the recommended." + } + ] + } + }, + "ListInUseStorageAccountsRequest": { + "type": "object", + "description": "Parameters for listing in use storage accounts operation. If subscription list is null, it will check the user's all subscriptions.", + "properties": { + "subscriptionIds": { + "type": "array", + "description": "List of subscription ids to be query. If the list is null or empty, the API will query all the subscriptions of the user.", + "items": { + "type": "string" + } + } + } + }, + "ListInUseStorageAccountsResponse": { + "type": "object", + "description": "Parameters for listing in use storage accounts operation. If subscription list is null, it will check the user's all subscriptions.", + "properties": { + "storageAccountList": { + "type": "array", + "description": "The storage account list which in use in related reports.", + "items": { + "$ref": "#/definitions/StorageInfo" + }, + "x-ms-identifiers": [ + "accountName" + ] + } + } + }, + "NotificationEvent": { + "type": "string", + "description": "notification event.", + "enum": [ + "generate_snapshot_success", + "generate_snapshot_failed", + "assessment_failure", + "report_configuration_changes", + "report_deletion" + ], + "x-ms-enum": { + "name": "NotificationEvent", + "modelAsString": true, + "values": [ + { + "name": "generate_snapshot_success", + "value": "generate_snapshot_success", + "description": "The subscribed report's snapshot is successfully generated." + }, + { + "name": "generate_snapshot_failed", + "value": "generate_snapshot_failed", + "description": "The subscribed report's snapshot is failed to generate." + }, + { + "name": "assessment_failure", + "value": "assessment_failure", + "description": "The subscribed report failed while collecting the assessments." + }, + { + "name": "report_configuration_changes", + "value": "report_configuration_changes", + "description": "The subscribed report's configuration is changed." + }, + { + "name": "report_deletion", + "value": "report_deletion", + "description": "The subscribed report is deleted." + } + ] + } + }, + "OnboardRequest": { + "type": "object", + "description": "Parameters for onboard operation", + "properties": { + "subscriptionIds": { + "type": "array", + "description": "List of subscription ids to be onboarded", + "items": { + "type": "string" + } + } + }, + "required": [ + "subscriptionIds" + ] + }, + "OnboardResponse": { + "type": "object", + "description": "Success. The response indicates given subscriptions has been onboarded.", + "properties": { + "subscriptionIds": { + "type": "array", + "description": "List of subscription ids that are onboarded", + "items": { + "type": "string" + } + } + } + }, + "OverviewStatus": { + "type": "object", + "description": "The overview of the compliance result for one report.", + "properties": { + "passedCount": { + "type": "integer", + "format": "int32", + "description": "The count of all passed control.", + "readOnly": true + }, + "failedCount": { + "type": "integer", + "format": "int32", + "description": "The count of all failed control.", + "readOnly": true + }, + "manualCount": { + "type": "integer", + "format": "int32", + "description": "The count of all manual control.", + "readOnly": true + }, + "notApplicableCount": { + "type": "integer", + "format": "int32", + "description": "The count of all not applicable control.", + "readOnly": true + }, + "pendingCount": { + "type": "integer", + "format": "int32", + "description": "The count of all pending for approval control.", + "readOnly": true + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "Resource provisioning states.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Deleting", + "Fixing", + "Verifying", + "Updating" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The provision is succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The provision is failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The provision is canceled." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The creation is in progress." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The deletion is in progress." + }, + { + "name": "Fixing", + "value": "Fixing", + "description": "The fix of the resource in progress." + }, + { + "name": "Verifying", + "value": "Verifying", + "description": "The verification of the resource in progress." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The update of the resource in progress." + } + ] + }, + "readOnly": true + }, + "QuickAssessment": { + "type": "object", + "description": "A class represent the quick assessment.", + "properties": { + "resourceId": { + "type": "string", + "description": "Resource id.", + "readOnly": true + }, + "responsibilityId": { + "type": "string", + "description": "Responsibility id.", + "readOnly": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC).", + "readOnly": true + }, + "resourceStatus": { + "$ref": "#/definitions/ResourceStatus", + "description": "Quick assessment status.", + "readOnly": true + }, + "displayName": { + "type": "string", + "description": "Quick assessment display name.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "Quick assessment display name.", + "readOnly": true + }, + "remediationLink": { + "type": "string", + "description": "Link to remediation steps for this quick assessment.", + "readOnly": true + } + } + }, + "Recommendation": { + "type": "object", + "description": "A class represent the recommendation.", + "properties": { + "recommendationId": { + "type": "string", + "description": "The Id of the recommendation.", + "readOnly": true + }, + "recommendationShortName": { + "type": "string", + "description": "The short name of the recommendation. e.g. \"Invalid TLS config\"", + "readOnly": true + }, + "recommendationSolutions": { + "type": "array", + "description": "List of recommendation solutions.", + "items": { + "$ref": "#/definitions/RecommendationSolution" + }, + "readOnly": true, + "x-ms-identifiers": [ + "recommendationSolutionIndex" + ] + } + } + }, + "RecommendationSolution": { + "type": "object", + "description": "A class represent the recommendation solution.", + "properties": { + "recommendationSolutionIndex": { + "type": "string", + "description": "The index of the recommendation solution.", + "readOnly": true + }, + "recommendationSolutionContent": { + "type": "string", + "description": "The detail steps of the recommendation solution.", + "readOnly": true + }, + "isRecommendSolution": { + "$ref": "#/definitions/IsRecommendSolution", + "description": "Indicates whether this solution is the recommended.", + "readOnly": true + } + } + }, + "ReportComplianceStatus": { + "type": "object", + "description": "A list which includes all the compliance result for one report.", + "properties": { + "m365": { + "$ref": "#/definitions/OverviewStatus", + "description": "The Microsoft 365 certification name.", + "readOnly": true + } + } + }, + "ReportFixResult": { + "type": "object", + "description": "Report fix result.", + "properties": { + "result": { + "$ref": "#/definitions/Result", + "description": "Indicates whether the fix action is Succeeded or Failed.", + "readOnly": true + }, + "reason": { + "type": "string", + "description": "If the report fix action failed, to indicate the detailed failed reason.", + "readOnly": true + } + } + }, + "ReportPatchProperties": { + "type": "object", + "description": "Patch Report's properties.", + "properties": { + "triggerTime": { + "type": "string", + "format": "date-time", + "description": "Report collection trigger time." + }, + "timeZone": { + "type": "string", + "description": "Report collection trigger time's time zone, the available list can be obtained by executing \"Get-TimeZone -ListAvailable\" in PowerShell.\nAn example of valid timezone id is \"Pacific Standard Time\"." + }, + "resources": { + "type": "array", + "description": "List of resource data.", + "items": { + "$ref": "#/definitions/ResourceMetadata" + }, + "x-ms-identifiers": [ + "resourceId" + ] + }, + "status": { + "$ref": "#/definitions/ReportStatus", + "description": "Report status.", + "readOnly": true + }, + "errors": { + "type": "array", + "description": "List of report error codes.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "Report's tenant id.", + "readOnly": true + }, + "offerGuid": { + "type": "string", + "description": "A list of comma-separated offerGuids indicates a series of offerGuids that map to the report. For example, \"00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002\" and \"00000000-0000-0000-0000-000000000003\"." + }, + "nextTriggerTime": { + "type": "string", + "format": "date-time", + "description": "Report next collection trigger time.", + "readOnly": true + }, + "lastTriggerTime": { + "type": "string", + "format": "date-time", + "description": "Report last collection trigger time.", + "readOnly": true + }, + "subscriptions": { + "type": "array", + "description": "List of subscription Ids.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "complianceStatus": { + "$ref": "#/definitions/ReportComplianceStatus", + "description": "Report compliance status.", + "readOnly": true + }, + "storageInfo": { + "$ref": "#/definitions/StorageInfo", + "description": "The information of 'bring your own storage' binding to the report" + }, + "certRecords": { + "type": "array", + "description": "List of synchronized certification records.", + "items": { + "$ref": "#/definitions/CertSyncRecord" + }, + "readOnly": true, + "x-ms-identifiers": [ + "offerGuid" + ] + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Azure lifecycle management", + "readOnly": true + } + } + }, + "ReportProperties": { + "type": "object", + "description": "Create Report's properties.", + "properties": { + "triggerTime": { + "type": "string", + "format": "date-time", + "description": "Report collection trigger time." + }, + "timeZone": { + "type": "string", + "description": "Report collection trigger time's time zone, the available list can be obtained by executing \"Get-TimeZone -ListAvailable\" in PowerShell.\nAn example of valid timezone id is \"Pacific Standard Time\"." + }, + "resources": { + "type": "array", + "description": "List of resource data.", + "items": { + "$ref": "#/definitions/ResourceMetadata" + }, + "x-ms-identifiers": [ + "resourceId" + ] + }, + "status": { + "$ref": "#/definitions/ReportStatus", + "description": "Report status.", + "readOnly": true + }, + "errors": { + "type": "array", + "description": "List of report error codes.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "Report's tenant id.", + "readOnly": true + }, + "offerGuid": { + "type": "string", + "description": "A list of comma-separated offerGuids indicates a series of offerGuids that map to the report. For example, \"00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002\" and \"00000000-0000-0000-0000-000000000003\"." + }, + "nextTriggerTime": { + "type": "string", + "format": "date-time", + "description": "Report next collection trigger time.", + "readOnly": true + }, + "lastTriggerTime": { + "type": "string", + "format": "date-time", + "description": "Report last collection trigger time.", + "readOnly": true + }, + "subscriptions": { + "type": "array", + "description": "List of subscription Ids.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "complianceStatus": { + "$ref": "#/definitions/ReportComplianceStatus", + "description": "Report compliance status.", + "readOnly": true + }, + "storageInfo": { + "$ref": "#/definitions/StorageInfo", + "description": "The information of 'bring your own storage' binding to the report" + }, + "certRecords": { + "type": "array", + "description": "List of synchronized certification records.", + "items": { + "$ref": "#/definitions/CertSyncRecord" + }, + "readOnly": true, + "x-ms-identifiers": [ + "offerGuid" + ] + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Azure lifecycle management", + "readOnly": true + } + }, + "required": [ + "triggerTime", + "timeZone", + "resources" + ] + }, + "ReportResource": { + "type": "object", + "description": "A class represent an AppComplianceAutomation report resource.", + "properties": { + "properties": { + "$ref": "#/definitions/ReportProperties", + "description": "Report property.", + "x-ms-client-flatten": true, + "x-ms-client-name": "properties" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "ReportResourceListResult": { + "type": "object", + "description": "The response of a ReportResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The ReportResource items on this page", + "items": { + "$ref": "#/definitions/ReportResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ReportResourcePatch": { + "type": "object", + "description": "A class represent a AppComplianceAutomation report resource update properties.", + "properties": { + "properties": { + "$ref": "#/definitions/ReportPatchProperties", + "description": "Report property." + } + } + }, + "ReportStatus": { + "type": "string", + "description": "Report status.", + "enum": [ + "Active", + "Failed", + "Reviewing", + "Disabled" + ], + "x-ms-enum": { + "name": "ReportStatus", + "modelAsString": true, + "values": [ + { + "name": "Active", + "value": "Active", + "description": "The report is active." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The report is failed." + }, + { + "name": "Reviewing", + "value": "Reviewing", + "description": "The report is under reviewing." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "The report is disabled." + } + ] + } + }, + "ReportVerificationResult": { + "type": "object", + "description": "Report health status verification result.", + "properties": { + "result": { + "$ref": "#/definitions/Result", + "description": "Indicates whether the report verification action is Succeeded or Failed.", + "readOnly": true + }, + "reason": { + "type": "string", + "description": "If the report verification action failed, to indicate the detailed failed reason.", + "readOnly": true + } + } + }, + "ResourceItem": { + "type": "object", + "description": "Resource Id.", + "properties": { + "subscriptionId": { + "type": "string", + "description": "The subscription Id of this resource.", + "readOnly": true + }, + "resourceGroup": { + "type": "string", + "description": "The resource group name of this resource.", + "readOnly": true + }, + "resourceType": { + "type": "string", + "description": "The resource type of this resource. e.g. \"Microsoft.SignalRService/SignalR\"", + "readOnly": true + }, + "resourceId": { + "type": "string", + "description": "The resource Id - e.g. \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1\".", + "readOnly": true + } + } + }, + "ResourceMetadata": { + "type": "object", + "description": "Single resource Id's metadata.", + "properties": { + "resourceId": { + "type": "string", + "description": "Resource Id - e.g. \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1\"." + }, + "resourceType": { + "type": "string", + "description": "Resource type. e.g. \"Microsoft.Compute/virtualMachines\"" + }, + "resourceKind": { + "type": "string", + "description": "Resource kind." + }, + "resourceOrigin": { + "$ref": "#/definitions/ResourceOrigin", + "description": "Resource Origin." + }, + "accountId": { + "type": "string", + "description": "Account Id. For example - the AWS account id." + } + }, + "required": [ + "resourceId" + ] + }, + "ResourceOrigin": { + "type": "string", + "description": "Resource Origin.", + "enum": [ + "Azure", + "AWS", + "GCP" + ], + "x-ms-enum": { + "name": "ResourceOrigin", + "modelAsString": true, + "values": [ + { + "name": "Azure", + "value": "Azure", + "description": "The resource is from Azure." + }, + { + "name": "AWS", + "value": "AWS", + "description": "The resource is from AWS." + }, + { + "name": "GCP", + "value": "GCP", + "description": "The resource is from GCP." + } + ] + } + }, + "ResourceStatus": { + "type": "string", + "description": "Indicates the resource status.", + "enum": [ + "Healthy", + "Unhealthy" + ], + "x-ms-enum": { + "name": "ResourceStatus", + "modelAsString": true, + "values": [ + { + "name": "Healthy", + "value": "Healthy", + "description": "The resource is healthy." + }, + { + "name": "Unhealthy", + "value": "Unhealthy", + "description": "The resource is unhealthy." + } + ] + } + }, + "Responsibility": { + "type": "object", + "description": "A class represent the customer responsibility.", + "properties": { + "responsibilityId": { + "type": "string", + "description": "The id of the customer responsibility.", + "readOnly": true + }, + "responsibilityTitle": { + "type": "string", + "description": "The title of the customer responsibility.", + "readOnly": true + }, + "responsibilityDescription": { + "type": "string", + "description": "The description of the customer responsibility.", + "readOnly": true + }, + "responsibilityType": { + "$ref": "#/definitions/ResponsibilityType", + "description": "The type of customer responsibility.", + "readOnly": true + }, + "responsibilitySeverity": { + "$ref": "#/definitions/ResponsibilitySeverity", + "description": "The severity level of this customer responsibility.", + "readOnly": true + }, + "responsibilityStatus": { + "$ref": "#/definitions/ResponsibilityStatus", + "description": "The status of this customer responsibility.", + "readOnly": true + }, + "responsibilityEnvironment": { + "$ref": "#/definitions/ResponsibilityEnvironment", + "description": "The supported cloud environment of this customer responsibility.", + "readOnly": true + }, + "failedResourceCount": { + "type": "integer", + "format": "int32", + "description": "The count of all failed resources." + }, + "totalResourceCount": { + "type": "integer", + "format": "int32", + "description": "The count of all resources." + }, + "resourceList": { + "type": "array", + "description": "List of resource.", + "items": { + "$ref": "#/definitions/ResponsibilityResource" + }, + "readOnly": true, + "x-ms-identifiers": [ + "resourceId" + ] + }, + "recommendationList": { + "type": "array", + "description": "List of recommendation.", + "items": { + "$ref": "#/definitions/Recommendation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "recommendationId" + ] + }, + "guidance": { + "type": "string", + "description": "The evidence upload guidance description.", + "readOnly": true + }, + "justification": { + "type": "string", + "description": "The justification given by the user to clarify the reason.", + "readOnly": true + }, + "evidenceFiles": { + "type": "array", + "description": "List of evidence file url.", + "items": { + "type": "string" + } + } + } + }, + "ResponsibilityEnvironment": { + "type": "string", + "description": "Indicates the customer responsibility supported cloud environment.", + "enum": [ + "Azure", + "AWS", + "GCP", + "General" + ], + "x-ms-enum": { + "name": "ResponsibilityEnvironment", + "modelAsString": true, + "values": [ + { + "name": "Azure", + "value": "Azure", + "description": "The responsibility is supported in Azure." + }, + { + "name": "AWS", + "value": "AWS", + "description": "The responsibility is supported in AWS." + }, + { + "name": "GCP", + "value": "GCP", + "description": "The responsibility is supported in GCP." + }, + { + "name": "General", + "value": "General", + "description": "The responsibility is general requirement of all environment." + } + ] + } + }, + "ResponsibilityResource": { + "type": "object", + "description": "A class represent the resource.", + "properties": { + "resourceId": { + "type": "string", + "description": "The Id of the resource.", + "readOnly": true + }, + "accountId": { + "type": "string", + "description": "Account Id. For example - AWS account Id.", + "readOnly": true + }, + "resourceType": { + "type": "string", + "description": "The type of the resource. e.g. \"Microsoft.SignalRService/SignalR\"", + "readOnly": true + }, + "resourceOrigin": { + "$ref": "#/definitions/ResourceOrigin", + "description": "Resource origin.", + "readOnly": true + }, + "resourceStatus": { + "$ref": "#/definitions/ResourceStatus", + "description": "Resource status.", + "readOnly": true + }, + "resourceStatusChangeDate": { + "type": "string", + "format": "date-time", + "description": "The status change date for the resource.", + "readOnly": true + }, + "recommendationIds": { + "type": "array", + "description": "List of recommendation id.", + "items": { + "type": "string" + } + } + } + }, + "ResponsibilitySeverity": { + "type": "string", + "description": "Indicates the customer responsibility severity.", + "enum": [ + "High", + "Medium", + "Low" + ], + "x-ms-enum": { + "name": "ResponsibilitySeverity", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The responsibility is high severity." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The responsibility is medium severity." + }, + { + "name": "Low", + "value": "Low", + "description": "The responsibility is low severity." + } + ] + } + }, + "ResponsibilityStatus": { + "type": "string", + "description": "Indicates the customer responsibility status.", + "enum": [ + "Passed", + "Failed", + "NotApplicable", + "PendingApproval" + ], + "x-ms-enum": { + "name": "ResponsibilityStatus", + "modelAsString": true, + "values": [ + { + "name": "Passed", + "value": "Passed", + "description": "The responsibility is passed." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The responsibility is failed." + }, + { + "name": "NotApplicable", + "value": "NotApplicable", + "description": "The responsibility is not applicable." + }, + { + "name": "PendingApproval", + "value": "PendingApproval", + "description": "The responsibility is pending for approval." + } + ] + } + }, + "ResponsibilityType": { + "type": "string", + "description": "Indicates the customer responsibility type.", + "enum": [ + "Automated", + "ScopedManual", + "Manual" + ], + "x-ms-enum": { + "name": "ResponsibilityType", + "modelAsString": true, + "values": [ + { + "name": "Automated", + "value": "Automated", + "description": "The responsibility is automated." + }, + { + "name": "ScopedManual", + "value": "ScopedManual", + "description": "The responsibility is scoped manual." + }, + { + "name": "Manual", + "value": "Manual", + "description": "The responsibility is manual." + } + ] + } + }, + "Result": { + "type": "string", + "description": "Indicates whether the fix action is Succeeded or Failed.", + "enum": [ + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "Result", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The result is succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The result is failed." + } + ] + }, + "readOnly": true + }, + "Rule": { + "type": "string", + "description": "Scoping question rule.", + "enum": [ + "Required", + "CharLength", + "Url", + "Urls", + "Domains", + "USPrivacyShield", + "PublicSOX", + "CreditCardPCI", + "AzureApplication", + "ValidGuid", + "PublisherVerification", + "DynamicDropdown", + "PreventNonEnglishChar", + "ValidEmail" + ], + "x-ms-enum": { + "name": "Rule", + "modelAsString": true, + "values": [ + { + "name": "Required", + "value": "Required", + "description": "The question is required to answer." + }, + { + "name": "CharLength", + "value": "CharLength", + "description": "The question answer length is limited." + }, + { + "name": "Url", + "value": "Url", + "description": "The question answer should be an Url." + }, + { + "name": "Urls", + "value": "Urls", + "description": "The question answer should be Urls." + }, + { + "name": "Domains", + "value": "Domains", + "description": "The question answer should be domains." + }, + { + "name": "USPrivacyShield", + "value": "USPrivacyShield", + "description": "The question answer should be a UsPrivacyShield." + }, + { + "name": "PublicSOX", + "value": "PublicSOX", + "description": "The question answer should be a PublicSOX." + }, + { + "name": "CreditCardPCI", + "value": "CreditCardPCI", + "description": "The question answer should be a CreditCardPCI." + }, + { + "name": "AzureApplication", + "value": "AzureApplication", + "description": "The question answer should be an AzureApplication." + }, + { + "name": "ValidGuid", + "value": "ValidGuid", + "description": "The question answer should be a valid guid." + }, + { + "name": "PublisherVerification", + "value": "PublisherVerification", + "description": "The question answer should be publisher verification." + }, + { + "name": "DynamicDropdown", + "value": "DynamicDropdown", + "description": "The question answer should be dynamic dropdown." + }, + { + "name": "PreventNonEnglishChar", + "value": "PreventNonEnglishChar", + "description": "The question answer should prevent non-english char." + }, + { + "name": "ValidEmail", + "value": "ValidEmail", + "description": "The question answer should be a valid email." + } + ] + } + }, + "ScopingAnswer": { + "type": "object", + "description": "Scoping answer.", + "properties": { + "questionId": { + "type": "string", + "description": "Question id.", + "pattern": "^[-a-zA-Z0-9_]{1,50}$" + }, + "answers": { + "type": "array", + "description": "Question answer value list.", + "items": { + "type": "string" + } + } + }, + "required": [ + "questionId", + "answers" + ] + }, + "ScopingConfigurationProperties": { + "type": "object", + "description": "ScopingConfiguration's properties.", + "properties": { + "answers": { + "type": "array", + "description": "List of scoping question answers.", + "items": { + "$ref": "#/definitions/ScopingAnswer" + }, + "x-ms-identifiers": [ + "questionId" + ] + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Azure lifecycle management", + "readOnly": true + } + } + }, + "ScopingConfigurationResource": { + "type": "object", + "description": "A class represent an AppComplianceAutomation scoping configuration resource.", + "properties": { + "properties": { + "$ref": "#/definitions/ScopingConfigurationProperties", + "description": "ScopingConfiguration property.", + "x-ms-client-flatten": true, + "x-ms-client-name": "properties" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "ScopingConfigurationResourceListResult": { + "type": "object", + "description": "The response of a ScopingConfigurationResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The ScopingConfigurationResource items on this page", + "items": { + "$ref": "#/definitions/ScopingConfigurationResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ScopingQuestion": { + "type": "object", + "description": "The definition of a scoping question.", + "properties": { + "questionId": { + "type": "string", + "description": "Question id.", + "readOnly": true + }, + "superiorQuestionId": { + "type": "string", + "description": "Superior question id.", + "readOnly": true + }, + "inputType": { + "$ref": "#/definitions/InputType", + "description": "Input type of the question answer.", + "readOnly": true + }, + "optionIds": { + "type": "array", + "description": "Option id list.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "rules": { + "type": "array", + "description": "The rule of the question.", + "items": { + "$ref": "#/definitions/Rule" + }, + "readOnly": true + }, + "showSubQuestionsValue": { + "type": "string", + "description": "The answer value to show the sub questions.", + "readOnly": true + } + }, + "required": [ + "questionId", + "inputType", + "optionIds", + "rules" + ] + }, + "ScopingQuestions": { + "type": "object", + "description": "Scoping question list.", + "properties": { + "questions": { + "type": "array", + "description": "List of scoping questions.", + "items": { + "$ref": "#/definitions/ScopingQuestion" + }, + "x-ms-identifiers": [ + "questionId" + ] + } + } + }, + "SendAllEvents": { + "type": "string", + "description": "whether to send notification under any event.", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "SendAllEvents", + "modelAsString": true, + "values": [ + { + "name": "True", + "value": "true", + "description": "Need send notification under any event." + }, + { + "name": "False", + "value": "false", + "description": "No need to send notification under any event." + } + ] + } + }, + "SnapshotDownloadRequest": { + "type": "object", + "description": "Snapshot's download request.", + "properties": { + "reportCreatorTenantId": { + "type": "string", + "description": "Tenant id." + }, + "downloadType": { + "$ref": "#/definitions/DownloadType", + "description": "Indicates the download type." + }, + "offerGuid": { + "type": "string", + "description": "The offerGuid which mapping to the reports.", + "minLength": 1 + } + }, + "required": [ + "downloadType" + ] + }, + "SnapshotProperties": { + "type": "object", + "description": "Snapshot's properties.", + "properties": { + "snapshotName": { + "type": "string", + "description": "Snapshot name.", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC).", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Azure lifecycle management", + "readOnly": true + }, + "reportProperties": { + "$ref": "#/definitions/ReportProperties", + "description": "The report essential info.", + "readOnly": true + }, + "reportSystemData": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/systemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + }, + "complianceResults": { + "type": "array", + "description": "List of compliance results.", + "items": { + "$ref": "#/definitions/ComplianceResult" + }, + "readOnly": true, + "x-ms-identifiers": [ + "complianceName" + ] + } + } + }, + "SnapshotResource": { + "type": "object", + "description": "A class represent a AppComplianceAutomation snapshot resource.", + "properties": { + "properties": { + "$ref": "#/definitions/SnapshotProperties", + "description": "Snapshot's property.", + "x-ms-client-flatten": true, + "x-ms-client-name": "properties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "SnapshotResourceListResult": { + "type": "object", + "description": "The response of a SnapshotResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The SnapshotResource items on this page", + "items": { + "$ref": "#/definitions/SnapshotResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "StatusItem": { + "type": "object", + "description": "Single status.", + "properties": { + "statusName": { + "type": "string", + "description": "Status name - e.g. \"Active\", \"Failed\"." + }, + "statusValue": { + "type": "string", + "description": "Status value. e.g. \"100\", or \"100%\"." + } + } + }, + "StorageInfo": { + "type": "object", + "description": "The information of 'bring your own storage' account binding to the report", + "properties": { + "subscriptionId": { + "type": "string", + "description": "The subscription id which 'bring your own storage' account belongs to" + }, + "resourceGroup": { + "type": "string", + "description": "The resourceGroup which 'bring your own storage' account belongs to" + }, + "accountName": { + "type": "string", + "description": "'bring your own storage' account name" + }, + "location": { + "type": "string", + "description": "The region of 'bring your own storage' account" + } + } + }, + "SyncCertRecordRequest": { + "type": "object", + "description": "Synchronize certification record request.", + "properties": { + "certRecord": { + "$ref": "#/definitions/CertSyncRecord", + "description": "certification record to be synchronized." + } + }, + "required": [ + "certRecord" + ] + }, + "SyncCertRecordResponse": { + "type": "object", + "description": "Synchronize certification record response.", + "properties": { + "certRecord": { + "$ref": "#/definitions/CertSyncRecord", + "description": "certification record synchronized." + } + } + }, + "TriggerEvaluationProperty": { + "type": "object", + "description": "Trigger evaluation response.", + "properties": { + "triggerTime": { + "type": "string", + "format": "date-time", + "description": "The time when the evaluation is triggered.", + "readOnly": true + }, + "evaluationEndTime": { + "type": "string", + "format": "date-time", + "description": "The time when the evaluation is end.", + "readOnly": true + }, + "resourceIds": { + "type": "array", + "description": "List of resource ids to be evaluated", + "items": { + "type": "string" + }, + "x-ms-identifiers": [ + "resourceId" + ] + }, + "quickAssessments": { + "type": "array", + "description": "List of quick assessments", + "items": { + "$ref": "#/definitions/QuickAssessment" + }, + "x-ms-identifiers": [ + "resourceId" + ] + } + } + }, + "TriggerEvaluationRequest": { + "type": "object", + "description": "Trigger evaluation request.", + "properties": { + "resourceIds": { + "type": "array", + "description": "List of resource ids to be evaluated", + "items": { + "type": "string" + } + } + }, + "required": [ + "resourceIds" + ] + }, + "TriggerEvaluationResponse": { + "type": "object", + "description": "Trigger evaluation response.", + "properties": { + "properties": { + "$ref": "#/definitions/TriggerEvaluationProperty", + "description": "trigger evaluation property." + } + } + }, + "UpdateWebhookKey": { + "type": "string", + "description": "whether to update webhookKey.", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "UpdateWebhookKey", + "modelAsString": true, + "values": [ + { + "name": "True", + "value": "true", + "description": "Need update the webhook key." + }, + { + "name": "False", + "value": "false", + "description": "No need to update the webhook key." + } + ] + } + }, + "WebhookKeyEnabled": { + "type": "string", + "description": "whether webhookKey is enabled.", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "WebhookKeyEnabled", + "modelAsString": true, + "values": [ + { + "name": "True", + "value": "true", + "description": "The webhookKey is enabled." + }, + { + "name": "False", + "value": "false", + "description": "The webhookKey is not enabled." + } + ] + } + }, + "WebhookProperties": { + "type": "object", + "description": "Webhook properties.", + "properties": { + "webhookId": { + "type": "string", + "description": "Webhook id in database.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/WebhookStatus", + "description": "Webhook status." + }, + "tenantId": { + "type": "string", + "description": "Tenant id.", + "readOnly": true + }, + "sendAllEvents": { + "$ref": "#/definitions/SendAllEvents", + "description": "whether to send notification under any event." + }, + "events": { + "type": "array", + "description": "under which event notification should be sent.", + "items": { + "$ref": "#/definitions/NotificationEvent" + } + }, + "payloadUrl": { + "type": "string", + "description": "webhook payload url", + "pattern": "^(http(s)?://)[\\S]{0,64994}$" + }, + "contentType": { + "$ref": "#/definitions/ContentType", + "description": "content type" + }, + "webhookKey": { + "type": "string", + "description": "webhook secret token. If not set, this field value is null; otherwise, please set a string value.", + "pattern": "^.{0,2048}$" + }, + "updateWebhookKey": { + "$ref": "#/definitions/UpdateWebhookKey", + "description": "whether to update webhookKey." + }, + "webhookKeyEnabled": { + "$ref": "#/definitions/WebhookKeyEnabled", + "description": "whether webhookKey is enabled.", + "readOnly": true + }, + "enableSslVerification": { + "$ref": "#/definitions/EnableSslVerification", + "description": "whether to enable ssl verification" + }, + "deliveryStatus": { + "$ref": "#/definitions/DeliveryStatus", + "description": "webhook deliveryStatus", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Azure Resource Provisioning State", + "readOnly": true + } + } + }, + "WebhookResource": { + "type": "object", + "description": "A class represent an AppComplianceAutomation webhook resource.", + "properties": { + "properties": { + "$ref": "#/definitions/WebhookProperties", + "description": "Webhook property.", + "x-ms-client-flatten": true, + "x-ms-client-name": "properties" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "WebhookResourceListResult": { + "type": "object", + "description": "The response of a WebhookResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The WebhookResource items on this page", + "items": { + "$ref": "#/definitions/WebhookResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "WebhookResourcePatch": { + "type": "object", + "description": "A class represent a AppComplianceAutomation webhook resource update properties.", + "properties": { + "properties": { + "$ref": "#/definitions/WebhookProperties", + "description": "Webhook property." + } + } + }, + "WebhookStatus": { + "type": "string", + "description": "Webhook status.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "WebhookStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "The webhook is enabled." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "The webhook is disabled." + } + ] + } + } + }, + "parameters": { + "ExtraParameter.offerGuid": { + "name": "offerGuid", + "in": "query", + "description": "The offerGuid which mapping to the reports.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "ExtraParameter.reportCreatorTenantId": { + "name": "reportCreatorTenantId", + "in": "query", + "description": "The tenant id of the report creator.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "QueryParameters.filter": { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "filter" + }, + "QueryParameters.offerGuid": { + "name": "offerGuid", + "in": "query", + "description": "The offerGuid which mapping to the reports.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "QueryParameters.orderby": { + "name": "$orderby", + "in": "query", + "description": "OData order by query option.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "orderby" + }, + "QueryParameters.reportCreatorTenantId": { + "name": "reportCreatorTenantId", + "in": "query", + "description": "The tenant id of the report creator.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method" + }, + "QueryParameters.select": { + "name": "$select", + "in": "query", + "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. ?$select=reportName,id.", + "required": false, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "select" + }, + "QueryParameters.skipToken": { + "name": "$skipToken", + "in": "query", + "description": "Skip over when retrieving results.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "skipToken" + }, + "QueryParameters.top": { + "name": "$top", + "in": "query", + "description": "Number of elements to return when retrieving results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 100, + "x-ms-parameter-location": "method", + "x-ms-client-name": "top" + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_CreateOrUpdate.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_CreateOrUpdate.json new file mode 100644 index 000000000000..af439f4648bc --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_CreateOrUpdate.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "parameters": { + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "filePath": "/test-byos/evidence1.png", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Evidence_CreateOrUpdate", + "title": "Evidence_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Delete.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Delete.json new file mode 100644 index 000000000000..890214acc94b --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "reportName": "testReportName" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Evidence_Delete", + "title": "Evidence_Delete" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Download.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Download.json new file mode 100644 index 000000000000..7827cea38d1f --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Download.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "parameters": { + "offerGuid": "00000000-0000-0000-0000-000000000000", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "evidenceFile": { + "url": "this is a url" + } + } + } + }, + "operationId": "Evidence_Download", + "title": "Evidence_Download" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Get.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Get.json new file mode 100644 index 000000000000..3ce86f20bad4 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_Get.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "evidenceName": "evidence1", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Evidence_Get", + "title": "Evidence_Get" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_ListByReport.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_ListByReport.json new file mode 100644 index 000000000000..b93a76ee8334 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Evidence_ListByReport.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "reportName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "evidence1", + "type": "Microsfot.AppComplianceAutomation/reports/evidences", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/evidences/evidence1", + "properties": { + "controlId": "Operational_Security_10", + "evidenceType": "File", + "extraData": "sampleData", + "filePath": "/acat-container/evidence1.png", + "provisioningState": "Succeeded", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Evidence_ListByReport", + "title": "Evidence_ListByReport" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ListInUseStorageAccountsWithSubscriptions.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ListInUseStorageAccountsWithSubscriptions.json new file mode 100644 index 000000000000..e5596d869abe --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ListInUseStorageAccountsWithSubscriptions.json @@ -0,0 +1,33 @@ +{ + "operationId": "ProviderActions_ListInUseStorageAccounts", + "title": "ListInUseStorageAccountsWithSubscriptions", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "subscriptionIds": [ + "0000000-0000-0000-0000-000000000001", + "0000000-0000-0000-0000-000000000002" + ] + } + }, + "responses": { + "200": { + "body": { + "storageAccountList": [ + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name1", + "location": "WEST US" + }, + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name2", + "location": "WEST US" + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ListInUseStorageAccountsWithoutSubscriptions.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ListInUseStorageAccountsWithoutSubscriptions.json new file mode 100644 index 000000000000..7b9ccfcd9e83 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ListInUseStorageAccountsWithoutSubscriptions.json @@ -0,0 +1,28 @@ +{ + "operationId": "ProviderActions_ListInUseStorageAccounts", + "title": "ListInUseStorageAccountsWithoutSubscriptions", + "parameters": { + "api-version": "2024-06-27", + "parameters": {} + }, + "responses": { + "200": { + "body": { + "storageAccountList": [ + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name1", + "location": "WEST US" + }, + { + "subscriptionId": "0000000-0000-0000-0000-000000000001", + "resourceGroup": "tetsRG", + "accountName": "SA_name2", + "location": "WEST US" + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Onboard.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Onboard.json new file mode 100644 index 000000000000..3aaaff41bbd4 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Onboard.json @@ -0,0 +1,29 @@ +{ + "operationId": "ProviderActions_Onboard", + "title": "Onboard", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "subscriptionIds": [ + "00000000-0000-0000-0000-000000000000", + "00000000-0000-0000-0000-000000000001" + ] + } + }, + "responses": { + "200": { + "body": { + "subscriptionIds": [ + "00000000-0000-0000-0000-000000000000", + "00000000-0000-0000-0000-000000000001" + ] + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}", + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}" + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Operations_List.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Operations_List.json new file mode 100644 index 000000000000..289f672cdec0 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Operations_List.json @@ -0,0 +1,25 @@ +{ + "title": "Operations_List", + "operationId": "Operations_List", + "parameters": { + "api-version": "2024-06-27" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.AppComplianceAutomation/reports/write", + "isDataAction": false, + "display": { + "provider": "Microsoft AppComplianceAutomation", + "resource": "Microsoft.AppComplianceAutomation/reports", + "operation": "Microsoft.AppComplianceAutomation/reports/write", + "description": "Create new reports." + } + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_CheckNameAvailability.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_CheckNameAvailability.json new file mode 100644 index 000000000000..bcd762897e0a --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_CheckNameAvailability.json @@ -0,0 +1,20 @@ +{ + "operationId": "ProviderActions_CheckNameAvailability", + "title": "Report_CheckNameAvailability", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "reportABC", + "type": "Microsoft.AppComplianceAutomation/reports" + } + }, + "responses": { + "200": { + "body": { + "message": "An report named 'reportABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_CreateOrUpdate.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_CreateOrUpdate.json new file mode 100644 index 000000000000..2efea20388ba --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_CreateOrUpdate.json @@ -0,0 +1,149 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + } + ], + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T05:00:00.000Z" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_CreateOrUpdate", + "title": "Report_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Delete.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Delete.json new file mode 100644 index 000000000000..80a2ac5a5f87 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + }, + "204": {} + }, + "operationId": "Report_Delete", + "title": "Report_Delete" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Fix.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Fix.json new file mode 100644 index 000000000000..bcc813dce1b6 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Fix.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReport" + }, + "responses": { + "200": { + "body": { + "reason": "", + "result": "Succeeded" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_Fix", + "title": "Report_Fix" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Get.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Get.json new file mode 100644 index 000000000000..968fefe131b4 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Get.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReport" + }, + "responses": { + "200": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "errors": [ + "resource-inaccessible" + ], + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Failed", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Report_Get", + "title": "Report_Get" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetCollectionCount.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetCollectionCount.json new file mode 100644 index 000000000000..5bc1b448f3d4 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetCollectionCount.json @@ -0,0 +1,18 @@ +{ + "operationId": "ProviderActions_GetCollectionCount", + "title": "Report_GetCollectionCount", + "parameters": { + "api-version": "2024-06-27", + "$filter": "Name eq 'Milk'", + "parameters": { + "type": "Microsoft.AppComplianceAutomation/reports" + } + }, + "responses": { + "200": { + "body": { + "count": 100 + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetOverviewStatus.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetOverviewStatus.json new file mode 100644 index 000000000000..1ddbfccb5cb5 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetOverviewStatus.json @@ -0,0 +1,30 @@ +{ + "operationId": "ProviderActions_GetOverviewStatus", + "title": "Report_GetOverviewStatus", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "type": "Microsoft.AppComplianceAutomation/reports" + } + }, + "responses": { + "200": { + "body": { + "statusList": [ + { + "statusName": "Active", + "statusValue": "100" + }, + { + "statusName": "Failed", + "statusValue": "0" + }, + { + "statusName": "Disabled", + "statusValue": "0" + } + ] + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetScopingQuestions.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetScopingQuestions.json new file mode 100644 index 000000000000..08ef357ea5fd --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_GetScopingQuestions.json @@ -0,0 +1,100 @@ +{ + "operationId": "Report_GetScopingQuestions", + "title": "Report_GetScopingQuestions", + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "questions": [ + { + "questionId": "DHP_G07_customerDataProcess", + "inputType": "Boolean", + "optionIds": [], + "rules": [ + "Required" + ], + "showSubQuestionsValue": "true", + "superiorQuestionId": null + }, + { + "questionId": "DHP_G04_graphPermissionData", + "inputType": "Text", + "optionIds": [], + "rules": [ + "Required", + "CharLength" + ], + "showSubQuestionsValue": null, + "superiorQuestionId": "DHP_G07_customerDataProcess" + }, + { + "questionId": "DHP_G06_customerDataStorage", + "inputType": "Boolean", + "optionIds": [], + "rules": [ + "Required" + ], + "showSubQuestionsValue": "true", + "superiorQuestionId": null + }, + { + "questionId": "DHP_G05_graphPermissionInfo", + "inputType": "Text", + "optionIds": [], + "rules": [ + "Required", + "CharLength", + "PreventNonEnglishChar" + ], + "showSubQuestionsValue": null, + "superiorQuestionId": "DHP_G06_customerDataStorage" + }, + { + "questionId": "DHP_G08_storageLocation", + "inputType": "MultiSelectDropdown", + "optionIds": [ + "Croatia", + "Cuba", + "Curaçao", + "Cyprus", + "Czechia", + "Côte d'Ivoire", + "Denmark", + "Djibouti", + "Dominica", + "Dominican Republic (the)", + "Ecuador", + "Egypt" + ], + "rules": [ + "Required" + ], + "showSubQuestionsValue": null, + "superiorQuestionId": "DHP_G06_customerDataStorage" + }, + { + "questionId": "LEG03_complianceDataTermination", + "superiorQuestionId": "DHP_G06_customerDataStorage", + "inputType": "SingleSelectEnum", + "optionIds": [], + "rules": [ + "Required" + ], + "showSubQuestionsValue": null + } + ] + }, + "systemData": { + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "createdAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z" + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_List.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_List.json new file mode 100644 index 000000000000..0821ff0492b8 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_List.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "$skipToken": "1", + "$top": "100", + "api-version": "2024-06-27", + "offerGuid": "00000000-0000-0000-0000-000000000000", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports?api-version=2024-06-27&skipToken=1&top=100", + "value": [ + { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "notApplicableCount": 0, + "passedCount": 0, + "pendingCount": 0 + } + }, + "errors": [], + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Report_List", + "title": "Report_List" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json new file mode 100644 index 000000000000..b15d2c857cb6 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Evidence_Check_Name_Availability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "evidenceABC", + "type": "Microsoft.AppComplianceAutomation/reports/evidences" + }, + "reportName": "reportABC" + }, + "responses": { + "200": { + "body": { + "message": "An evidence named 'evidenceABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Report_NestedResourceCheckNameAvailability", + "title": "Report_EvidenceCheckNameAvailability" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json new file mode 100644 index 000000000000..4064467ccddc --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Snapshot_Check_Name_Availability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "snapshotABC", + "type": "Microsoft.AppComplianceAutomation/reports/snapshots" + }, + "reportName": "reportABC" + }, + "responses": { + "200": { + "body": { + "message": "An snapshot named 'snapshotABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Report_NestedResourceCheckNameAvailability", + "title": "Report_SnapshotCheckNameAvailability" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json new file mode 100644 index 000000000000..388d47f9a2c2 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_NestedResourceCheckNameAvailability_Report_Webhook_Check_Name_Availability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "name": "webhookABC", + "type": "Microsoft.AppComplianceAutomation/reports/webhooks" + }, + "reportName": "reportABC" + }, + "responses": { + "200": { + "body": { + "message": "An webhook named 'webhookABC' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Report_NestedResourceCheckNameAvailability", + "title": "Report_WebhookCheckNameAvailability" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_SyncCertRecord.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_SyncCertRecord.json new file mode 100644 index 000000000000..00f3a43324da --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_SyncCertRecord.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "certRecord": { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "certRecord": { + "offerGuid": "addb13fc-64bf-4005-b693-4c2f094e2187", + "certificationStatus": "CertIngestion", + "ingestionStatus": "InitialDocumentResubmitted", + "controls": [] + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_SyncCertRecord", + "title": "Report_SyncCertRecord" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Update.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Update.json new file mode 100644 index 000000000000..fba98d1d3712 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Update.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T05:00:00.000Z" + } + }, + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "name": "testReportName", + "type": "Microsfot.AppComplianceAutomation/reports", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName", + "properties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "lastTriggerTime": "2022-03-02T05:00:00.000Z", + "nextTriggerTime": "2022-03-02T05:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-02T05:00:00.000Z" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_Update", + "title": "Report_Update" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Verify.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Verify.json new file mode 100644 index 000000000000..e41d7293a90b --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Report_Verify.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReport" + }, + "responses": { + "200": { + "body": { + "reason": "", + "result": "Succeeded" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Report_Verify", + "title": "Report_Verify" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_CreateOrUpdate.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_CreateOrUpdate.json new file mode 100644 index 000000000000..ac5ce8c3467a --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_CreateOrUpdate.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "scopingConfigurationName": "default", + "parameters": { + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ScopingConfiguration_CreateOrUpdate", + "title": "ScopingConfiguration_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_Delete.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_Delete.json new file mode 100644 index 000000000000..f5a132637ae2 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "scopingConfigurationName": "default" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ScopingConfiguration_Delete", + "title": "ScopingConfiguration_Delete" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_Get.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_Get.json new file mode 100644 index 000000000000..5ec5a51c5190 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_Get.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "scopingConfigurationName": "default" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ScopingConfiguration_Get", + "title": "ScopingConfiguration" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_List.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_List.json new file mode 100644 index 000000000000..d29f4275ceb8 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/ScopingConfiguration_List.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.AppComplianceAutomation/reports/scopingConfigurations", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/scopingConfigurations/default", + "properties": { + "answers": [ + { + "answers": [ + "Azure" + ], + "questionId": "GEN20_hostingEnvironment" + }, + { + "answers": [], + "questionId": "DHP_G07_customerDataProcess" + }, + { + "answers": [], + "questionId": "Tier2InitSub_serviceCommunicate" + } + ] + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "ScopingConfiguration_List", + "title": "ScopingConfiguration_List" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json new file mode 100644 index 000000000000..d84be3fd0ea1 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Detailed_Pdf_Report.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "ComplianceDetailedPdfReport", + "offerGuid": "00000000-0000-0000-0000-000000000000", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "complianceDetailedPdfReport": { + "sasUri": "this is a uri" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_ComplianceDetailedPdfReport" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json new file mode 100644 index 000000000000..fab4b64e88d1 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Pdf_Report.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "CompliancePdfReport", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "compliancePdfReport": { + "sasUri": "this is uri of report" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_CompliancePdfReport" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Report.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Report.json new file mode 100644 index 000000000000..e7e5d3d67aed --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Compliance_Report.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "ComplianceReport", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "complianceReport": [ + { + "categoryName": "Data Security & Privacy", + "controlFamilyName": "Incident Response", + "controlId": "Operational_Security_75", + "controlName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlStatus": "Passed", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceStatus": "Healthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "Microsoft.SignalRService/SignalR", + "responsibilityDescription": "Restrict access to the Kubernetes Service Management API by granting API access only to IP addresses in specific ranges. It is recommended to limit access to authorized IP ranges to ensure that only applications from allowed networks can access the cluster.", + "responsibilityTitle": "Authorized IP ranges should be defined on Kubernetes Services" + } + ] + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_ComplianceReport" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Resource_List.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Resource_List.json new file mode 100644 index 000000000000..603716a5154a --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Download_Snapshot_Download_Resource_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "downloadType": "ResourceList", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000" + }, + "reportName": "testReportName", + "snapshotName": "testSnapshotName" + }, + "responses": { + "200": { + "body": { + "resourceList": [ + { + "resourceGroup": "myResourceGroup", + "resourceId": "mySignalRService", + "resourceType": "SignalR", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + } + ] + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + }, + "operationId": "Snapshot_Download", + "title": "Snapshot_Download_ResourceList" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Get.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Get.json new file mode 100644 index 000000000000..9637ea243640 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_Get.json @@ -0,0 +1,184 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "snapshotName": "testSnapshot" + }, + "responses": { + "200": { + "body": { + "name": "testSnapshot", + "type": "Microsfot.AppComplianceAutomation/reports/snapshots", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/snapshots/testSnapshot", + "properties": { + "complianceResults": [ + { + "categories": [ + { + "categoryName": "Operational Security", + "categoryStatus": "Passed", + "controlFamilies": [ + { + "controlFamilyName": "Incident Response", + "controlFamilyStatus": "Passed", + "controls": [ + { + "controlDescription": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlDescriptionHyperLink": "https://aka.ms/acat/m365cert/operational/control73", + "controlFullName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlId": "Operational_Security_75", + "controlName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlStatus": "Passed", + "responsibilities": [ + { + "evidenceFiles": [ + "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/reportABC/fileName?api-version=2024-06-27" + ], + "failedResourceCount": 0, + "guidance": "Please upload the screen capture file to ACAT service.", + "justification": "Here is my evidence files", + "recommendationList": [ + { + "recommendationId": "failed_reason_1", + "recommendationShortName": "Invalid TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Setting minimal TLS version to 1.2 improves security by ensuring your SQL Managed Instance can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities", + "recommendationSolutionIndex": "1" + } + ] + }, + { + "recommendationId": "failed_reason_2", + "recommendationShortName": "Invalid AWS TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Open the AWS related service, and set its TLS version to 1.2 or higher version.", + "recommendationSolutionIndex": "1" + } + ] + } + ], + "resourceList": [ + { + "recommendationIds": [ + "failed_reason_1" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "recommendationIds": [ + "failed_reason_2" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "iam.user" + } + ], + "responsibilityDescription": "Restrict access to the Kubernetes Service Management API by granting API access only to IP addresses in specific ranges. It is recommended to limit access to authorized IP ranges to ensure that only applications from allowed networks can access the cluster.", + "responsibilityEnvironment": "Azure", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services", + "responsibilitySeverity": "High", + "responsibilityStatus": "Passed", + "responsibilityTitle": "Authorized IP ranges should be defined on Kubernetes Services", + "responsibilityType": "Automated", + "totalResourceCount": 1 + } + ] + } + ] + } + ] + } + ], + "complianceName": "M365" + } + ], + "createdAt": "2022-03-04T15:33:59.160Z", + "provisioningState": "Succeeded", + "reportProperties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "passedCount": 0 + } + }, + "errors": [], + "lastTriggerTime": "2022-03-04T15:00:00.000Z", + "nextTriggerTime": "2022-03-04T15:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T15:00:00.000Z" + }, + "reportSystemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + }, + "snapshotName": "testSnapshot" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Snapshot_Get", + "title": "Snapshot_Get" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_List.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_List.json new file mode 100644 index 000000000000..592c4f1160b5 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Snapshot_List.json @@ -0,0 +1,194 @@ +{ + "parameters": { + "$skipToken": "1", + "$top": "100", + "api-version": "2024-06-27", + "offerGuid": "00000000-0000-0000-0000-000000000001", + "reportCreatorTenantId": "00000000-0000-0000-0000-000000000000", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/testReportName/snapshots?api-version=2024-06-27&skipToken=1&top=100", + "value": [ + { + "name": "testSnapshot", + "type": "Microsfot.AppComplianceAutomation/reports/snapshots", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/snapshots/testSnapshot", + "properties": { + "complianceResults": [ + { + "categories": [ + { + "categoryName": "Operational Security", + "categoryStatus": "Passed", + "controlFamilies": [ + { + "controlFamilyName": "Incident Response", + "controlFamilyStatus": "Passed", + "controls": [ + { + "controlDescription": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlDescriptionHyperLink": "https://aka.ms/acat/m365cert/operational/control73", + "controlFullName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlId": "Operational_Security_75", + "controlName": "Provide demonstrable evidence that all member of the incident response team have completed annual training or a table top exercise", + "controlStatus": "Passed", + "responsibilities": [ + { + "evidenceFiles": [ + "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/reportABC/fileName?api-version=2024-06-27" + ], + "failedResourceCount": 0, + "guidance": "Please upload the screen capture file to ACAT service.", + "justification": "Here is my evidence files", + "recommendationList": [ + { + "recommendationId": "failed_reason_1", + "recommendationShortName": "Invalid TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Setting minimal TLS version to 1.2 improves security by ensuring your SQL Managed Instance can only be accessed from clients using TLS 1.2. Using versions of TLS less than 1.2 is not recommended since they have well documented security vulnerabilities", + "recommendationSolutionIndex": "1" + } + ] + }, + { + "recommendationId": "failed_reason_2", + "recommendationShortName": "Invalid AWS TLS Config", + "recommendationSolutions": [ + { + "isRecommendSolution": "true", + "recommendationSolutionContent": "Open the AWS related service, and set its TLS version to 1.2 or higher version.", + "recommendationSolutionIndex": "1" + } + ] + } + ], + "resourceList": [ + { + "recommendationIds": [ + "failed_reason_1" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "recommendationIds": [ + "failed_reason_2" + ], + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceStatus": "Unhealthy", + "resourceStatusChangeDate": "2023-01-12T16:17:20.150Z", + "resourceType": "iam.user" + } + ], + "responsibilityDescription": "Restrict access to the Kubernetes Service Management API by granting API access only to IP addresses in specific ranges. It is recommended to limit access to authorized IP ranges to ensure that only applications from allowed networks can access the cluster.", + "responsibilityEnvironment": "Azure", + "responsibilityId": "authorized_ip_ranges_should_be_defined_on_kubernetes_services", + "responsibilitySeverity": "High", + "responsibilityStatus": "Passed", + "responsibilityTitle": "Authorized IP ranges should be defined on Kubernetes Services", + "responsibilityType": "Automated", + "totalResourceCount": 1 + } + ] + } + ] + } + ] + } + ], + "complianceName": "M365" + } + ], + "createdAt": "2022-03-04T15:33:59.160Z", + "provisioningState": "Succeeded", + "reportProperties": { + "certRecords": [ + { + "certificationStatus": "CertIngestion", + "controls": [ + { + "controlId": "Operational_Security_10", + "controlStatus": "Approved" + } + ], + "ingestionStatus": "EvidenceResubmitted", + "offerGuid": "00000000-0000-0000-0000-000000000001" + } + ], + "complianceStatus": { + "m365": { + "failedCount": 0, + "manualCount": 0, + "notApplicableCount": 0, + "passedCount": 0, + "pendingCount": 0 + } + }, + "errors": [], + "lastTriggerTime": "2022-03-04T15:00:00.000Z", + "nextTriggerTime": "2022-03-04T15:00:00.000Z", + "offerGuid": "00000000-0000-0000-0000-000000000001,00000000-0000-0000-0000-000000000002", + "provisioningState": "Succeeded", + "resources": [ + { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService", + "resourceOrigin": "Azure", + "resourceType": "Microsoft.SignalRService/SignalR" + }, + { + "accountId": "000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/acat-aws/providers/microsoft.security/securityconnectors/acatawsconnector/securityentitydata/aws-iam-user-testuser", + "resourceOrigin": "AWS", + "resourceType": "iam.user" + } + ], + "status": "Active", + "storageInfo": { + "accountName": "testStorageAccount", + "location": "East US", + "resourceGroup": "testResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "subscriptions": [ + "00000000-0000-0000-0000-000000000000" + ], + "tenantId": "00000000-0000-0000-0000-000000000000", + "timeZone": "GMT Standard Time", + "triggerTime": "2022-03-04T15:00:00.000Z" + }, + "reportSystemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + }, + "snapshotName": "testSnapshot" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Snapshot_List", + "title": "Snapshot_List" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/TriggerEvaluation.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/TriggerEvaluation.json new file mode 100644 index 000000000000..e9fd6273c264 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/TriggerEvaluation.json @@ -0,0 +1,51 @@ +{ + "operationId": "ProviderActions_TriggerEvaluation", + "title": "TriggerEvaluation", + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "resourceIds": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/mySignalRService" + ] + } + }, + "responses": { + "200": { + "body": { + "properties": { + "evaluationEndTime": "2022-03-04T05:10:00.000Z", + "quickAssessments": [ + { + "description": "Protect your storage accounts from potential threats using virtual network rules as a preferred method instead of IP-based filtering. Disabling IP-based filtering prevents public IPs from accessing your storage accounts.", + "displayName": "Storage accounts should restrict network access using virtual network rules", + "remediationLink": "Protect your storage accounts from potential threats using virtual network rules as a preferred method instead of IP-based filtering. Disabling IP-based filtering prevents public IPs from accessing your storage accounts.", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.storage/storageaccounts/storettas3iw2megtcarm", + "resourceStatus": "Healthy", + "responsibilityId": "/providers/microsoft.authorization/policydefinitions/2a1a9cdf-e04d-429a-8416-3bfb72a1b26f", + "timestamp": "2022-03-04T05:00:00.000Z" + }, + { + "description": "", + "displayName": "Secure transfer to storage accounts should be enabled", + "remediationLink": "", + "resourceId": "/subscriptions/0000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.storage/storageaccounts/storettas3iw2megtcarm", + "resourceStatus": "Unhealthy", + "responsibilityId": "/providers/Microsoft.Authorization/policyDefinitions/404c3081-a854-4457-ae30-26a93ef643f9", + "timestamp": "2022-03-04T05:00:00.000Z" + } + ], + "resourceIds": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/myResourceGroup/providers/microsoft.storage/storageaccounts/storettas3iw2megtcarm" + ], + "triggerTime": "2022-03-04T05:00:00.000Z" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationStatuses/{operationId}", + "Location": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/operationResults/{operationId}" + } + } + } +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_CreateOrUpdate.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_CreateOrUpdate.json new file mode 100644 index 000000000000..02279408de64 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_CreateOrUpdate.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "contentType": "application/json", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "sendAllEvents": "false", + "status": "Enabled", + "updateWebhookKey": "true", + "webhookKey": "00000000-0000-0000-0000-000000000000" + } + }, + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/webhooks/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/webhooks/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Webhook_CreateOrUpdate", + "title": "Webhook_CreateOrUpdate" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Delete.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Delete.json new file mode 100644 index 000000000000..681e90bfaf99 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Webhook_Delete", + "title": "Webhook_Delete" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Get.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Get.json new file mode 100644 index 000000000000..8433044df3b6 --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Get.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/webhooks/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Webhook_Get", + "title": "Webhook_Get" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_List.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_List.json new file mode 100644 index 000000000000..5218b564374a --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_List.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "$skipToken": "1", + "$top": "100", + "api-version": "2024-06-27", + "reportName": "testReportName" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/testReportName/webhooks?api-version=2024-06-27&skipToken=1&top=100", + "value": [ + { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/snapshots/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "false" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Webhook_List", + "title": "Webhook_List" +} diff --git a/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Update.json b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Update.json new file mode 100644 index 000000000000..d30eb32aadbe --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/Microsoft.AppComplianceAutomation/stable/2024-06-27/examples/Webhook_Update.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2024-06-27", + "parameters": { + "properties": { + "contentType": "application/json", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "sendAllEvents": "false", + "status": "Enabled", + "updateWebhookKey": "true", + "webhookKey": "00000000-0000-0000-0000-000000000000" + } + }, + "reportName": "testReportName", + "webhookName": "testWebhookName" + }, + "responses": { + "200": { + "body": { + "name": "testWebhookName", + "type": "Microsfot.AppComplianceAutomation/reports/webhooks", + "id": "/provider/Microsfot.AppComplianceAutomation/reports/testReportName/testWebhookName", + "properties": { + "contentType": "application/json", + "deliveryStatus": "Succeeded", + "enableSslVerification": "true", + "events": [ + "generate_snapshot_failed" + ], + "payloadUrl": "https://example.com", + "provisioningState": "Succeeded", + "sendAllEvents": "false", + "status": "Enabled", + "tenantId": "00000000-0000-0000-0000-000000000000", + "webhookId": "00000000-0000-0000-0000-000000000000", + "webhookKeyEnabled": "true" + }, + "systemData": { + "createdAt": "2021-05-14T22:34:55.4499903Z", + "createdBy": "00000000-0000-0000-0000-000000000000", + "createdByType": "User", + "lastModifiedAt": "2021-05-14T22:34:55.4499903Z", + "lastModifiedBy": "00000000-0000-0000-0000-000000000000", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Webhook_Update", + "title": "Webhook_Update" +} diff --git a/specification/appcomplianceautomation/resource-manager/readme.md b/specification/appcomplianceautomation/resource-manager/readme.md index ba57e4c7a43b..c157270c0b4a 100644 --- a/specification/appcomplianceautomation/resource-manager/readme.md +++ b/specification/appcomplianceautomation/resource-manager/readme.md @@ -27,15 +27,23 @@ These are the global settings for the appcomplianceautomation. ``` yaml openapi-type: arm openapi-subtype: rpaas -tag: package-2022-11-16-preview +tag: package-2024-06 ``` +### Tag: package-2024-06 + +These settings apply only when `--tag=package-2024-06` is specified on the command line. + +```yaml $(tag) == 'package-2024-06' +input-file: + - Microsoft.AppComplianceAutomation/stable/2024-06-27/appcomplianceautomation.json +``` ### Tag: package-2022-11-16-preview These settings apply only when `--tag=package-2022-11-16-preview` is specified on the command line. -```yaml $(tag) == 'package-2022-11-16-preview' +``` yaml $(tag) == 'package-2022-11-16-preview' input-file: - Microsoft.AppComplianceAutomation/preview/2022-11-16-preview/appcomplianceautomation.json ``` @@ -55,6 +63,7 @@ swagger-to-sdk: - repo: azure-sdk-for-java - repo: azure-sdk-for-go - repo: azure-sdk-for-js + - repo: azure-sdk-for-net-track2 - repo: azure-resource-manager-schemas - repo: azure-cli-extensions ``` diff --git a/specification/appcomplianceautomation/resource-manager/sdk-suppressions.yaml b/specification/appcomplianceautomation/resource-manager/sdk-suppressions.yaml new file mode 100644 index 000000000000..d8de1c66f0bf --- /dev/null +++ b/specification/appcomplianceautomation/resource-manager/sdk-suppressions.yaml @@ -0,0 +1,35 @@ +suppressions: + azure-sdk-for-go: + - package: sdk/resourcemanager/appcomplianceautomation/armappcomplianceautomation + breaking-changes: + - Enum `AssessmentSeverity` has been removed + - Enum `CategoryType` has been removed + - Enum `ComplianceState` has been removed + - Enum `ControlFamilyType` has been removed + - Enum `ControlType` has been removed + - Enum `IsPass` has been removed + - Field `Assessments`, `ControlShortName`, `ControlType` of struct `Control` has been removed + - Field `CategoryType` of struct `Category` has been removed + - Field `ComplianceState`, `ControlType`, `PolicyDescription`, `PolicyDisplayName`, `PolicyID`, `ResourceGroup`, `StatusChangeDate`, `SubscriptionID` of struct `ComplianceReportItem` has been removed + - Field `FamilyName`, `FamilyStatus`, `FamilyType` of struct `ControlFamily` has been removed + - Field `ID` of struct `SnapshotProperties` has been removed + - Field `ID`, `ReportName` of struct `ReportProperties` has been removed + - Field `ReportResourceList` of struct `ReportsClientListResponse` has been removed + - Field `ResourceName`, `Tags` of struct `ResourceMetadata` has been removed + - Field `SnapshotResourceList` of struct `SnapshotsClientListResponse` has been removed + - Function `*ClientFactory.NewSnapshotClient` has been removed + - Function `*ReportClient.BeginCreateOrUpdate` has been removed + - Function `*ReportClient.BeginDelete` has been removed + - Function `*ReportClient.BeginUpdate` has been removed + - Function `*ReportClient.Get` has been removed + - Function `*SnapshotClient.BeginDownload` has been removed + - Function `*SnapshotClient.Get` has been removed + - Function `NewSnapshotClient` has been removed + - Struct `AssessmentResource` has been removed + - Struct `Assessment` has been removed + - Struct `ReportResourceList` has been removed + - Struct `SnapshotResourceList` has been removed + - Type of `ReportResourcePatch.Properties` has been changed from `*ReportProperties` to `*ReportPatchProperties` + - "`CategoryStatusHealthy`, `CategoryStatusUnhealthy` from enum `CategoryStatus` has been removed" + - "`ControlFamilyStatusHealthy`, `ControlFamilyStatusUnhealthy` from enum `ControlFamilyStatus` has been removed" + - "`ResourceStatusNotApplicable` from enum `ResourceStatus` has been removed" \ No newline at end of file