diff --git a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/createOrUpdateGuestConfigurationAssignment.json b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/createOrUpdateGuestConfigurationAssignment.json index 1f76f63a729b..78106a60a287 100644 --- a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/createOrUpdateGuestConfigurationAssignment.json +++ b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/createOrUpdateGuestConfigurationAssignment.json @@ -6,63 +6,41 @@ "guestConfigurationAssignmentName": "SecureProtocol", "api-version": "2018-06-30-preview", "parameters": { - "location" : "westcentralus", - "name": "SecureProtocol", - "properties" : { - "guestConfiguration" : { - "name" : "SecureProtocol", - "version": "1.0.0.0 or 1.*" - } + "location": "westcentralus", + "name": "multiconfigassignment2", + "properties": { + "context": "Azure policy", + "guestConfiguration": { + "name": "AuditSecureProtocol", + "version": "1.0.0.3" + } } - } + } }, "responses": { "201": { "headers": {}, - "body": { - "location":"westcentralus", - "id":"/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMName/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/SecureProtocol", - "name":"SecureProtocol", - "properties":{ - "complianceStatus": "InProgress", - "complianceReason":null, - "assignmentHash":null, - "guestConfiguration":{ - "kind":null, - "name":"SecureProtocol", - "version":"", - "configurationParameter":[ - - ], - "contentUri":null, - "contentHash":null - }, - "provisioningState":null - } - } - }, - "200": { - "headers": {}, - "body": { - "location":"westcentralus", - "id":"/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMName/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/SecureProtocol", - "name":"SecureProtocol", - "properties":{ - "complianceStatus": "Compliant", - "complianceReason":null, - "assignmentHash":null, - "guestConfiguration":{ - "kind":null, - "name":"SecureProtocol", - "version":"", - "configurationParameter":[ - - ], - "contentUri":null, - "contentHash":null - }, - "provisioningState":null - } + "body": { + "location": "westcentralus", + "id": null, + "name": "multiconfigassignment2", + "properties": { + "complianceStatus": "Pending", + "assignmentHash": null, + "latestReportId": null, + "lastComplianceStatusChecked": null, + "context": "Azure policy A", + "guestConfiguration": { + "kind": null, + "name": "AuditSecureProtocol", + "version": "1.0.0.3", + "contentUri": null, + "contentHash": null, + "configurationParameter": null, + "configurationSetting": null + }, + "provisioningState": "Succeeded" + } } } } diff --git a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignment.json b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignment.json index 8825f3065fff..cff651decfeb 100644 --- a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignment.json +++ b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignment.json @@ -10,23 +10,26 @@ "200": { "headers": {}, "body": { - "location": "westcentralus", - "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMName/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/SecureProtocol", - "name": "SecureProtocol", - "properties": { - "complianceStatus": "Compliant", - "complianceReason": null, - "assignmentHash": null, - "guestConfiguration": { - "kind": null, - "name": "SecureProtocol", - "version": "", - "configurationParameter": [], - "contentUri": null, - "contentHash": null - }, - "provisioningState": null - } + "location": "centraluseuap", + "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol", + "name": "AuditSecureProtocol", + "properties": { + "complianceStatus": "Compliant", + "assignmentHash": "E0D8941DD713F284284561648C00C18FA76C8602943C7CD38AFD73B56AE4C35F.E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", + "latestReportId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol/reports/7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "lastComplianceStatusChecked": "2018-08-29T22:14:13Z", + "context": null, + "guestConfiguration": { + "kind": null, + "name": "AuditSecureProtocol", + "version": "1.0.0.3", + "contentUri": "https://mystorageaccount.blob.core.windows.net/builtinconfig/AuditSecureProtocol/AuditSecureProtocol_1.0.0.3.zip", + "contentHash": "content hash", + "configurationParameter": [], + "configurationSetting": null + }, + "provisioningState": null + } } } } diff --git a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignmentReportById.json b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignmentReportById.json new file mode 100644 index 000000000000..0c3047e78fe8 --- /dev/null +++ b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/getGuestConfigurationAssignmentReportById.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "subscriptionId": "mySubscriptionid", + "resourceGroupName": "myResourceGroupName", + "vmName": "myvm", + "guestConfigurationAssignmentName": "AuditSecureProtocol", + "reportId": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "api-version": "2018-06-30-preview" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/mysubscriptionid/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol/reports/7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "name": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "properties": { + "complianceStatus": "Compliant", + "assignment": { + "name": "AuditSecureProtocol", + "configuration": { + "name": "AuditSecureProtocol" + } + }, + "reportId": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "vm": { + "id": "/subscriptions/mysubscriptionid/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm", + "uuid": "vmuuid" + }, + "details": { + "complianceStatus": "Compliant", + "startTime": "2018-08-29T22:13:53Z", + "endTime": "2018-08-29T22:14:13Z", + "jobId": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "resources": [{ + "complianceStatus": "Compliant", + "reasons": [{ + "phrase": "Operation successful.", + "code": "DSC::RESOURCE::SUCCESS" + }], + "properties": { + "ConfigurationName": "IsWebServerSecure", + "DependsOn": null, + "IsSingleInstance": "Yes", + "ModuleName": "SecureProtocolWebServer", + "ModuleVersion": "1.0.0.3", + "Protocols": [{ + "Ensure": "Absent", + "Protocol": "SSL 2.0" + }, { + "Ensure": "Absent", + "Protocol": "SSL 3.0" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.0" + }, { + "Ensure": "Absent", + "Protocol": "PCT 1.0" + }, { + "Ensure": "Absent", + "Protocol": "Multi-Protocol Unified Hello" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.1" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.2" + }], + "PsDscRunAsCredential": null, + "Reasons": null, + "ResourceId": "[SecureWebServer]s1", + "SourceInfo": null + } + }], + "operationType": "Consistency" + } + } + } + } + } + } \ No newline at end of file diff --git a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listAllGuestConfigurationAssignmentReports.json b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listAllGuestConfigurationAssignmentReports.json new file mode 100644 index 000000000000..4213e34b8cd0 --- /dev/null +++ b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listAllGuestConfigurationAssignmentReports.json @@ -0,0 +1,145 @@ +{ + "parameters": { + "subscriptionId": "mySubscriptionid", + "resourceGroupName": "myResourceGroupName", + "vmName": "myVMName", + "guestConfigurationAssignmentName": "AuditSecureProtocol", + "api-version": "2018-06-30-preview" + }, + "responses": { + "200": { + "headers": {}, + "body":{ + "value": [{ + "id": "/subscriptions/mysubscriptionid/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol/reports/7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "name": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "properties": { + "complianceStatus": "Compliant", + "assignment": { + "name": "AuditSecureProtocol", + "configuration": { + "name": "AuditSecureProtocol" + } + }, + "reportId": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "vm": { + "id": "/subscriptions/mysubscriptionid/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm", + "uuid": "vmuuid" + }, + "details": { + "complianceStatus": "Compliant", + "startTime": "2018-08-29T22:13:53Z", + "endTime": "2018-08-29T22:14:13Z", + "jobId": "7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "resources": [{ + "complianceStatus": "Compliant", + "reasons": [{ + "phrase": "Operation successful.", + "code": "DSC::RESOURCE::SUCCESS" + }], + "properties": { + "ConfigurationName": "IsWebServerSecure", + "DependsOn": null, + "IsSingleInstance": "Yes", + "ModuleName": "SecureProtocolWebServer", + "ModuleVersion": "1.0.0.3", + "Protocols": [{ + "Ensure": "Absent", + "Protocol": "SSL 2.0" + }, { + "Ensure": "Absent", + "Protocol": "SSL 3.0" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.0" + }, { + "Ensure": "Absent", + "Protocol": "PCT 1.0" + }, { + "Ensure": "Absent", + "Protocol": "Multi-Protocol Unified Hello" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.1" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.2" + }], + "PsDscRunAsCredential": null, + "Reasons": null, + "ResourceId": "[SecureWebServer]s1", + "SourceInfo": null + } + }], + "operationType": "Consistency" + } + } + }, { + "id": "/subscriptions/mysubscriptionid/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol/reports/41ee2caf-48f9-4999-a793-82ec7c6beb2c", + "name": "41ee2caf-48f9-4999-a793-82ec7c6beb2c", + "properties": { + "complianceStatus": "Compliant", + "assignment": { + "name": "AuditSecureProtocol", + "configuration": { + "name": "AuditSecureProtocol" + } + }, + "reportId": "41ee2caf-48f9-4999-a793-82ec7c6beb2c", + "vm": { + "id": "/subscriptions/mysubscriptionid/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm", + "uuid": "vmuuid" + }, + "details": { + "complianceStatus": "Compliant", + "startTime": "2018-08-29T21:58:54Z", + "endTime": "2018-08-29T21:59:13Z", + "jobId": "41ee2caf-48f9-4999-a793-82ec7c6beb2c", + "resources": [{ + "complianceStatus": "Compliant", + "reasons": [{ + "phrase": "Operation successful.", + "code": "DSC::RESOURCE::SUCCESS" + }], + "properties": { + "ConfigurationName": "IsWebServerSecure", + "DependsOn": null, + "IsSingleInstance": "Yes", + "ModuleName": "SecureProtocolWebServer", + "ModuleVersion": "1.0.0.3", + "Protocols": [{ + "Ensure": "Absent", + "Protocol": "SSL 2.0" + }, { + "Ensure": "Absent", + "Protocol": "SSL 3.0" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.0" + }, { + "Ensure": "Absent", + "Protocol": "PCT 1.0" + }, { + "Ensure": "Absent", + "Protocol": "Multi-Protocol Unified Hello" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.1" + }, { + "Ensure": "Absent", + "Protocol": "TLS 1.2" + }], + "PsDscRunAsCredential": null, + "Reasons": null, + "ResourceId": "[SecureWebServer]s1", + "SourceInfo": null + } + }], + "operationType": "Consistency" + } + } + }] + } + } + } + } \ No newline at end of file diff --git a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listGuestConfigurationAssignments.json b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listGuestConfigurationAssignments.json index 3856405a65e8..849f6228fa75 100644 --- a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listGuestConfigurationAssignments.json +++ b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/examples/listGuestConfigurationAssignments.json @@ -9,48 +9,50 @@ "200": { "headers": {}, "body": [ - { - "location":"westcentralus", - "id":"/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMName/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/SecureProtocol", - "name":"SecureProtocol", - "properties":{ - "complianceStatus": "InProgress", - "complianceReason":null, - "assignmentHash":null, - "guestConfiguration":{ - "kind":null, - "name":"SecureProtocol", - "version":"", - "configurationParameter":[ - - ], - "contentUri":null, - "contentHash":null - }, - "provisioningState":null + { + "location": "centraluseuap", + "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol2", + "name": "AuditSecureProtocol2", + "properties": { + "complianceStatus": "Compliant", + "assignmentHash": "content hash", + "latestReportId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/AuditSecureProtocol2/reports/7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "lastComplianceStatusChecked": "2018-08-29T22:14:13Z", + "context": null, + "guestConfiguration": { + "kind": null, + "name": "AuditSecureProtocol2", + "version": "1.0.0.3", + "contentUri": "https://mystorageaccount.blob.core.windows.net/builtinconfig/AuditSecureProtocol2/AuditSecureProtocol2_1.0.0.3.zip", + "contentHash": "content hash", + "configurationParameter": [], + "configurationSetting": null + }, + "provisioningState": null } - }, - { - "location":"westcentralus", - "id":"/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMName/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/BlacklistedApplication", - "name":"BlacklistedApplication", - "properties":{ - "complianceStatus": "Compliant", - "complianceReason":null, - "assignmentHash":null, - "guestConfiguration":{ - "kind":null, - "name":"BlacklistedApplication", - "version":"", - "configurationParameter":[ - - ], - "contentUri":null, - "contentHash":null - }, - "provisioningState":null + }, + { + "location": "centraluseuap", + "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/myAssignment", + "name": "myAssignment", + "properties": { + "complianceStatus": "Compliant", + "assignmentHash": "content hash", + "latestReportId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/myAssignment/reports/7367cbb8-ae99-47d0-a33b-a283564d2cb1", + "lastComplianceStatusChecked": "2018-08-29T22:14:13Z", + "context": null, + "guestConfiguration": { + "kind": null, + "name": "myAssignment", + "version": "1.0.0.3", + "contentUri": "https://mystorageaccount.blob.core.windows.net/builtinconfig/myAssignment/myAssignment.0.0.3.zip", + "contentHash": "content hash", + "configurationParameter": [], + "configurationSetting": null + }, + "provisioningState": null } - } + } ] } } diff --git a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/guestconfiguration.json b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/guestconfiguration.json index 288405fa2eb6..22d838777a22 100644 --- a/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/guestconfiguration.json +++ b/specification/guestconfiguration/resource-manager/Microsoft.GuestConfiguration/preview/2018-06-30-preview/guestconfiguration.json @@ -76,12 +76,6 @@ "$ref": "#/definitions/GuestConfigurationAssignment" } }, - "200": { - "description": "OK. The guest configuration assignment for the VM was updated successfully.", - "schema": { - "$ref": "#/definitions/GuestConfigurationAssignment" - } - }, "default": { "description": "Error response describing why the operation failed.", "schema": { @@ -256,6 +250,123 @@ ] } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/{guestConfigurationAssignmentName}/reports": { + "get": { + "tags": [ + "GuestConfigurationAssignmentReports" + ], + "operationId": "GuestConfigurationAssignmentReports_List", + "description": "List all reports for the guest configuration assignment, latest report first.", + "x-ms-examples": { + "List all guest configuration assignments for a virtual machine": { + "$ref": "./examples/listAllGuestConfigurationAssignmentReports.json" + } + }, + "parameters": [ + { + "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "guestConfigurationAssignmentName", + "in": "path", + "required": true, + "type": "string", + "description": "The guest configuration assingment name." + }, + { + "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../common/v1/definitions.json#/parameters/VmNameParameter" + }, + { + "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. This response is due one of these two reasons: 1. Reports were returned successfully 2. Guest configuration assignment was found, but VM is not registered yet, hence no reports returned.", + "schema": { + "$ref": "#/definitions/GuestConfigurationAssignmentReportList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/{guestConfigurationAssignmentName}/reports/{reportId}": { + "get": { + "tags": [ + "GuestConfigurationAssignmentReports" + ], + "operationId": "GuestConfigurationAssignmentReports_Get", + "description": "Get a report for the guest configuration assignment, by reportId.", + "x-ms-examples": { + "Get a guest configuration assignment report by Id for a virtual machine": { + "$ref": "./examples/getGuestConfigurationAssignmentReportById.json" + } + }, + "parameters": [ + { + "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "guestConfigurationAssignmentName", + "in": "path", + "required": true, + "type": "string", + "description": "The guest configuration assignment name." + }, + { + "name": "reportId", + "in": "path", + "required": true, + "type": "string", + "description": "The GUID for the guest configuration assignment report." + }, + { + "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../common/v1/definitions.json#/parameters/VmNameParameter" + }, + { + "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. This response is due one of these two reasons: 1. Report was returned successfully 2. Guest configuration assignment was found, but VM is not registered yet, hence no report was returned.", + "schema": { + "$ref": "#/definitions/GuestConfigurationAssignmentReport" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, "/providers/Microsoft.GuestConfiguration/operations": { "get": { "tags": [ @@ -364,6 +475,10 @@ "configurationParameter": { "$ref": "#/definitions/ConfigurationParameterList", "description": "The configuration parameters for the guest configuration." + }, + "configurationSetting": { + "$ref": "#/definitions/ConfigurationSetting", + "description": "The configuration setting for the guest configuration." } } }, @@ -394,24 +509,81 @@ }, "description": "Represents a configuration parameter." }, - "GuestConfigurationAssignmentProperties": { + "ConfigurationSetting": { "properties": { - "guestConfiguration": { - "$ref": "#/definitions/GuestConfigurationNavigation", - "description": "The guest configuration to assign." + "configurationMode": { + "type": "string", + "readOnly": true, + "description": "Specifies how the LCM(Local Configuration Manager) actually applies the configuration to the target nodes. Possible values are ApplyOnly, ApplyAndMonitor, and ApplyAndAutoCorrect.", + "x-ms-enum": { + "name": "configurationMode", + "modelAsString": true + }, + "enum": [ + "ApplyOnly", + "ApplyAndMonitor", + "ApplyAndAutoCorrect" + ] }, - "provisioningState": { + "allowModuleOverwrite": { + "type": "string", + "description": "If true - new configurations downloaded from the pull service are allowed to overwrite the old ones on the target node. Otherwise, false", + "x-ms-enum": { + "name": "allowModuleOverwrite", + "modelAsString": true + }, + "enum": [ + "True", + "False" + ] + }, + "actionAfterReboot": { + "type": "string", "readOnly": true, + "description": "Specifies what happens after a reboot during the application of a configuration. The possible values are ContinueConfiguration and StopConfiguration", + "x-ms-enum": { + "name": "actionAfterReboot", + "modelAsString": true + }, + "enum": [ + "ContinueConfiguration", + "StopConfiguration" + ] + }, + "refreshFrequencyMins": { + "type": "number", + "readOnly": true, + "default": 30, + "description": "The time interval, in minutes, at which the LCM checks a pull service to get updated configurations. This value is ignored if the LCM is not configured in pull mode. The default value is 30." + }, + "rebootIfNeeded": { "type": "string", - "description": "The provisioning state, which only appears in the response.", - "x-nullable": true, + "readOnly": true, + "default": "False", + "description": "Set this to true to automatically reboot the node after a configuration that requires reboot is applied. Otherwise, you will have to manually reboot the node for any configuration that requires it. The default value is false. To use this setting when a reboot condition is enacted by something other than DSC (such as Windows Installer), combine this setting with the xPendingReboot module.", "x-ms-enum": { - "name": "provisioningState", + "name": "rebootIfNeeded", "modelAsString": true }, "enum": [ - "Succeeded" - ] + "True", + "False" + ] + }, + "configurationModeFrequencyMins": { + "type": "number", + "readOnly": true, + "default": 15, + "description": "How often, in minutes, the current configuration is checked and applied. This property is ignored if the ConfigurationMode property is set to ApplyOnly. The default value is 15." + } + }, + "description": "Configuration setting of LCM (Local Configuration Manager)." + }, + "GuestConfigurationAssignmentProperties": { + "properties": { + "guestConfiguration": { + "$ref": "#/definitions/GuestConfigurationNavigation", + "description": "The guest configuration to assign." }, "complianceStatus": { "type": "string", @@ -423,19 +595,45 @@ }, "enum": [ "Compliant", - "NotCompliant", + "NonCompliant", "Pending" ] }, - "complianceReason": { + "lastComplianceStatusChecked": { "type": "string", "readOnly": true, - "description": "Reason for the complianceStatus for the assigned guest configuration." + "description": "Date and time when last compliance status was checked.", + "x-nullable": true + }, + "latestReportId": { + "type": "string", + "readOnly": true, + "description": "Id of the latest report for the guest configuration assignment. ", + "x-nullable": true + }, + "context": { + "type": "string", + "readOnly": true, + "description": "The source which initiated the guest configuration assignment. Ex: Azure Policy" }, "assignmentHash": { "type": "string", "readOnly": true, - "description": "Combined hash of the configuration package and parameters." + "description": "Combined hash of the configuration package and parameters.", + "x-nullable": true + }, + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "The provisioning state, which only appears in the response.", + "x-nullable": true, + "x-ms-enum": { + "name": "provisioningState", + "modelAsString": true + }, + "enum": [ + "Succeeded" + ] } }, "description": "Guest configuration assignment properties." @@ -450,7 +648,7 @@ "description": "List of reports for the guest configuration. Report contains information such as compliance status, reason and more." } }, - "description": "The response of the list guest configuration assignment report operation." + "description": "List of guest configuration assignment reports." }, "GuestConfigurationAssignmentReport": { "properties": { @@ -459,43 +657,96 @@ "readOnly": true, "description": "ARM resource id of the report for the guest configuration assignment." }, - "reportId": { + "name": { "type": "string", "readOnly": true, - "description": "GUID of the report for the guest configuration assignment." + "description": "GUID that identifies the guest configuration assignment report under a subscription, resource group." }, - "type": { + "properties": { + "$ref": "#/definitions/GuestConfigurationAssignmentReportProperties", + "description": "Properties of the guest configuration report." + } + }, + "description": "Report for the guest configuration assignment. Report contains information such as compliance status, reason, and more." + }, + "GuestConfigurationAssignmentReportProperties": { + "properties": { + "complianceStatus": { "type": "string", "readOnly": true, - "description": "Type of report, Consistency or Initial", + "description": "A value indicating compliance status of the virtual machine for the assigned guest configuration.", "x-ms-enum": { - "name": "type", + "name": "complianceStatus", "modelAsString": true }, "enum": [ - "Consistency", - "Initial" + "Compliant", + "NonCompliant", + "Pending" ] }, - "startTime": { + "reportId": { "type": "string", - "format": "date-time", - "description": "Start time of the report for the guest configuration assignment.", - "x-nullable": true + "readOnly": true, + "description": "GUID that identifies the guest configuration assignment report under a subscription, resource group." }, - "endTime": { + "assignment": { + "$ref": "#/definitions/AssignmentInfo", + "description": "Configuration details of the guest configuration assignment." + }, + "vm": { + "$ref": "#/definitions/VMInfo", + "description": "Information about the VM." + }, + "details": { + "$ref": "#/definitions/AssignmentReportDetails", + "description": "Details of the assignment report." + } + }, + "description": "Report for the guest configuration assignment. Report contains information such as compliance status, reason, and more." + }, + "AssignmentInfo": { + "properties": { + "name": { "type": "string", - "format": "date-time", - "description": "End time of the report for the guest configuration assignment.", - "x-nullable": true + "readOnly": true, + "description": "Name of the guest configuration assignment." }, - "lastModifiedTime": { + "configuration": { + "$ref": "#/definitions/ConfigurationInfo", + "description": "Information about the configuration." + } + }, + "description": "Information about the guest configuration assignment." + }, + "VMInfo": { + "properties": { + "id": { "type": "string", - "format": "date-time", - "description": "Last modified time report for the guest configuration assignment.", - "x-nullable": false + "readOnly": true, + "description": "Azure resource Id of the VM." }, - "status": { + "uuid": { + "type": "string", + "readOnly": true, + "description": "UUID(Universally Unique Identifier) of the VM." + } + }, + "description": "Information about the VM." + }, + "ConfigurationInfo": { + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "Name of the configuration." + } + }, + "description": "Information about the configuration." + }, + "AssignmentReportDetails": { + "properties": { + "complianceStatus": { "type": "string", "readOnly": true, "description": "A value indicating compliance status of the virtual machine for the assigned guest configuration.", @@ -505,45 +756,93 @@ }, "enum": [ "Compliant", - "NotCompliant", + "NonCompliant", "Pending" ] }, - "refreshMode": { + "startTime": { + "type": "string", + "readOnly": true, + "description": "Start date and time of the guest configuration assignment compliance status check." + }, + "endTime": { + "type": "string", + "readOnly": true, + "description": "End date and time of the guest configuration assignment compliance status check." + }, + "jobId": { + "type": "string", + "readOnly": true, + "description": "GUID of the report." + }, + "operationType": { "type": "string", - "description": "Refresh mode of the node report, push or pull.", + "readOnly": true, + "description": "Type of report, Consistency or Initial", "x-ms-enum": { - "name": "refreshMode", + "name": "type", "modelAsString": true }, "enum": [ - "Push", - "Pull", - "Disabled" + "Consistency", + "Initial" ] }, - "rebootRequested": { + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/AssignmentReportResource" + }, + "description": "The list of resources for which guest configuration assignment compliance is checked." + } + }, + "description": "Details of the guest configuration assignment report." + }, + "AssignmentReportResource": { + "properties": { + "complianceStatus": { "type": "string", - "description": "The value indicating whether reboot is requested for the report.", + "readOnly": true, + "description": "A value indicating compliance status of the virtual machine for the assigned guest configuration.", "x-ms-enum": { - "name": "rebootRequested", + "name": "complianceStatus", "modelAsString": true }, "enum": [ - "True", - "False" + "Compliant", + "NonCompliant", + "Pending" ] }, - "reportFormatVersion": { + "reasons": { + "type": "array", + "items": { + "$ref": "#/definitions/AssignmentReportResourceComplianceReason" + }, + "description": "Compliance reason and reason code for a resource." + }, + "properties": { + "type": "object", + "readOnly": true, + "description": "Properties of a guest configuation assignment resource." + } + }, + "description": "The guest configuration assignment resource." + }, + "AssignmentReportResourceComplianceReason": { + "properties": { + "phrase": { "type": "string", - "description": "Report format version of the report for the guest configuration assignment." + "readOnly": true, + "description": "Reason for the compliance of the guest configuration assignment resource." }, - "configurationVersion": { + "code": { "type": "string", - "description": "Configuration version of the report for the guest configuration assignment." + "readOnly": true, + "description": "Code for the compliance of the guest configuration assignment resource." } }, - "description": "Report for the guest configuration. Report contains information such as compliance status, reason and more." + "description": "Reason and code for the compliance of the guest configuration assignment resource." } }, "parameters": {} diff --git a/specification/guestconfiguration/resource-manager/readme.md b/specification/guestconfiguration/resource-manager/readme.md index 968992515990..a8493b144e77 100644 --- a/specification/guestconfiguration/resource-manager/readme.md +++ b/specification/guestconfiguration/resource-manager/readme.md @@ -57,7 +57,6 @@ directive: where: $.paths reason: Microsoft.GuestConfiguration is a proxy resource provider under Microsoft.Compute. However, Operations API for is implmented. So, suppressing the false positive. Please refer PR https://github.com/Azure/azure-rest-api-specs-pr/pull/540 ``` - --- # Code Generation