diff --git a/sdk/security/azure-mgmt-security/CHANGELOG.md b/sdk/security/azure-mgmt-security/CHANGELOG.md
index 148599551cb3..c29740b185d3 100644
--- a/sdk/security/azure-mgmt-security/CHANGELOG.md
+++ b/sdk/security/azure-mgmt-security/CHANGELOG.md
@@ -1,5 +1,29 @@
# Release History
+## 0.6.0 (2020-11-17)
+
+**Features**
+
+ - Model Device has a new parameter sensors
+ - Model Device has a new parameter site
+ - Added operation IotRecommendationsOperations.get1
+ - Added operation IotRecommendationsOperations.list1
+ - Added operation IotAlertsOperations.get1
+ - Added operation IotAlertsOperations.list1
+ - Added operation IotRecommendationTypesOperations.get1
+ - Added operation IotRecommendationTypesOperations.list1
+ - Added operation IotAlertTypesOperations.get1
+ - Added operation IotAlertTypesOperations.list1
+ - Added operation group SqlVulnerabilityAssessmentBaselineRulesOperations
+ - Added operation group SqlVulnerabilityAssessmentScanResultsOperations
+ - Added operation group SqlVulnerabilityAssessmentScansOperations
+
+**Breaking changes**
+
+ - Model Device no longer has parameter site_name
+ - Model Device no longer has parameter sensor_name
+ - Model Device no longer has parameter zone_name
+
## 0.5.0 (2020-10-29)
**Features**
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py
index ae045fa6ea81..de0ae7d443e3 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/_security_center.py
@@ -57,6 +57,9 @@
from .operations import SecureScoreControlDefinitionsOperations
from .operations import SecuritySolutionsOperations
from .operations import ConnectorsOperations
+from .operations import SqlVulnerabilityAssessmentScansOperations
+from .operations import SqlVulnerabilityAssessmentScanResultsOperations
+from .operations import SqlVulnerabilityAssessmentBaselineRulesOperations
from .operations import IotDefenderSettingsOperations
from .operations import IotSensorsOperations
from .operations import DevicesForSubscriptionOperations
@@ -160,6 +163,12 @@ class SecurityCenter(SDKClient):
:vartype security_solutions: azure.mgmt.security.operations.SecuritySolutionsOperations
:ivar connectors: Connectors operations
:vartype connectors: azure.mgmt.security.operations.ConnectorsOperations
+ :ivar sql_vulnerability_assessment_scans: SqlVulnerabilityAssessmentScans operations
+ :vartype sql_vulnerability_assessment_scans: azure.mgmt.security.operations.SqlVulnerabilityAssessmentScansOperations
+ :ivar sql_vulnerability_assessment_scan_results: SqlVulnerabilityAssessmentScanResults operations
+ :vartype sql_vulnerability_assessment_scan_results: azure.mgmt.security.operations.SqlVulnerabilityAssessmentScanResultsOperations
+ :ivar sql_vulnerability_assessment_baseline_rules: SqlVulnerabilityAssessmentBaselineRules operations
+ :vartype sql_vulnerability_assessment_baseline_rules: azure.mgmt.security.operations.SqlVulnerabilityAssessmentBaselineRulesOperations
:ivar iot_defender_settings: IotDefenderSettings operations
:vartype iot_defender_settings: azure.mgmt.security.operations.IotDefenderSettingsOperations
:ivar iot_sensors: IotSensors operations
@@ -282,6 +291,12 @@ def __init__(
self._client, self.config, self._serialize, self._deserialize)
self.connectors = ConnectorsOperations(
self._client, self.config, self._serialize, self._deserialize)
+ self.sql_vulnerability_assessment_scans = SqlVulnerabilityAssessmentScansOperations(
+ self._client, self.config, self._serialize, self._deserialize)
+ self.sql_vulnerability_assessment_scan_results = SqlVulnerabilityAssessmentScanResultsOperations(
+ self._client, self.config, self._serialize, self._deserialize)
+ self.sql_vulnerability_assessment_baseline_rules = SqlVulnerabilityAssessmentBaselineRulesOperations(
+ self._client, self.config, self._serialize, self._deserialize)
self.iot_defender_settings = IotDefenderSettingsOperations(
self._client, self.config, self._serialize, self._deserialize)
self.iot_sensors = IotSensorsOperations(
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py
index fa0e0280c09a..f182e6ae46be 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/__init__.py
@@ -52,6 +52,9 @@
from ._models_py3 import AzureResourceIdentifier
from ._models_py3 import AzureResourceLink
from ._models_py3 import AzureTrackedResourceLocation
+ from ._models_py3 import Baseline
+ from ._models_py3 import BaselineAdjustedResult
+ from ._models_py3 import BenchmarkReference
from ._models_py3 import CefExternalSecuritySolution
from ._models_py3 import CefSolutionProperties
from ._models_py3 import Compliance
@@ -89,11 +92,13 @@
from ._models_py3 import InformationProtectionPolicy
from ._models_py3 import InformationType
from ._models_py3 import IotAlert
+ from ._models_py3 import IotAlertModel
from ._models_py3 import IotAlertType
from ._models_py3 import IotAlertTypeList
from ._models_py3 import IotDefenderSettingsList
from ._models_py3 import IotDefenderSettingsModel
from ._models_py3 import IotRecommendation
+ from ._models_py3 import IotRecommendationModel
from ._models_py3 import IotRecommendationType
from ._models_py3 import IotRecommendationTypeList
from ._models_py3 import IoTSecurityAggregatedAlert
@@ -152,15 +157,28 @@
from ._models_py3 import Protocol1
from ._models_py3 import ProxyServerProperties
from ._models_py3 import PublisherInfo
+ from ._models_py3 import QueryCheck
from ._models_py3 import QueuePurgesNotInAllowedRange
from ._models_py3 import RecommendationConfigurationProperties
from ._models_py3 import RegulatoryComplianceAssessment
from ._models_py3 import RegulatoryComplianceControl
from ._models_py3 import RegulatoryComplianceStandard
+ from ._models_py3 import Remediation
from ._models_py3 import Resource
from ._models_py3 import ResourceDetails
from ._models_py3 import ResourceIdentifier
from ._models_py3 import Rule
+ from ._models_py3 import RuleResults
+ from ._models_py3 import RuleResultsInput
+ from ._models_py3 import RuleResultsProperties
+ from ._models_py3 import RulesResults
+ from ._models_py3 import RulesResultsInput
+ from ._models_py3 import Scan
+ from ._models_py3 import ScanProperties
+ from ._models_py3 import ScanResult
+ from ._models_py3 import ScanResultProperties
+ from ._models_py3 import ScanResults
+ from ._models_py3 import Scans
from ._models_py3 import ScopeElement
from ._models_py3 import SecureScoreControlDefinitionItem
from ._models_py3 import SecureScoreControlDefinitionSource
@@ -180,12 +198,14 @@
from ._models_py3 import SecurityTask
from ._models_py3 import SecurityTaskParameters
from ._models_py3 import SensitivityLabel
+ from ._models_py3 import Sensor
from ._models_py3 import ServerVulnerabilityAssessment
from ._models_py3 import ServerVulnerabilityAssessmentsList
from ._models_py3 import ServerVulnerabilityProperties
from ._models_py3 import ServicePrincipalProperties
from ._models_py3 import Setting
from ._models_py3 import SettingResource
+ from ._models_py3 import Site
from ._models_py3 import SqlServerVulnerabilityProperties
from ._models_py3 import SubAssessmentStatus
from ._models_py3 import SuppressionAlertsScope
@@ -203,6 +223,7 @@
from ._models_py3 import UpdateIotSecuritySolutionData
from ._models_py3 import UserDefinedResourcesProperties
from ._models_py3 import UserRecommendation
+ from ._models_py3 import VaRule
from ._models_py3 import VendorReference
from ._models_py3 import VmRecommendation
from ._models_py3 import WorkspaceSetting
@@ -249,6 +270,9 @@
from ._models import AzureResourceIdentifier
from ._models import AzureResourceLink
from ._models import AzureTrackedResourceLocation
+ from ._models import Baseline
+ from ._models import BaselineAdjustedResult
+ from ._models import BenchmarkReference
from ._models import CefExternalSecuritySolution
from ._models import CefSolutionProperties
from ._models import Compliance
@@ -286,11 +310,13 @@
from ._models import InformationProtectionPolicy
from ._models import InformationType
from ._models import IotAlert
+ from ._models import IotAlertModel
from ._models import IotAlertType
from ._models import IotAlertTypeList
from ._models import IotDefenderSettingsList
from ._models import IotDefenderSettingsModel
from ._models import IotRecommendation
+ from ._models import IotRecommendationModel
from ._models import IotRecommendationType
from ._models import IotRecommendationTypeList
from ._models import IoTSecurityAggregatedAlert
@@ -349,15 +375,28 @@
from ._models import Protocol1
from ._models import ProxyServerProperties
from ._models import PublisherInfo
+ from ._models import QueryCheck
from ._models import QueuePurgesNotInAllowedRange
from ._models import RecommendationConfigurationProperties
from ._models import RegulatoryComplianceAssessment
from ._models import RegulatoryComplianceControl
from ._models import RegulatoryComplianceStandard
+ from ._models import Remediation
from ._models import Resource
from ._models import ResourceDetails
from ._models import ResourceIdentifier
from ._models import Rule
+ from ._models import RuleResults
+ from ._models import RuleResultsInput
+ from ._models import RuleResultsProperties
+ from ._models import RulesResults
+ from ._models import RulesResultsInput
+ from ._models import Scan
+ from ._models import ScanProperties
+ from ._models import ScanResult
+ from ._models import ScanResultProperties
+ from ._models import ScanResults
+ from ._models import Scans
from ._models import ScopeElement
from ._models import SecureScoreControlDefinitionItem
from ._models import SecureScoreControlDefinitionSource
@@ -377,12 +416,14 @@
from ._models import SecurityTask
from ._models import SecurityTaskParameters
from ._models import SensitivityLabel
+ from ._models import Sensor
from ._models import ServerVulnerabilityAssessment
from ._models import ServerVulnerabilityAssessmentsList
from ._models import ServerVulnerabilityProperties
from ._models import ServicePrincipalProperties
from ._models import Setting
from ._models import SettingResource
+ from ._models import Site
from ._models import SqlServerVulnerabilityProperties
from ._models import SubAssessmentStatus
from ._models import SuppressionAlertsScope
@@ -400,6 +441,7 @@
from ._models import UpdateIotSecuritySolutionData
from ._models import UserDefinedResourcesProperties
from ._models import UserRecommendation
+ from ._models import VaRule
from ._models import VendorReference
from ._models import VmRecommendation
from ._models import WorkspaceSetting
@@ -418,7 +460,9 @@
from ._paged_models import DiscoveredSecuritySolutionPaged
from ._paged_models import ExternalSecuritySolutionPaged
from ._paged_models import InformationProtectionPolicyPaged
+from ._paged_models import IotAlertModelPaged
from ._paged_models import IotAlertPaged
+from ._paged_models import IotRecommendationModelPaged
from ._paged_models import IotRecommendationPaged
from ._paged_models import IoTSecurityAggregatedAlertPaged
from ._paged_models import IoTSecurityAggregatedRecommendationPaged
@@ -486,6 +530,11 @@
HybridComputeProvisioningState,
AuthenticationProvisioningState,
PermissionProperty,
+ ScanTriggerType,
+ ScanState,
+ RuleStatus,
+ RuleSeverity,
+ RuleType,
VersionKind,
MacSignificance,
RelationToIpStatus,
@@ -544,6 +593,9 @@
'AzureResourceIdentifier',
'AzureResourceLink',
'AzureTrackedResourceLocation',
+ 'Baseline',
+ 'BaselineAdjustedResult',
+ 'BenchmarkReference',
'CefExternalSecuritySolution',
'CefSolutionProperties',
'Compliance',
@@ -581,11 +633,13 @@
'InformationProtectionPolicy',
'InformationType',
'IotAlert',
+ 'IotAlertModel',
'IotAlertType',
'IotAlertTypeList',
'IotDefenderSettingsList',
'IotDefenderSettingsModel',
'IotRecommendation',
+ 'IotRecommendationModel',
'IotRecommendationType',
'IotRecommendationTypeList',
'IoTSecurityAggregatedAlert',
@@ -644,15 +698,28 @@
'Protocol1',
'ProxyServerProperties',
'PublisherInfo',
+ 'QueryCheck',
'QueuePurgesNotInAllowedRange',
'RecommendationConfigurationProperties',
'RegulatoryComplianceAssessment',
'RegulatoryComplianceControl',
'RegulatoryComplianceStandard',
+ 'Remediation',
'Resource',
'ResourceDetails',
'ResourceIdentifier',
'Rule',
+ 'RuleResults',
+ 'RuleResultsInput',
+ 'RuleResultsProperties',
+ 'RulesResults',
+ 'RulesResultsInput',
+ 'Scan',
+ 'ScanProperties',
+ 'ScanResult',
+ 'ScanResultProperties',
+ 'ScanResults',
+ 'Scans',
'ScopeElement',
'SecureScoreControlDefinitionItem',
'SecureScoreControlDefinitionSource',
@@ -672,12 +739,14 @@
'SecurityTask',
'SecurityTaskParameters',
'SensitivityLabel',
+ 'Sensor',
'ServerVulnerabilityAssessment',
'ServerVulnerabilityAssessmentsList',
'ServerVulnerabilityProperties',
'ServicePrincipalProperties',
'Setting',
'SettingResource',
+ 'Site',
'SqlServerVulnerabilityProperties',
'SubAssessmentStatus',
'SuppressionAlertsScope',
@@ -695,6 +764,7 @@
'UpdateIotSecuritySolutionData',
'UserDefinedResourcesProperties',
'UserRecommendation',
+ 'VaRule',
'VendorReference',
'VmRecommendation',
'WorkspaceSetting',
@@ -705,7 +775,9 @@
'IoTSecurityAggregatedAlertPaged',
'IoTSecurityAggregatedRecommendationPaged',
'IotAlertPaged',
+ 'IotAlertModelPaged',
'IotRecommendationPaged',
+ 'IotRecommendationModelPaged',
'AscLocationPaged',
'OperationPaged',
'SecurityTaskPaged',
@@ -780,6 +852,11 @@
'HybridComputeProvisioningState',
'AuthenticationProvisioningState',
'PermissionProperty',
+ 'ScanTriggerType',
+ 'ScanState',
+ 'RuleStatus',
+ 'RuleSeverity',
+ 'RuleType',
'VersionKind',
'MacSignificance',
'RelationToIpStatus',
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py
index 66bda5c2b521..941c6b8b9bde 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models.py
@@ -1911,8 +1911,8 @@ def __init__(self, **kwargs):
class AwAssumeRoleAuthenticationDetailsProperties(AuthenticationDetailsProperties):
"""AWS cloud account connector based assume role, the role enables delegating
- access to your AWS resources. The role is composed of role arn and external
- id, for more details, refer to Creating
a Role to Delegate Permissions to an IAM User (write only).
@@ -1969,7 +1969,7 @@ def __init__(self, **kwargs):
class AwsCredsAuthenticationDetailsProperties(AuthenticationDetailsProperties):
"""AWS cloud account connector based credentials, the credentials is composed
- of access key id and secret key, for more details, refer to Creating
an IAM User in Your AWS Account (write only).
@@ -2183,6 +2183,75 @@ def __init__(self, **kwargs):
self.location = kwargs.get('location', None)
+class Baseline(Model):
+ """Baseline details.
+
+ :param expected_results: Expected results.
+ :type expected_results: list[list[str]]
+ :param updated_time: Baseline update time (UTC).
+ :type updated_time: datetime
+ """
+
+ _attribute_map = {
+ 'expected_results': {'key': 'expectedResults', 'type': '[[str]]'},
+ 'updated_time': {'key': 'updatedTime', 'type': 'iso-8601'},
+ }
+
+ def __init__(self, **kwargs):
+ super(Baseline, self).__init__(**kwargs)
+ self.expected_results = kwargs.get('expected_results', None)
+ self.updated_time = kwargs.get('updated_time', None)
+
+
+class BaselineAdjustedResult(Model):
+ """The rule result adjusted with baseline.
+
+ :param baseline:
+ :type baseline: ~azure.mgmt.security.models.Baseline
+ :param status: Possible values include: 'NonFinding', 'Finding',
+ 'InternalError'
+ :type status: str or ~azure.mgmt.security.models.RuleStatus
+ :param results_not_in_baseline: Results the are not in baseline.
+ :type results_not_in_baseline: list[list[str]]
+ :param results_only_in_baseline: Results the are in baseline.
+ :type results_only_in_baseline: list[list[str]]
+ """
+
+ _attribute_map = {
+ 'baseline': {'key': 'baseline', 'type': 'Baseline'},
+ 'status': {'key': 'status', 'type': 'str'},
+ 'results_not_in_baseline': {'key': 'resultsNotInBaseline', 'type': '[[str]]'},
+ 'results_only_in_baseline': {'key': 'resultsOnlyInBaseline', 'type': '[[str]]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(BaselineAdjustedResult, self).__init__(**kwargs)
+ self.baseline = kwargs.get('baseline', None)
+ self.status = kwargs.get('status', None)
+ self.results_not_in_baseline = kwargs.get('results_not_in_baseline', None)
+ self.results_only_in_baseline = kwargs.get('results_only_in_baseline', None)
+
+
+class BenchmarkReference(Model):
+ """The benchmark references.
+
+ :param benchmark: The benchmark name.
+ :type benchmark: str
+ :param reference: The benchmark reference.
+ :type reference: str
+ """
+
+ _attribute_map = {
+ 'benchmark': {'key': 'benchmark', 'type': 'str'},
+ 'reference': {'key': 'reference', 'type': 'str'},
+ }
+
+ def __init__(self, **kwargs):
+ super(BenchmarkReference, self).__init__(**kwargs)
+ self.benchmark = kwargs.get('benchmark', None)
+ self.reference = kwargs.get('reference', None)
+
+
class CefExternalSecuritySolution(ExternalSecuritySolution):
"""Represents a security solution which sends CEF logs to an OMS workspace.
@@ -2571,8 +2640,8 @@ class ConnectorSetting(Resource):
:vartype name: str
:ivar type: Resource type
:vartype type: str
- :param hybrid_compute_settings: Settings for hybrid compute management,
- these settings are relevant only Arc autoProvision (Hybrid Compute).
+ :param hybrid_compute_settings: Settings for hybrid compute management.
+ These settings are relevant only for Arc autoProvision (Hybrid Compute).
:type hybrid_compute_settings:
~azure.mgmt.security.models.HybridComputeSettingsProperties
:param authentication_details: Settings for authentication management,
@@ -2969,13 +3038,10 @@ class Device(Resource):
:vartype last_scan_time: datetime
:ivar risk_score: risk score of the device.
:vartype risk_score: int
- :ivar sensor_name: When the device is unmanaged, the sensor that scanned
- this device.
- :vartype sensor_name: str
- :ivar site_name: The sensor site name.
- :vartype site_name: str
- :ivar zone_name: The sensor zone name.
- :vartype zone_name: str
+ :ivar sensors: List of sensors that scanned this device.
+ :vartype sensors: list[~azure.mgmt.security.models.Sensor]
+ :ivar site:
+ :vartype site: ~azure.mgmt.security.models.Site
:ivar device_status: Device status. Possible values include: 'Active',
'Removed'
:vartype device_status: str or ~azure.mgmt.security.models.DeviceStatus
@@ -2999,9 +3065,8 @@ class Device(Resource):
'scanning_functionality': {'readonly': True},
'last_scan_time': {'readonly': True},
'risk_score': {'readonly': True, 'maximum': 100, 'minimum': 0},
- 'sensor_name': {'readonly': True},
- 'site_name': {'readonly': True},
- 'zone_name': {'readonly': True},
+ 'sensors': {'readonly': True},
+ 'site': {'readonly': True},
'device_status': {'readonly': True},
}
@@ -3030,9 +3095,8 @@ class Device(Resource):
'scanning_functionality': {'key': 'properties.scanningFunctionality', 'type': 'str'},
'last_scan_time': {'key': 'properties.lastScanTime', 'type': 'iso-8601'},
'risk_score': {'key': 'properties.riskScore', 'type': 'int'},
- 'sensor_name': {'key': 'properties.sensorName', 'type': 'str'},
- 'site_name': {'key': 'properties.siteName', 'type': 'str'},
- 'zone_name': {'key': 'properties.zoneName', 'type': 'str'},
+ 'sensors': {'key': 'properties.sensors', 'type': '[Sensor]'},
+ 'site': {'key': 'properties.site', 'type': 'Site'},
'device_status': {'key': 'properties.deviceStatus', 'type': 'str'},
}
@@ -3059,9 +3123,8 @@ def __init__(self, **kwargs):
self.scanning_functionality = None
self.last_scan_time = None
self.risk_score = None
- self.sensor_name = None
- self.site_name = None
- self.zone_name = None
+ self.sensors = None
+ self.site = None
self.device_status = None
@@ -3437,8 +3500,8 @@ def __init__(self, **kwargs):
class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties):
"""GCP cloud account connector based service to service credentials, the
- credentials is composed of organization id and json api key (write
- only).
+ credentials are composed of the organization ID and a JSON API key (write
+ only).
Variables are only populated by the server, and will be ignored when
sending a request.
@@ -3455,14 +3518,14 @@ class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties):
~azure.mgmt.security.models.PermissionProperty]
:param authentication_type: Required. Constant filled by server.
:type authentication_type: str
- :param organization_id: Required. The Organization ID of the GCP cloud
+ :param organization_id: Required. The organization ID of the GCP cloud
account
:type organization_id: str
:param type: Required. Type field of the API key (write only)
:type type: str
- :param project_id: Required. Project Id field of the API key (write only)
+ :param project_id: Required. Project ID field of the API key (write only)
:type project_id: str
- :param private_key_id: Required. Private key Id field of the API key
+ :param private_key_id: Required. Private key ID field of the API key
(write only)
:type private_key_id: str
:param private_key: Required. Private key field of the API key (write
@@ -3471,16 +3534,16 @@ class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties):
:param client_email: Required. Client email field of the API key (write
only)
:type client_email: str
- :param client_id: Required. Client Id field of the API key (write only)
+ :param client_id: Required. Client ID field of the API key (write only)
:type client_id: str
- :param auth_uri: Required. Auth Uri field of the API key (write only)
+ :param auth_uri: Required. Auth URI field of the API key (write only)
:type auth_uri: str
- :param token_uri: Required. Token Uri field of the API key (write only)
+ :param token_uri: Required. Token URI field of the API key (write only)
:type token_uri: str
:param auth_provider_x509_cert_url: Required. Auth provider x509
- certificate url field of the API key (write only)
+ certificate URL field of the API key (write only)
:type auth_provider_x509_cert_url: str
- :param client_x509_cert_url: Required. Client x509 certificate url field
+ :param client_x509_cert_url: Required. Client x509 certificate URL field
of the API key (write only)
:type client_x509_cert_url: str
"""
@@ -3702,7 +3765,7 @@ class HybridComputeSettingsProperties(Model):
:param resource_group_name: The name of the resource group where Arc
(Hybrid Compute) connectors are connected.
:type resource_group_name: str
- :param region: The location where the meta data of machines will be stored
+ :param region: The location where the metadata of machines will be stored
:type region: str
:param proxy_server: For a non-Azure machine that is not connected
directly to the internet, specify a proxy server that the non-Azure
@@ -3915,6 +3978,62 @@ def __init__(self, **kwargs):
self.extended_properties = kwargs.get('extended_properties', None)
+class IotAlertModel(Model):
+ """IoT alert.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar system_alert_id: Holds the product canonical identifier of the alert
+ within the scope of a product
+ :vartype system_alert_id: str
+ :ivar compromised_entity: Display name of the main entity being reported
+ on
+ :vartype compromised_entity: str
+ :ivar alert_type: The type name of the alert
+ :vartype alert_type: str
+ :ivar start_time_utc: The impact start time of the alert (the time of the
+ first event or activity included in the alert)
+ :vartype start_time_utc: str
+ :ivar end_time_utc: The impact end time of the alert (the time of the last
+ event or activity included in the alert)
+ :vartype end_time_utc: str
+ :param entities: A list of entities related to the alert
+ :type entities: list[object]
+ :param extended_properties: A bag of fields which extends the alert
+ information
+ :type extended_properties: object
+ """
+
+ _validation = {
+ 'system_alert_id': {'readonly': True},
+ 'compromised_entity': {'readonly': True},
+ 'alert_type': {'readonly': True},
+ 'start_time_utc': {'readonly': True},
+ 'end_time_utc': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'system_alert_id': {'key': 'properties.systemAlertId', 'type': 'str'},
+ 'compromised_entity': {'key': 'properties.compromisedEntity', 'type': 'str'},
+ 'alert_type': {'key': 'properties.alertType', 'type': 'str'},
+ 'start_time_utc': {'key': 'properties.startTimeUtc', 'type': 'str'},
+ 'end_time_utc': {'key': 'properties.endTimeUtc', 'type': 'str'},
+ 'entities': {'key': 'properties.entities', 'type': '[object]'},
+ 'extended_properties': {'key': 'properties.extendedProperties', 'type': 'object'},
+ }
+
+ def __init__(self, **kwargs):
+ super(IotAlertModel, self).__init__(**kwargs)
+ self.system_alert_id = None
+ self.compromised_entity = None
+ self.alert_type = None
+ self.start_time_utc = None
+ self.end_time_utc = None
+ self.entities = kwargs.get('entities', None)
+ self.extended_properties = kwargs.get('extended_properties', None)
+
+
class IotAlertType(Resource):
"""IoT alert type.
@@ -4132,6 +4251,56 @@ def __init__(self, **kwargs):
self.recommendation_additional_data = kwargs.get('recommendation_additional_data', None)
+class IotRecommendationModel(Resource):
+ """IoT recommendation.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :ivar device_id: Identifier of the device being reported on
+ :vartype device_id: str
+ :ivar recommendation_type: The type name of the recommendation
+ :vartype recommendation_type: str
+ :ivar discovered_time_utc: The discovery time of the recommendation
+ :vartype discovered_time_utc: str
+ :param recommendation_additional_data: A bag of fields which extends the
+ recommendation information
+ :type recommendation_additional_data: object
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ 'device_id': {'readonly': True},
+ 'recommendation_type': {'readonly': True},
+ 'discovered_time_utc': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'device_id': {'key': 'properties.deviceId', 'type': 'str'},
+ 'recommendation_type': {'key': 'properties.recommendationType', 'type': 'str'},
+ 'discovered_time_utc': {'key': 'properties.discoveredTimeUtc', 'type': 'str'},
+ 'recommendation_additional_data': {'key': 'properties.recommendationAdditionalData', 'type': 'object'},
+ }
+
+ def __init__(self, **kwargs):
+ super(IotRecommendationModel, self).__init__(**kwargs)
+ self.device_id = None
+ self.recommendation_type = None
+ self.discovered_time_utc = None
+ self.recommendation_additional_data = kwargs.get('recommendation_additional_data', None)
+
+
class IotRecommendationType(Resource):
"""IoT recommendation type.
@@ -6396,6 +6565,30 @@ def __init__(self, **kwargs):
self.version = kwargs.get('version', None)
+class QueryCheck(Model):
+ """The rule query details.
+
+ :param query: The rule query.
+ :type query: str
+ :param expected_result: Expected result.
+ :type expected_result: list[list[str]]
+ :param column_names: Column names of expected result.
+ :type column_names: list[str]
+ """
+
+ _attribute_map = {
+ 'query': {'key': 'query', 'type': 'str'},
+ 'expected_result': {'key': 'expectedResult', 'type': '[[str]]'},
+ 'column_names': {'key': 'columnNames', 'type': '[str]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(QueryCheck, self).__init__(**kwargs)
+ self.query = kwargs.get('query', None)
+ self.expected_result = kwargs.get('expected_result', None)
+ self.column_names = kwargs.get('column_names', None)
+
+
class QueuePurgesNotInAllowedRange(TimeWindowCustomAlertRule):
"""Number of device queue purges is not in allowed range.
@@ -6688,6 +6881,34 @@ def __init__(self, **kwargs):
self.unsupported_controls = None
+class Remediation(Model):
+ """Remediation details.
+
+ :param description: Remediation description.
+ :type description: str
+ :param scripts: Remediation script.
+ :type scripts: list[str]
+ :param automated: Is remediation automated.
+ :type automated: bool
+ :param portal_link: Optional link to remediate in Azure Portal.
+ :type portal_link: str
+ """
+
+ _attribute_map = {
+ 'description': {'key': 'description', 'type': 'str'},
+ 'scripts': {'key': 'scripts', 'type': '[str]'},
+ 'automated': {'key': 'automated', 'type': 'bool'},
+ 'portal_link': {'key': 'portalLink', 'type': 'str'},
+ }
+
+ def __init__(self, **kwargs):
+ super(Remediation, self).__init__(**kwargs)
+ self.description = kwargs.get('description', None)
+ self.scripts = kwargs.get('scripts', None)
+ self.automated = kwargs.get('automated', None)
+ self.portal_link = kwargs.get('portal_link', None)
+
+
class Rule(Model):
"""Describes remote addresses that is recommended to communicate with the
Azure resource on some (Protocol, Port, Direction). All other remote
@@ -6726,6 +6947,330 @@ def __init__(self, **kwargs):
self.ip_addresses = kwargs.get('ip_addresses', None)
+class RuleResults(Resource):
+ """Rule results.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :param properties:
+ :type properties: ~azure.mgmt.security.models.RuleResultsProperties
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'properties': {'key': 'properties', 'type': 'RuleResultsProperties'},
+ }
+
+ def __init__(self, **kwargs):
+ super(RuleResults, self).__init__(**kwargs)
+ self.properties = kwargs.get('properties', None)
+
+
+class RuleResultsInput(Model):
+ """Rule results input.
+
+ :param latest_scan: Take results from latest scan.
+ :type latest_scan: bool
+ :param results: Expected results to be inserted into the baseline.
+ Leave this field empty it LatestScan == true.
+ :type results: list[list[str]]
+ """
+
+ _attribute_map = {
+ 'latest_scan': {'key': 'latestScan', 'type': 'bool'},
+ 'results': {'key': 'results', 'type': '[[str]]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(RuleResultsInput, self).__init__(**kwargs)
+ self.latest_scan = kwargs.get('latest_scan', None)
+ self.results = kwargs.get('results', None)
+
+
+class RuleResultsProperties(Model):
+ """Rule results properties.
+
+ :param results: Expected results in the baseline.
+ :type results: list[list[str]]
+ """
+
+ _attribute_map = {
+ 'results': {'key': 'results', 'type': '[[str]]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(RuleResultsProperties, self).__init__(**kwargs)
+ self.results = kwargs.get('results', None)
+
+
+class RulesResults(Model):
+ """A list of rules results.
+
+ :param value: List of rule results.
+ :type value: list[~azure.mgmt.security.models.RuleResults]
+ """
+
+ _attribute_map = {
+ 'value': {'key': 'value', 'type': '[RuleResults]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(RulesResults, self).__init__(**kwargs)
+ self.value = kwargs.get('value', None)
+
+
+class RulesResultsInput(Model):
+ """Rules results input.
+
+ :param latest_scan: Take results from latest scan.
+ :type latest_scan: bool
+ :param results: Expected results to be inserted into the baseline.
+ Leave this field empty it LatestScan == true.
+ :type results: dict[str, list[list[str]]]
+ """
+
+ _attribute_map = {
+ 'latest_scan': {'key': 'latestScan', 'type': 'bool'},
+ 'results': {'key': 'results', 'type': '{[[str]]}'},
+ }
+
+ def __init__(self, **kwargs):
+ super(RulesResultsInput, self).__init__(**kwargs)
+ self.latest_scan = kwargs.get('latest_scan', None)
+ self.results = kwargs.get('results', None)
+
+
+class Scan(Resource):
+ """A vulnerability assessment scan record.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :param properties:
+ :type properties: ~azure.mgmt.security.models.ScanProperties
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'properties': {'key': 'properties', 'type': 'ScanProperties'},
+ }
+
+ def __init__(self, **kwargs):
+ super(Scan, self).__init__(**kwargs)
+ self.properties = kwargs.get('properties', None)
+
+
+class ScanProperties(Model):
+ """A vulnerability assessment scan record properties.
+
+ :param trigger_type: Possible values include: 'OnDemand', 'Recurring'
+ :type trigger_type: str or ~azure.mgmt.security.models.ScanTriggerType
+ :param state: Possible values include: 'Failed', 'FailedToRun',
+ 'InProgress', 'Passed'
+ :type state: str or ~azure.mgmt.security.models.ScanState
+ :param server: The server name.
+ :type server: str
+ :param database: The database name.
+ :type database: str
+ :param sql_version: The SQL version.
+ :type sql_version: str
+ :param start_time: The scan start time (UTC).
+ :type start_time: datetime
+ :param end_time: Scan results are valid until end time (UTC).
+ :type end_time: datetime
+ :param high_severity_failed_rules_count: The number of failed rules with
+ high severity.
+ :type high_severity_failed_rules_count: int
+ :param medium_severity_failed_rules_count: The number of failed rules with
+ medium severity.
+ :type medium_severity_failed_rules_count: int
+ :param low_severity_failed_rules_count: The number of failed rules with
+ low severity.
+ :type low_severity_failed_rules_count: int
+ :param total_passed_rules_count: The number of total passed rules.
+ :type total_passed_rules_count: int
+ :param total_failed_rules_count: The number of total failed rules.
+ :type total_failed_rules_count: int
+ :param total_rules_count: The number of total rules assessed.
+ :type total_rules_count: int
+ :param is_baseline_applied: Baseline created for this database, and has
+ one or more rules.
+ :type is_baseline_applied: bool
+ """
+
+ _attribute_map = {
+ 'trigger_type': {'key': 'triggerType', 'type': 'str'},
+ 'state': {'key': 'state', 'type': 'str'},
+ 'server': {'key': 'server', 'type': 'str'},
+ 'database': {'key': 'database', 'type': 'str'},
+ 'sql_version': {'key': 'sqlVersion', 'type': 'str'},
+ 'start_time': {'key': 'startTime', 'type': 'iso-8601'},
+ 'end_time': {'key': 'endTime', 'type': 'iso-8601'},
+ 'high_severity_failed_rules_count': {'key': 'highSeverityFailedRulesCount', 'type': 'int'},
+ 'medium_severity_failed_rules_count': {'key': 'mediumSeverityFailedRulesCount', 'type': 'int'},
+ 'low_severity_failed_rules_count': {'key': 'lowSeverityFailedRulesCount', 'type': 'int'},
+ 'total_passed_rules_count': {'key': 'totalPassedRulesCount', 'type': 'int'},
+ 'total_failed_rules_count': {'key': 'totalFailedRulesCount', 'type': 'int'},
+ 'total_rules_count': {'key': 'totalRulesCount', 'type': 'int'},
+ 'is_baseline_applied': {'key': 'isBaselineApplied', 'type': 'bool'},
+ }
+
+ def __init__(self, **kwargs):
+ super(ScanProperties, self).__init__(**kwargs)
+ self.trigger_type = kwargs.get('trigger_type', None)
+ self.state = kwargs.get('state', None)
+ self.server = kwargs.get('server', None)
+ self.database = kwargs.get('database', None)
+ self.sql_version = kwargs.get('sql_version', None)
+ self.start_time = kwargs.get('start_time', None)
+ self.end_time = kwargs.get('end_time', None)
+ self.high_severity_failed_rules_count = kwargs.get('high_severity_failed_rules_count', None)
+ self.medium_severity_failed_rules_count = kwargs.get('medium_severity_failed_rules_count', None)
+ self.low_severity_failed_rules_count = kwargs.get('low_severity_failed_rules_count', None)
+ self.total_passed_rules_count = kwargs.get('total_passed_rules_count', None)
+ self.total_failed_rules_count = kwargs.get('total_failed_rules_count', None)
+ self.total_rules_count = kwargs.get('total_rules_count', None)
+ self.is_baseline_applied = kwargs.get('is_baseline_applied', None)
+
+
+class ScanResult(Resource):
+ """A vulnerability assessment scan result for a single rule.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :param properties:
+ :type properties: ~azure.mgmt.security.models.ScanResultProperties
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'properties': {'key': 'properties', 'type': 'ScanResultProperties'},
+ }
+
+ def __init__(self, **kwargs):
+ super(ScanResult, self).__init__(**kwargs)
+ self.properties = kwargs.get('properties', None)
+
+
+class ScanResultProperties(Model):
+ """A vulnerability assessment scan result properties for a single rule.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param status: Possible values include: 'NonFinding', 'Finding',
+ 'InternalError'
+ :type status: str or ~azure.mgmt.security.models.RuleStatus
+ :param is_trimmed: Indicated whether the results specified here are
+ trimmed.
+ :type is_trimmed: bool
+ :param query_results: The results of the query that was run.
+ :type query_results: list[list[str]]
+ :param remediation:
+ :type remediation: ~azure.mgmt.security.models.Remediation
+ :param baseline_adjusted_result:
+ :type baseline_adjusted_result:
+ ~azure.mgmt.security.models.BaselineAdjustedResult
+ :param rule_metadata:
+ :type rule_metadata: ~azure.mgmt.security.models.VaRule
+ """
+
+ _attribute_map = {
+ 'rule_id': {'key': 'ruleId', 'type': 'str'},
+ 'status': {'key': 'status', 'type': 'str'},
+ 'is_trimmed': {'key': 'isTrimmed', 'type': 'bool'},
+ 'query_results': {'key': 'queryResults', 'type': '[[str]]'},
+ 'remediation': {'key': 'remediation', 'type': 'Remediation'},
+ 'baseline_adjusted_result': {'key': 'baselineAdjustedResult', 'type': 'BaselineAdjustedResult'},
+ 'rule_metadata': {'key': 'ruleMetadata', 'type': 'VaRule'},
+ }
+
+ def __init__(self, **kwargs):
+ super(ScanResultProperties, self).__init__(**kwargs)
+ self.rule_id = kwargs.get('rule_id', None)
+ self.status = kwargs.get('status', None)
+ self.is_trimmed = kwargs.get('is_trimmed', None)
+ self.query_results = kwargs.get('query_results', None)
+ self.remediation = kwargs.get('remediation', None)
+ self.baseline_adjusted_result = kwargs.get('baseline_adjusted_result', None)
+ self.rule_metadata = kwargs.get('rule_metadata', None)
+
+
+class ScanResults(Model):
+ """A list of vulnerability assessment scan results.
+
+ :param value: List of vulnerability assessment scan results.
+ :type value: list[~azure.mgmt.security.models.ScanResult]
+ """
+
+ _attribute_map = {
+ 'value': {'key': 'value', 'type': '[ScanResult]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(ScanResults, self).__init__(**kwargs)
+ self.value = kwargs.get('value', None)
+
+
+class Scans(Model):
+ """A list of vulnerability assessment scan records.
+
+ :param value: List of vulnerability assessment scan records.
+ :type value: list[~azure.mgmt.security.models.Scan]
+ """
+
+ _attribute_map = {
+ 'value': {'key': 'value', 'type': '[Scan]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(Scans, self).__init__(**kwargs)
+ self.value = kwargs.get('value', None)
+
+
class ScopeElement(Model):
"""A more specific scope used to identify the alerts to suppress.
@@ -7708,6 +8253,34 @@ def __init__(self, **kwargs):
self.enabled = kwargs.get('enabled', None)
+class Sensor(Model):
+ """Sensor data.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar name: Sensor name
+ :vartype name: str
+ :ivar zone: Zone Name.
+ :vartype zone: str
+ """
+
+ _validation = {
+ 'name': {'readonly': True},
+ 'zone': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'name': {'key': 'name', 'type': 'str'},
+ 'zone': {'key': 'zone', 'type': 'str'},
+ }
+
+ def __init__(self, **kwargs):
+ super(Sensor, self).__init__(**kwargs)
+ self.name = None
+ self.zone = None
+
+
class ServerVulnerabilityAssessment(Resource):
"""Describes the server vulnerability assessment details on a resource.
@@ -7827,7 +8400,7 @@ def __init__(self, **kwargs):
class ServicePrincipalProperties(Model):
"""Details of the service principal.
- :param application_id: Application id of service principal.
+ :param application_id: Application ID of service principal.
:type application_id: str
:param secret: A secret string that the application uses to prove its
identity, also can be referred to as application password (write only).
@@ -7845,6 +8418,29 @@ def __init__(self, **kwargs):
self.secret = kwargs.get('secret', None)
+class Site(Model):
+ """Site data.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar display_name: Site display name
+ :vartype display_name: str
+ """
+
+ _validation = {
+ 'display_name': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'display_name': {'key': 'displayName', 'type': 'str'},
+ }
+
+ def __init__(self, **kwargs):
+ super(Site, self).__init__(**kwargs)
+ self.display_name = None
+
+
class SqlServerVulnerabilityProperties(AdditionalData):
"""Details of the resource that was assessed.
@@ -8316,6 +8912,57 @@ def __init__(self, **kwargs):
self.recommendation_action = kwargs.get('recommendation_action', None)
+class VaRule(Model):
+ """vulnerability assessment rule metadata details.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param severity: Possible values include: 'High', 'Medium', 'Low',
+ 'Informational', 'Obsolete'
+ :type severity: str or ~azure.mgmt.security.models.RuleSeverity
+ :param category: The rule category.
+ :type category: str
+ :param rule_type: Possible values include: 'Binary', 'BaselineExpected',
+ 'PositiveList', 'NegativeList'
+ :type rule_type: str or ~azure.mgmt.security.models.RuleType
+ :param title: The rule title.
+ :type title: str
+ :param description: The rule description.
+ :type description: str
+ :param rationale: The rule rationale.
+ :type rationale: str
+ :param query_check:
+ :type query_check: ~azure.mgmt.security.models.QueryCheck
+ :param benchmark_references: The benchmark references.
+ :type benchmark_references:
+ list[~azure.mgmt.security.models.BenchmarkReference]
+ """
+
+ _attribute_map = {
+ 'rule_id': {'key': 'ruleId', 'type': 'str'},
+ 'severity': {'key': 'severity', 'type': 'str'},
+ 'category': {'key': 'category', 'type': 'str'},
+ 'rule_type': {'key': 'ruleType', 'type': 'str'},
+ 'title': {'key': 'title', 'type': 'str'},
+ 'description': {'key': 'description', 'type': 'str'},
+ 'rationale': {'key': 'rationale', 'type': 'str'},
+ 'query_check': {'key': 'queryCheck', 'type': 'QueryCheck'},
+ 'benchmark_references': {'key': 'benchmarkReferences', 'type': '[BenchmarkReference]'},
+ }
+
+ def __init__(self, **kwargs):
+ super(VaRule, self).__init__(**kwargs)
+ self.rule_id = kwargs.get('rule_id', None)
+ self.severity = kwargs.get('severity', None)
+ self.category = kwargs.get('category', None)
+ self.rule_type = kwargs.get('rule_type', None)
+ self.title = kwargs.get('title', None)
+ self.description = kwargs.get('description', None)
+ self.rationale = kwargs.get('rationale', None)
+ self.query_check = kwargs.get('query_check', None)
+ self.benchmark_references = kwargs.get('benchmark_references', None)
+
+
class VendorReference(Model):
"""Vendor reference.
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py
index 75e17c9195ef..13585f8f3453 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_models_py3.py
@@ -1911,8 +1911,8 @@ def __init__(self, *, auto_provision, **kwargs) -> None:
class AwAssumeRoleAuthenticationDetailsProperties(AuthenticationDetailsProperties):
"""AWS cloud account connector based assume role, the role enables delegating
- access to your AWS resources. The role is composed of role arn and external
- id, for more details, refer to Creating
a Role to Delegate Permissions to an IAM User (write only).
@@ -1969,7 +1969,7 @@ def __init__(self, *, aws_assume_role_arn: str, aws_external_id: str, **kwargs)
class AwsCredsAuthenticationDetailsProperties(AuthenticationDetailsProperties):
"""AWS cloud account connector based credentials, the credentials is composed
- of access key id and secret key, for more details, refer to Creating
an IAM User in Your AWS Account (write only).
@@ -2183,6 +2183,75 @@ def __init__(self, *, location: str=None, **kwargs) -> None:
self.location = location
+class Baseline(Model):
+ """Baseline details.
+
+ :param expected_results: Expected results.
+ :type expected_results: list[list[str]]
+ :param updated_time: Baseline update time (UTC).
+ :type updated_time: datetime
+ """
+
+ _attribute_map = {
+ 'expected_results': {'key': 'expectedResults', 'type': '[[str]]'},
+ 'updated_time': {'key': 'updatedTime', 'type': 'iso-8601'},
+ }
+
+ def __init__(self, *, expected_results=None, updated_time=None, **kwargs) -> None:
+ super(Baseline, self).__init__(**kwargs)
+ self.expected_results = expected_results
+ self.updated_time = updated_time
+
+
+class BaselineAdjustedResult(Model):
+ """The rule result adjusted with baseline.
+
+ :param baseline:
+ :type baseline: ~azure.mgmt.security.models.Baseline
+ :param status: Possible values include: 'NonFinding', 'Finding',
+ 'InternalError'
+ :type status: str or ~azure.mgmt.security.models.RuleStatus
+ :param results_not_in_baseline: Results the are not in baseline.
+ :type results_not_in_baseline: list[list[str]]
+ :param results_only_in_baseline: Results the are in baseline.
+ :type results_only_in_baseline: list[list[str]]
+ """
+
+ _attribute_map = {
+ 'baseline': {'key': 'baseline', 'type': 'Baseline'},
+ 'status': {'key': 'status', 'type': 'str'},
+ 'results_not_in_baseline': {'key': 'resultsNotInBaseline', 'type': '[[str]]'},
+ 'results_only_in_baseline': {'key': 'resultsOnlyInBaseline', 'type': '[[str]]'},
+ }
+
+ def __init__(self, *, baseline=None, status=None, results_not_in_baseline=None, results_only_in_baseline=None, **kwargs) -> None:
+ super(BaselineAdjustedResult, self).__init__(**kwargs)
+ self.baseline = baseline
+ self.status = status
+ self.results_not_in_baseline = results_not_in_baseline
+ self.results_only_in_baseline = results_only_in_baseline
+
+
+class BenchmarkReference(Model):
+ """The benchmark references.
+
+ :param benchmark: The benchmark name.
+ :type benchmark: str
+ :param reference: The benchmark reference.
+ :type reference: str
+ """
+
+ _attribute_map = {
+ 'benchmark': {'key': 'benchmark', 'type': 'str'},
+ 'reference': {'key': 'reference', 'type': 'str'},
+ }
+
+ def __init__(self, *, benchmark: str=None, reference: str=None, **kwargs) -> None:
+ super(BenchmarkReference, self).__init__(**kwargs)
+ self.benchmark = benchmark
+ self.reference = reference
+
+
class CefExternalSecuritySolution(ExternalSecuritySolution):
"""Represents a security solution which sends CEF logs to an OMS workspace.
@@ -2571,8 +2640,8 @@ class ConnectorSetting(Resource):
:vartype name: str
:ivar type: Resource type
:vartype type: str
- :param hybrid_compute_settings: Settings for hybrid compute management,
- these settings are relevant only Arc autoProvision (Hybrid Compute).
+ :param hybrid_compute_settings: Settings for hybrid compute management.
+ These settings are relevant only for Arc autoProvision (Hybrid Compute).
:type hybrid_compute_settings:
~azure.mgmt.security.models.HybridComputeSettingsProperties
:param authentication_details: Settings for authentication management,
@@ -2969,13 +3038,10 @@ class Device(Resource):
:vartype last_scan_time: datetime
:ivar risk_score: risk score of the device.
:vartype risk_score: int
- :ivar sensor_name: When the device is unmanaged, the sensor that scanned
- this device.
- :vartype sensor_name: str
- :ivar site_name: The sensor site name.
- :vartype site_name: str
- :ivar zone_name: The sensor zone name.
- :vartype zone_name: str
+ :ivar sensors: List of sensors that scanned this device.
+ :vartype sensors: list[~azure.mgmt.security.models.Sensor]
+ :ivar site:
+ :vartype site: ~azure.mgmt.security.models.Site
:ivar device_status: Device status. Possible values include: 'Active',
'Removed'
:vartype device_status: str or ~azure.mgmt.security.models.DeviceStatus
@@ -2999,9 +3065,8 @@ class Device(Resource):
'scanning_functionality': {'readonly': True},
'last_scan_time': {'readonly': True},
'risk_score': {'readonly': True, 'maximum': 100, 'minimum': 0},
- 'sensor_name': {'readonly': True},
- 'site_name': {'readonly': True},
- 'zone_name': {'readonly': True},
+ 'sensors': {'readonly': True},
+ 'site': {'readonly': True},
'device_status': {'readonly': True},
}
@@ -3030,9 +3095,8 @@ class Device(Resource):
'scanning_functionality': {'key': 'properties.scanningFunctionality', 'type': 'str'},
'last_scan_time': {'key': 'properties.lastScanTime', 'type': 'iso-8601'},
'risk_score': {'key': 'properties.riskScore', 'type': 'int'},
- 'sensor_name': {'key': 'properties.sensorName', 'type': 'str'},
- 'site_name': {'key': 'properties.siteName', 'type': 'str'},
- 'zone_name': {'key': 'properties.zoneName', 'type': 'str'},
+ 'sensors': {'key': 'properties.sensors', 'type': '[Sensor]'},
+ 'site': {'key': 'properties.site', 'type': 'Site'},
'device_status': {'key': 'properties.deviceStatus', 'type': 'str'},
}
@@ -3059,9 +3123,8 @@ def __init__(self, *, display_name: str=None, device_type: str=None, os_name: st
self.scanning_functionality = None
self.last_scan_time = None
self.risk_score = None
- self.sensor_name = None
- self.site_name = None
- self.zone_name = None
+ self.sensors = None
+ self.site = None
self.device_status = None
@@ -3437,8 +3500,8 @@ def __init__(self, **kwargs) -> None:
class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties):
"""GCP cloud account connector based service to service credentials, the
- credentials is composed of organization id and json api key (write
- only).
+ credentials are composed of the organization ID and a JSON API key (write
+ only).
Variables are only populated by the server, and will be ignored when
sending a request.
@@ -3455,14 +3518,14 @@ class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties):
~azure.mgmt.security.models.PermissionProperty]
:param authentication_type: Required. Constant filled by server.
:type authentication_type: str
- :param organization_id: Required. The Organization ID of the GCP cloud
+ :param organization_id: Required. The organization ID of the GCP cloud
account
:type organization_id: str
:param type: Required. Type field of the API key (write only)
:type type: str
- :param project_id: Required. Project Id field of the API key (write only)
+ :param project_id: Required. Project ID field of the API key (write only)
:type project_id: str
- :param private_key_id: Required. Private key Id field of the API key
+ :param private_key_id: Required. Private key ID field of the API key
(write only)
:type private_key_id: str
:param private_key: Required. Private key field of the API key (write
@@ -3471,16 +3534,16 @@ class GcpCredentialsDetailsProperties(AuthenticationDetailsProperties):
:param client_email: Required. Client email field of the API key (write
only)
:type client_email: str
- :param client_id: Required. Client Id field of the API key (write only)
+ :param client_id: Required. Client ID field of the API key (write only)
:type client_id: str
- :param auth_uri: Required. Auth Uri field of the API key (write only)
+ :param auth_uri: Required. Auth URI field of the API key (write only)
:type auth_uri: str
- :param token_uri: Required. Token Uri field of the API key (write only)
+ :param token_uri: Required. Token URI field of the API key (write only)
:type token_uri: str
:param auth_provider_x509_cert_url: Required. Auth provider x509
- certificate url field of the API key (write only)
+ certificate URL field of the API key (write only)
:type auth_provider_x509_cert_url: str
- :param client_x509_cert_url: Required. Client x509 certificate url field
+ :param client_x509_cert_url: Required. Client x509 certificate URL field
of the API key (write only)
:type client_x509_cert_url: str
"""
@@ -3702,7 +3765,7 @@ class HybridComputeSettingsProperties(Model):
:param resource_group_name: The name of the resource group where Arc
(Hybrid Compute) connectors are connected.
:type resource_group_name: str
- :param region: The location where the meta data of machines will be stored
+ :param region: The location where the metadata of machines will be stored
:type region: str
:param proxy_server: For a non-Azure machine that is not connected
directly to the internet, specify a proxy server that the non-Azure
@@ -3915,6 +3978,62 @@ def __init__(self, *, entities=None, extended_properties=None, **kwargs) -> None
self.extended_properties = extended_properties
+class IotAlertModel(Model):
+ """IoT alert.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar system_alert_id: Holds the product canonical identifier of the alert
+ within the scope of a product
+ :vartype system_alert_id: str
+ :ivar compromised_entity: Display name of the main entity being reported
+ on
+ :vartype compromised_entity: str
+ :ivar alert_type: The type name of the alert
+ :vartype alert_type: str
+ :ivar start_time_utc: The impact start time of the alert (the time of the
+ first event or activity included in the alert)
+ :vartype start_time_utc: str
+ :ivar end_time_utc: The impact end time of the alert (the time of the last
+ event or activity included in the alert)
+ :vartype end_time_utc: str
+ :param entities: A list of entities related to the alert
+ :type entities: list[object]
+ :param extended_properties: A bag of fields which extends the alert
+ information
+ :type extended_properties: object
+ """
+
+ _validation = {
+ 'system_alert_id': {'readonly': True},
+ 'compromised_entity': {'readonly': True},
+ 'alert_type': {'readonly': True},
+ 'start_time_utc': {'readonly': True},
+ 'end_time_utc': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'system_alert_id': {'key': 'properties.systemAlertId', 'type': 'str'},
+ 'compromised_entity': {'key': 'properties.compromisedEntity', 'type': 'str'},
+ 'alert_type': {'key': 'properties.alertType', 'type': 'str'},
+ 'start_time_utc': {'key': 'properties.startTimeUtc', 'type': 'str'},
+ 'end_time_utc': {'key': 'properties.endTimeUtc', 'type': 'str'},
+ 'entities': {'key': 'properties.entities', 'type': '[object]'},
+ 'extended_properties': {'key': 'properties.extendedProperties', 'type': 'object'},
+ }
+
+ def __init__(self, *, entities=None, extended_properties=None, **kwargs) -> None:
+ super(IotAlertModel, self).__init__(**kwargs)
+ self.system_alert_id = None
+ self.compromised_entity = None
+ self.alert_type = None
+ self.start_time_utc = None
+ self.end_time_utc = None
+ self.entities = entities
+ self.extended_properties = extended_properties
+
+
class IotAlertType(Resource):
"""IoT alert type.
@@ -4132,6 +4251,56 @@ def __init__(self, *, recommendation_additional_data=None, **kwargs) -> None:
self.recommendation_additional_data = recommendation_additional_data
+class IotRecommendationModel(Resource):
+ """IoT recommendation.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :ivar device_id: Identifier of the device being reported on
+ :vartype device_id: str
+ :ivar recommendation_type: The type name of the recommendation
+ :vartype recommendation_type: str
+ :ivar discovered_time_utc: The discovery time of the recommendation
+ :vartype discovered_time_utc: str
+ :param recommendation_additional_data: A bag of fields which extends the
+ recommendation information
+ :type recommendation_additional_data: object
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ 'device_id': {'readonly': True},
+ 'recommendation_type': {'readonly': True},
+ 'discovered_time_utc': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'device_id': {'key': 'properties.deviceId', 'type': 'str'},
+ 'recommendation_type': {'key': 'properties.recommendationType', 'type': 'str'},
+ 'discovered_time_utc': {'key': 'properties.discoveredTimeUtc', 'type': 'str'},
+ 'recommendation_additional_data': {'key': 'properties.recommendationAdditionalData', 'type': 'object'},
+ }
+
+ def __init__(self, *, recommendation_additional_data=None, **kwargs) -> None:
+ super(IotRecommendationModel, self).__init__(**kwargs)
+ self.device_id = None
+ self.recommendation_type = None
+ self.discovered_time_utc = None
+ self.recommendation_additional_data = recommendation_additional_data
+
+
class IotRecommendationType(Resource):
"""IoT recommendation type.
@@ -6396,6 +6565,30 @@ def __init__(self, *, publisher_name: str=None, product_name: str=None, binary_n
self.version = version
+class QueryCheck(Model):
+ """The rule query details.
+
+ :param query: The rule query.
+ :type query: str
+ :param expected_result: Expected result.
+ :type expected_result: list[list[str]]
+ :param column_names: Column names of expected result.
+ :type column_names: list[str]
+ """
+
+ _attribute_map = {
+ 'query': {'key': 'query', 'type': 'str'},
+ 'expected_result': {'key': 'expectedResult', 'type': '[[str]]'},
+ 'column_names': {'key': 'columnNames', 'type': '[str]'},
+ }
+
+ def __init__(self, *, query: str=None, expected_result=None, column_names=None, **kwargs) -> None:
+ super(QueryCheck, self).__init__(**kwargs)
+ self.query = query
+ self.expected_result = expected_result
+ self.column_names = column_names
+
+
class QueuePurgesNotInAllowedRange(TimeWindowCustomAlertRule):
"""Number of device queue purges is not in allowed range.
@@ -6688,6 +6881,34 @@ def __init__(self, *, state=None, **kwargs) -> None:
self.unsupported_controls = None
+class Remediation(Model):
+ """Remediation details.
+
+ :param description: Remediation description.
+ :type description: str
+ :param scripts: Remediation script.
+ :type scripts: list[str]
+ :param automated: Is remediation automated.
+ :type automated: bool
+ :param portal_link: Optional link to remediate in Azure Portal.
+ :type portal_link: str
+ """
+
+ _attribute_map = {
+ 'description': {'key': 'description', 'type': 'str'},
+ 'scripts': {'key': 'scripts', 'type': '[str]'},
+ 'automated': {'key': 'automated', 'type': 'bool'},
+ 'portal_link': {'key': 'portalLink', 'type': 'str'},
+ }
+
+ def __init__(self, *, description: str=None, scripts=None, automated: bool=None, portal_link: str=None, **kwargs) -> None:
+ super(Remediation, self).__init__(**kwargs)
+ self.description = description
+ self.scripts = scripts
+ self.automated = automated
+ self.portal_link = portal_link
+
+
class Rule(Model):
"""Describes remote addresses that is recommended to communicate with the
Azure resource on some (Protocol, Port, Direction). All other remote
@@ -6726,6 +6947,330 @@ def __init__(self, *, name: str=None, direction=None, destination_port: int=None
self.ip_addresses = ip_addresses
+class RuleResults(Resource):
+ """Rule results.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :param properties:
+ :type properties: ~azure.mgmt.security.models.RuleResultsProperties
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'properties': {'key': 'properties', 'type': 'RuleResultsProperties'},
+ }
+
+ def __init__(self, *, properties=None, **kwargs) -> None:
+ super(RuleResults, self).__init__(**kwargs)
+ self.properties = properties
+
+
+class RuleResultsInput(Model):
+ """Rule results input.
+
+ :param latest_scan: Take results from latest scan.
+ :type latest_scan: bool
+ :param results: Expected results to be inserted into the baseline.
+ Leave this field empty it LatestScan == true.
+ :type results: list[list[str]]
+ """
+
+ _attribute_map = {
+ 'latest_scan': {'key': 'latestScan', 'type': 'bool'},
+ 'results': {'key': 'results', 'type': '[[str]]'},
+ }
+
+ def __init__(self, *, latest_scan: bool=None, results=None, **kwargs) -> None:
+ super(RuleResultsInput, self).__init__(**kwargs)
+ self.latest_scan = latest_scan
+ self.results = results
+
+
+class RuleResultsProperties(Model):
+ """Rule results properties.
+
+ :param results: Expected results in the baseline.
+ :type results: list[list[str]]
+ """
+
+ _attribute_map = {
+ 'results': {'key': 'results', 'type': '[[str]]'},
+ }
+
+ def __init__(self, *, results=None, **kwargs) -> None:
+ super(RuleResultsProperties, self).__init__(**kwargs)
+ self.results = results
+
+
+class RulesResults(Model):
+ """A list of rules results.
+
+ :param value: List of rule results.
+ :type value: list[~azure.mgmt.security.models.RuleResults]
+ """
+
+ _attribute_map = {
+ 'value': {'key': 'value', 'type': '[RuleResults]'},
+ }
+
+ def __init__(self, *, value=None, **kwargs) -> None:
+ super(RulesResults, self).__init__(**kwargs)
+ self.value = value
+
+
+class RulesResultsInput(Model):
+ """Rules results input.
+
+ :param latest_scan: Take results from latest scan.
+ :type latest_scan: bool
+ :param results: Expected results to be inserted into the baseline.
+ Leave this field empty it LatestScan == true.
+ :type results: dict[str, list[list[str]]]
+ """
+
+ _attribute_map = {
+ 'latest_scan': {'key': 'latestScan', 'type': 'bool'},
+ 'results': {'key': 'results', 'type': '{[[str]]}'},
+ }
+
+ def __init__(self, *, latest_scan: bool=None, results=None, **kwargs) -> None:
+ super(RulesResultsInput, self).__init__(**kwargs)
+ self.latest_scan = latest_scan
+ self.results = results
+
+
+class Scan(Resource):
+ """A vulnerability assessment scan record.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :param properties:
+ :type properties: ~azure.mgmt.security.models.ScanProperties
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'properties': {'key': 'properties', 'type': 'ScanProperties'},
+ }
+
+ def __init__(self, *, properties=None, **kwargs) -> None:
+ super(Scan, self).__init__(**kwargs)
+ self.properties = properties
+
+
+class ScanProperties(Model):
+ """A vulnerability assessment scan record properties.
+
+ :param trigger_type: Possible values include: 'OnDemand', 'Recurring'
+ :type trigger_type: str or ~azure.mgmt.security.models.ScanTriggerType
+ :param state: Possible values include: 'Failed', 'FailedToRun',
+ 'InProgress', 'Passed'
+ :type state: str or ~azure.mgmt.security.models.ScanState
+ :param server: The server name.
+ :type server: str
+ :param database: The database name.
+ :type database: str
+ :param sql_version: The SQL version.
+ :type sql_version: str
+ :param start_time: The scan start time (UTC).
+ :type start_time: datetime
+ :param end_time: Scan results are valid until end time (UTC).
+ :type end_time: datetime
+ :param high_severity_failed_rules_count: The number of failed rules with
+ high severity.
+ :type high_severity_failed_rules_count: int
+ :param medium_severity_failed_rules_count: The number of failed rules with
+ medium severity.
+ :type medium_severity_failed_rules_count: int
+ :param low_severity_failed_rules_count: The number of failed rules with
+ low severity.
+ :type low_severity_failed_rules_count: int
+ :param total_passed_rules_count: The number of total passed rules.
+ :type total_passed_rules_count: int
+ :param total_failed_rules_count: The number of total failed rules.
+ :type total_failed_rules_count: int
+ :param total_rules_count: The number of total rules assessed.
+ :type total_rules_count: int
+ :param is_baseline_applied: Baseline created for this database, and has
+ one or more rules.
+ :type is_baseline_applied: bool
+ """
+
+ _attribute_map = {
+ 'trigger_type': {'key': 'triggerType', 'type': 'str'},
+ 'state': {'key': 'state', 'type': 'str'},
+ 'server': {'key': 'server', 'type': 'str'},
+ 'database': {'key': 'database', 'type': 'str'},
+ 'sql_version': {'key': 'sqlVersion', 'type': 'str'},
+ 'start_time': {'key': 'startTime', 'type': 'iso-8601'},
+ 'end_time': {'key': 'endTime', 'type': 'iso-8601'},
+ 'high_severity_failed_rules_count': {'key': 'highSeverityFailedRulesCount', 'type': 'int'},
+ 'medium_severity_failed_rules_count': {'key': 'mediumSeverityFailedRulesCount', 'type': 'int'},
+ 'low_severity_failed_rules_count': {'key': 'lowSeverityFailedRulesCount', 'type': 'int'},
+ 'total_passed_rules_count': {'key': 'totalPassedRulesCount', 'type': 'int'},
+ 'total_failed_rules_count': {'key': 'totalFailedRulesCount', 'type': 'int'},
+ 'total_rules_count': {'key': 'totalRulesCount', 'type': 'int'},
+ 'is_baseline_applied': {'key': 'isBaselineApplied', 'type': 'bool'},
+ }
+
+ def __init__(self, *, trigger_type=None, state=None, server: str=None, database: str=None, sql_version: str=None, start_time=None, end_time=None, high_severity_failed_rules_count: int=None, medium_severity_failed_rules_count: int=None, low_severity_failed_rules_count: int=None, total_passed_rules_count: int=None, total_failed_rules_count: int=None, total_rules_count: int=None, is_baseline_applied: bool=None, **kwargs) -> None:
+ super(ScanProperties, self).__init__(**kwargs)
+ self.trigger_type = trigger_type
+ self.state = state
+ self.server = server
+ self.database = database
+ self.sql_version = sql_version
+ self.start_time = start_time
+ self.end_time = end_time
+ self.high_severity_failed_rules_count = high_severity_failed_rules_count
+ self.medium_severity_failed_rules_count = medium_severity_failed_rules_count
+ self.low_severity_failed_rules_count = low_severity_failed_rules_count
+ self.total_passed_rules_count = total_passed_rules_count
+ self.total_failed_rules_count = total_failed_rules_count
+ self.total_rules_count = total_rules_count
+ self.is_baseline_applied = is_baseline_applied
+
+
+class ScanResult(Resource):
+ """A vulnerability assessment scan result for a single rule.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar id: Resource Id
+ :vartype id: str
+ :ivar name: Resource name
+ :vartype name: str
+ :ivar type: Resource type
+ :vartype type: str
+ :param properties:
+ :type properties: ~azure.mgmt.security.models.ScanResultProperties
+ """
+
+ _validation = {
+ 'id': {'readonly': True},
+ 'name': {'readonly': True},
+ 'type': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'id': {'key': 'id', 'type': 'str'},
+ 'name': {'key': 'name', 'type': 'str'},
+ 'type': {'key': 'type', 'type': 'str'},
+ 'properties': {'key': 'properties', 'type': 'ScanResultProperties'},
+ }
+
+ def __init__(self, *, properties=None, **kwargs) -> None:
+ super(ScanResult, self).__init__(**kwargs)
+ self.properties = properties
+
+
+class ScanResultProperties(Model):
+ """A vulnerability assessment scan result properties for a single rule.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param status: Possible values include: 'NonFinding', 'Finding',
+ 'InternalError'
+ :type status: str or ~azure.mgmt.security.models.RuleStatus
+ :param is_trimmed: Indicated whether the results specified here are
+ trimmed.
+ :type is_trimmed: bool
+ :param query_results: The results of the query that was run.
+ :type query_results: list[list[str]]
+ :param remediation:
+ :type remediation: ~azure.mgmt.security.models.Remediation
+ :param baseline_adjusted_result:
+ :type baseline_adjusted_result:
+ ~azure.mgmt.security.models.BaselineAdjustedResult
+ :param rule_metadata:
+ :type rule_metadata: ~azure.mgmt.security.models.VaRule
+ """
+
+ _attribute_map = {
+ 'rule_id': {'key': 'ruleId', 'type': 'str'},
+ 'status': {'key': 'status', 'type': 'str'},
+ 'is_trimmed': {'key': 'isTrimmed', 'type': 'bool'},
+ 'query_results': {'key': 'queryResults', 'type': '[[str]]'},
+ 'remediation': {'key': 'remediation', 'type': 'Remediation'},
+ 'baseline_adjusted_result': {'key': 'baselineAdjustedResult', 'type': 'BaselineAdjustedResult'},
+ 'rule_metadata': {'key': 'ruleMetadata', 'type': 'VaRule'},
+ }
+
+ def __init__(self, *, rule_id: str=None, status=None, is_trimmed: bool=None, query_results=None, remediation=None, baseline_adjusted_result=None, rule_metadata=None, **kwargs) -> None:
+ super(ScanResultProperties, self).__init__(**kwargs)
+ self.rule_id = rule_id
+ self.status = status
+ self.is_trimmed = is_trimmed
+ self.query_results = query_results
+ self.remediation = remediation
+ self.baseline_adjusted_result = baseline_adjusted_result
+ self.rule_metadata = rule_metadata
+
+
+class ScanResults(Model):
+ """A list of vulnerability assessment scan results.
+
+ :param value: List of vulnerability assessment scan results.
+ :type value: list[~azure.mgmt.security.models.ScanResult]
+ """
+
+ _attribute_map = {
+ 'value': {'key': 'value', 'type': '[ScanResult]'},
+ }
+
+ def __init__(self, *, value=None, **kwargs) -> None:
+ super(ScanResults, self).__init__(**kwargs)
+ self.value = value
+
+
+class Scans(Model):
+ """A list of vulnerability assessment scan records.
+
+ :param value: List of vulnerability assessment scan records.
+ :type value: list[~azure.mgmt.security.models.Scan]
+ """
+
+ _attribute_map = {
+ 'value': {'key': 'value', 'type': '[Scan]'},
+ }
+
+ def __init__(self, *, value=None, **kwargs) -> None:
+ super(Scans, self).__init__(**kwargs)
+ self.value = value
+
+
class ScopeElement(Model):
"""A more specific scope used to identify the alerts to suppress.
@@ -7708,6 +8253,34 @@ def __init__(self, *, display_name: str=None, description: str=None, rank=None,
self.enabled = enabled
+class Sensor(Model):
+ """Sensor data.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar name: Sensor name
+ :vartype name: str
+ :ivar zone: Zone Name.
+ :vartype zone: str
+ """
+
+ _validation = {
+ 'name': {'readonly': True},
+ 'zone': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'name': {'key': 'name', 'type': 'str'},
+ 'zone': {'key': 'zone', 'type': 'str'},
+ }
+
+ def __init__(self, **kwargs) -> None:
+ super(Sensor, self).__init__(**kwargs)
+ self.name = None
+ self.zone = None
+
+
class ServerVulnerabilityAssessment(Resource):
"""Describes the server vulnerability assessment details on a resource.
@@ -7827,7 +8400,7 @@ def __init__(self, **kwargs) -> None:
class ServicePrincipalProperties(Model):
"""Details of the service principal.
- :param application_id: Application id of service principal.
+ :param application_id: Application ID of service principal.
:type application_id: str
:param secret: A secret string that the application uses to prove its
identity, also can be referred to as application password (write only).
@@ -7845,6 +8418,29 @@ def __init__(self, *, application_id: str=None, secret: str=None, **kwargs) -> N
self.secret = secret
+class Site(Model):
+ """Site data.
+
+ Variables are only populated by the server, and will be ignored when
+ sending a request.
+
+ :ivar display_name: Site display name
+ :vartype display_name: str
+ """
+
+ _validation = {
+ 'display_name': {'readonly': True},
+ }
+
+ _attribute_map = {
+ 'display_name': {'key': 'displayName', 'type': 'str'},
+ }
+
+ def __init__(self, **kwargs) -> None:
+ super(Site, self).__init__(**kwargs)
+ self.display_name = None
+
+
class SqlServerVulnerabilityProperties(AdditionalData):
"""Details of the resource that was assessed.
@@ -8316,6 +8912,57 @@ def __init__(self, *, username: str=None, recommendation_action=None, **kwargs)
self.recommendation_action = recommendation_action
+class VaRule(Model):
+ """vulnerability assessment rule metadata details.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param severity: Possible values include: 'High', 'Medium', 'Low',
+ 'Informational', 'Obsolete'
+ :type severity: str or ~azure.mgmt.security.models.RuleSeverity
+ :param category: The rule category.
+ :type category: str
+ :param rule_type: Possible values include: 'Binary', 'BaselineExpected',
+ 'PositiveList', 'NegativeList'
+ :type rule_type: str or ~azure.mgmt.security.models.RuleType
+ :param title: The rule title.
+ :type title: str
+ :param description: The rule description.
+ :type description: str
+ :param rationale: The rule rationale.
+ :type rationale: str
+ :param query_check:
+ :type query_check: ~azure.mgmt.security.models.QueryCheck
+ :param benchmark_references: The benchmark references.
+ :type benchmark_references:
+ list[~azure.mgmt.security.models.BenchmarkReference]
+ """
+
+ _attribute_map = {
+ 'rule_id': {'key': 'ruleId', 'type': 'str'},
+ 'severity': {'key': 'severity', 'type': 'str'},
+ 'category': {'key': 'category', 'type': 'str'},
+ 'rule_type': {'key': 'ruleType', 'type': 'str'},
+ 'title': {'key': 'title', 'type': 'str'},
+ 'description': {'key': 'description', 'type': 'str'},
+ 'rationale': {'key': 'rationale', 'type': 'str'},
+ 'query_check': {'key': 'queryCheck', 'type': 'QueryCheck'},
+ 'benchmark_references': {'key': 'benchmarkReferences', 'type': '[BenchmarkReference]'},
+ }
+
+ def __init__(self, *, rule_id: str=None, severity=None, category: str=None, rule_type=None, title: str=None, description: str=None, rationale: str=None, query_check=None, benchmark_references=None, **kwargs) -> None:
+ super(VaRule, self).__init__(**kwargs)
+ self.rule_id = rule_id
+ self.severity = severity
+ self.category = category
+ self.rule_type = rule_type
+ self.title = title
+ self.description = description
+ self.rationale = rationale
+ self.query_check = query_check
+ self.benchmark_references = benchmark_references
+
+
class VendorReference(Model):
"""Vendor reference.
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_paged_models.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_paged_models.py
index deb12454bc0c..5dcf2e2766af 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_paged_models.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_paged_models.py
@@ -103,6 +103,19 @@ class IotAlertPaged(Paged):
def __init__(self, *args, **kwargs):
super(IotAlertPaged, self).__init__(*args, **kwargs)
+class IotAlertModelPaged(Paged):
+ """
+ A paging container for iterating over a list of :class:`IotAlertModel ` object
+ """
+
+ _attribute_map = {
+ 'next_link': {'key': 'nextLink', 'type': 'str'},
+ 'current_page': {'key': 'value', 'type': '[IotAlertModel]'}
+ }
+
+ def __init__(self, *args, **kwargs):
+
+ super(IotAlertModelPaged, self).__init__(*args, **kwargs)
class IotRecommendationPaged(Paged):
"""
A paging container for iterating over a list of :class:`IotRecommendation ` object
@@ -116,6 +129,19 @@ class IotRecommendationPaged(Paged):
def __init__(self, *args, **kwargs):
super(IotRecommendationPaged, self).__init__(*args, **kwargs)
+class IotRecommendationModelPaged(Paged):
+ """
+ A paging container for iterating over a list of :class:`IotRecommendationModel ` object
+ """
+
+ _attribute_map = {
+ 'next_link': {'key': 'nextLink', 'type': 'str'},
+ 'current_page': {'key': 'value', 'type': '[IotRecommendationModel]'}
+ }
+
+ def __init__(self, *args, **kwargs):
+
+ super(IotRecommendationModelPaged, self).__init__(*args, **kwargs)
class AscLocationPaged(Paged):
"""
A paging container for iterating over a list of :class:`AscLocation ` object
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py
index df4796d1eef2..651c39085b1f 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/models/_security_center_enums.py
@@ -366,7 +366,7 @@ class AuthenticationProvisioningState(str, Enum):
valid = "Valid" #: Valid connector
invalid = "Invalid" #: Invalid connector
- expired = "Expired" #: the connection is expired
+ expired = "Expired" #: the connection has expired
incorrect_policy = "IncorrectPolicy" #: Incorrect policy of the connector
@@ -378,6 +378,44 @@ class PermissionProperty(str, Enum):
gcp_security_center_admin_viewer = "GCP::Security Center Admin Viewer" #: This permission provides read only access to GCP Security Command Center.
+class ScanTriggerType(str, Enum):
+
+ on_demand = "OnDemand" #: OnDemand
+ recurring = "Recurring" #: Recurring
+
+
+class ScanState(str, Enum):
+
+ failed = "Failed" #: Failed
+ failed_to_run = "FailedToRun" #: FailedToRun
+ in_progress = "InProgress" #: InProgress
+ passed = "Passed" #: Passed
+
+
+class RuleStatus(str, Enum):
+
+ non_finding = "NonFinding" #: NonFinding
+ finding = "Finding" #: Finding
+ internal_error = "InternalError" #: InternalError
+
+
+class RuleSeverity(str, Enum):
+
+ high = "High" #: High
+ medium = "Medium" #: Medium
+ low = "Low" #: Low
+ informational = "Informational" #: Informational
+ obsolete = "Obsolete" #: Obsolete
+
+
+class RuleType(str, Enum):
+
+ binary = "Binary" #: Binary
+ baseline_expected = "BaselineExpected" #: BaselineExpected
+ positive_list = "PositiveList" #: PositiveList
+ negative_list = "NegativeList" #: NegativeList
+
+
class VersionKind(str, Enum):
latest = "Latest"
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py
index 9a85de922f37..751d0d5098d5 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/__init__.py
@@ -53,6 +53,9 @@
from ._secure_score_control_definitions_operations import SecureScoreControlDefinitionsOperations
from ._security_solutions_operations import SecuritySolutionsOperations
from ._connectors_operations import ConnectorsOperations
+from ._sql_vulnerability_assessment_scans_operations import SqlVulnerabilityAssessmentScansOperations
+from ._sql_vulnerability_assessment_scan_results_operations import SqlVulnerabilityAssessmentScanResultsOperations
+from ._sql_vulnerability_assessment_baseline_rules_operations import SqlVulnerabilityAssessmentBaselineRulesOperations
from ._iot_defender_settings_operations import IotDefenderSettingsOperations
from ._iot_sensors_operations import IotSensorsOperations
from ._devices_for_subscription_operations import DevicesForSubscriptionOperations
@@ -105,6 +108,9 @@
'SecureScoreControlDefinitionsOperations',
'SecuritySolutionsOperations',
'ConnectorsOperations',
+ 'SqlVulnerabilityAssessmentScansOperations',
+ 'SqlVulnerabilityAssessmentScanResultsOperations',
+ 'SqlVulnerabilityAssessmentBaselineRulesOperations',
'IotDefenderSettingsOperations',
'IotSensorsOperations',
'DevicesForSubscriptionOperations',
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_connectors_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_connectors_operations.py
index 3b41670485db..ff353c5f6da7 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_connectors_operations.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_connectors_operations.py
@@ -166,14 +166,15 @@ def get(
def create_or_update(
self, connector_name, hybrid_compute_settings=None, authentication_details=None, custom_headers=None, raw=False, **operation_config):
"""Create a cloud account connector or update an existing one. Connect to
- your AWS cloud account using either account credentials or role-based
- authentication.
+ your cloud account. For AWS, use either account credentials or
+ role-based authentication. For GCP, use account organization
+ credentials.
:param connector_name: Name of the cloud account connector
:type connector_name: str
:param hybrid_compute_settings: Settings for hybrid compute
- management, these settings are relevant only Arc autoProvision (Hybrid
- Compute).
+ management. These settings are relevant only for Arc autoProvision
+ (Hybrid Compute).
:type hybrid_compute_settings:
~azure.mgmt.security.models.HybridComputeSettingsProperties
:param authentication_details: Settings for authentication management,
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py
index 7cf80ec7889b..68a582e8109d 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alert_types_operations.py
@@ -25,7 +25,6 @@ class IotAlertTypesOperations(object):
:param config: Configuration of service client.
:param serializer: An object model serializer.
:param deserializer: An object model deserializer.
- :ivar api_version: API version for the operation. Constant value: "2019-08-01".
"""
models = models
@@ -35,7 +34,6 @@ def __init__(self, client, config, serializer, deserializer):
self._client = client
self._serialize = serializer
self._deserialize = deserializer
- self.api_version = "2019-08-01"
self.config = config
@@ -58,6 +56,8 @@ def list(
~msrest.pipeline.ClientRawResponse
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
# Construct URL
url = self.list.metadata['url']
path_format_arguments = {
@@ -69,7 +69,7 @@ def list(
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
# Construct headers
header_parameters = {}
@@ -122,6 +122,8 @@ def get(
~msrest.pipeline.ClientRawResponse
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
# Construct URL
url = self.get.metadata['url']
path_format_arguments = {
@@ -134,7 +136,7 @@ def get(
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
# Construct headers
header_parameters = {}
@@ -165,3 +167,120 @@ def get(
return deserialized
get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes/{iotAlertTypeName}'}
+
+ def list1(
+ self, custom_headers=None, raw=False, **operation_config):
+ """List IoT alert types.
+
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: IotAlertTypeList or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.IotAlertTypeList or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ # Construct URL
+ url = self.list1.metadata['url']
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$')
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('IotAlertTypeList', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ list1.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes'}
+
+ def get1(
+ self, iot_alert_type_name, custom_headers=None, raw=False, **operation_config):
+ """Get IoT alert type.
+
+ :param iot_alert_type_name: Name of the alert type
+ :type iot_alert_type_name: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: IotAlertType or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.IotAlertType or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ # Construct URL
+ url = self.get1.metadata['url']
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'),
+ 'iotAlertTypeName': self._serialize.url("iot_alert_type_name", iot_alert_type_name, 'str')
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('IotAlertType', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get1.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotAlertTypes/{iotAlertTypeName}'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py
index a59f568d1920..8f4e3128008b 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_alerts_operations.py
@@ -25,7 +25,6 @@ class IotAlertsOperations(object):
:param config: Configuration of service client.
:param serializer: An object model serializer.
:param deserializer: An object model deserializer.
- :ivar api_version: API version for the operation. Constant value: "2019-08-01".
"""
models = models
@@ -35,7 +34,6 @@ def __init__(self, client, config, serializer, deserializer):
self._client = client
self._serialize = serializer
self._deserialize = deserializer
- self.api_version = "2019-08-01"
self.config = config
@@ -72,6 +70,8 @@ def list(
~azure.mgmt.security.models.IotAlertPaged[~azure.mgmt.security.models.IotAlert]
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
def prepare_request(next_link=None):
if not next_link:
# Construct URL
@@ -85,7 +85,7 @@ def prepare_request(next_link=None):
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
if min_start_time_utc is not None:
query_parameters['startTimeUtc>'] = self._serialize.query("min_start_time_utc", min_start_time_utc, 'str')
if max_start_time_utc is not None:
@@ -159,6 +159,8 @@ def get(
~msrest.pipeline.ClientRawResponse
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
# Construct URL
url = self.get.metadata['url']
path_format_arguments = {
@@ -171,7 +173,7 @@ def get(
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
# Construct headers
header_parameters = {}
@@ -202,3 +204,171 @@ def get(
return deserialized
get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlerts/{iotAlertId}'}
+
+ def list1(
+ self, scope, min_start_time_utc=None, max_start_time_utc=None, alert_type=None, device_management_type=None, compromised_entity=None, limit=None, skip_token=None, custom_headers=None, raw=False, **operation_config):
+ """List IoT alerts.
+
+ :param scope: Scope of the query: Subscription (i.e.
+ /subscriptions/{subscriptionId}) or IoT Hub (i.e.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName})
+ :type scope: str
+ :param min_start_time_utc: Filter by minimum startTimeUtc (ISO 8601
+ format)
+ :type min_start_time_utc: str
+ :param max_start_time_utc: Filter by maximum startTimeUtc (ISO 8601
+ format)
+ :type max_start_time_utc: str
+ :param alert_type: Filter by alert type
+ :type alert_type: str
+ :param device_management_type: Get devices only from specific type,
+ Managed or Unmanaged. Possible values include: 'Managed', 'Unmanaged'
+ :type device_management_type: str or
+ ~azure.mgmt.security.models.ManagementState
+ :param compromised_entity: Filter by compromised device
+ :type compromised_entity: str
+ :param limit: Limit the number of items returned in a single page
+ :type limit: int
+ :param skip_token: Skip token used for pagination
+ :type skip_token: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: An iterator like instance of IotAlertModel
+ :rtype:
+ ~azure.mgmt.security.models.IotAlertModelPaged[~azure.mgmt.security.models.IotAlertModel]
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ def prepare_request(next_link=None):
+ if not next_link:
+ # Construct URL
+ url = self.list1.metadata['url']
+ path_format_arguments = {
+ 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+ if min_start_time_utc is not None:
+ query_parameters['startTimeUtc>'] = self._serialize.query("min_start_time_utc", min_start_time_utc, 'str')
+ if max_start_time_utc is not None:
+ query_parameters['startTimeUtc<'] = self._serialize.query("max_start_time_utc", max_start_time_utc, 'str')
+ if alert_type is not None:
+ query_parameters['alertType'] = self._serialize.query("alert_type", alert_type, 'str')
+ if device_management_type is not None:
+ query_parameters['deviceManagementType'] = self._serialize.query("device_management_type", device_management_type, 'str')
+ if compromised_entity is not None:
+ query_parameters['compromisedEntity'] = self._serialize.query("compromised_entity", compromised_entity, 'str')
+ if limit is not None:
+ query_parameters['$limit'] = self._serialize.query("limit", limit, 'int')
+ if skip_token is not None:
+ query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str')
+
+ else:
+ url = next_link
+ query_parameters = {}
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ return request
+
+ def internal_paging(next_link=None):
+ request = prepare_request(next_link)
+
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ return response
+
+ # Deserialize response
+ header_dict = None
+ if raw:
+ header_dict = {}
+ deserialized = models.IotAlertModelPaged(internal_paging, self._deserialize.dependencies, header_dict)
+
+ return deserialized
+ list1.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotAlerts'}
+
+ def get1(
+ self, scope, iot_alert_id, custom_headers=None, raw=False, **operation_config):
+ """Get IoT alert.
+
+ :param scope: Scope of the query: Subscription (i.e.
+ /subscriptions/{subscriptionId}) or IoT Hub (i.e.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName})
+ :type scope: str
+ :param iot_alert_id: Id of the alert
+ :type iot_alert_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: IotAlertModel or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.IotAlertModel or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ # Construct URL
+ url = self.get1.metadata['url']
+ path_format_arguments = {
+ 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True),
+ 'iotAlertId': self._serialize.url("iot_alert_id", iot_alert_id, 'str')
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('IotAlertModel', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get1.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotAlerts/{iotAlertId}'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py
index 743ca835bbab..2ac1dadc2e86 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendation_types_operations.py
@@ -25,7 +25,6 @@ class IotRecommendationTypesOperations(object):
:param config: Configuration of service client.
:param serializer: An object model serializer.
:param deserializer: An object model deserializer.
- :ivar api_version: API version for the operation. Constant value: "2019-08-01".
"""
models = models
@@ -35,7 +34,6 @@ def __init__(self, client, config, serializer, deserializer):
self._client = client
self._serialize = serializer
self._deserialize = deserializer
- self.api_version = "2019-08-01"
self.config = config
@@ -58,6 +56,8 @@ def list(
~msrest.pipeline.ClientRawResponse
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
# Construct URL
url = self.list.metadata['url']
path_format_arguments = {
@@ -69,7 +69,7 @@ def list(
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
# Construct headers
header_parameters = {}
@@ -122,6 +122,8 @@ def get(
~msrest.pipeline.ClientRawResponse
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
# Construct URL
url = self.get.metadata['url']
path_format_arguments = {
@@ -134,7 +136,7 @@ def get(
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
# Construct headers
header_parameters = {}
@@ -165,3 +167,120 @@ def get(
return deserialized
get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes/{iotRecommendationTypeName}'}
+
+ def list1(
+ self, custom_headers=None, raw=False, **operation_config):
+ """List IoT recommendation types.
+
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: IotRecommendationTypeList or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.IotRecommendationTypeList or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ # Construct URL
+ url = self.list1.metadata['url']
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$')
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('IotRecommendationTypeList', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ list1.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes'}
+
+ def get1(
+ self, iot_recommendation_type_name, custom_headers=None, raw=False, **operation_config):
+ """Get IoT recommendation type.
+
+ :param iot_recommendation_type_name: Name of the recommendation type
+ :type iot_recommendation_type_name: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: IotRecommendationType or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.IotRecommendationType or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ # Construct URL
+ url = self.get1.metadata['url']
+ path_format_arguments = {
+ 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', pattern=r'^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$'),
+ 'iotRecommendationTypeName': self._serialize.url("iot_recommendation_type_name", iot_recommendation_type_name, 'str')
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('IotRecommendationType', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get1.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Security/iotRecommendationTypes/{iotRecommendationTypeName}'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py
index 6c4888a82950..36af51bc0cdf 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_iot_recommendations_operations.py
@@ -25,7 +25,6 @@ class IotRecommendationsOperations(object):
:param config: Configuration of service client.
:param serializer: An object model serializer.
:param deserializer: An object model deserializer.
- :ivar api_version: API version for the operation. Constant value: "2019-08-01".
"""
models = models
@@ -35,7 +34,6 @@ def __init__(self, client, config, serializer, deserializer):
self._client = client
self._serialize = serializer
self._deserialize = deserializer
- self.api_version = "2019-08-01"
self.config = config
@@ -66,6 +64,8 @@ def list(
~azure.mgmt.security.models.IotRecommendationPaged[~azure.mgmt.security.models.IotRecommendation]
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
def prepare_request(next_link=None):
if not next_link:
# Construct URL
@@ -79,7 +79,7 @@ def prepare_request(next_link=None):
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
if recommendation_type is not None:
query_parameters['recommendationType'] = self._serialize.query("recommendation_type", recommendation_type, 'str')
if device_id is not None:
@@ -149,6 +149,8 @@ def get(
~msrest.pipeline.ClientRawResponse
:raises: :class:`CloudError`
"""
+ api_version = "2019-08-01"
+
# Construct URL
url = self.get.metadata['url']
path_format_arguments = {
@@ -161,7 +163,7 @@ def get(
# Construct parameters
query_parameters = {}
- query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
# Construct headers
header_parameters = {}
@@ -192,3 +194,155 @@ def get(
return deserialized
get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations/{iotRecommendationId}'}
+
+ def list1(
+ self, scope, recommendation_type=None, device_id=None, limit=None, skip_token=None, custom_headers=None, raw=False, **operation_config):
+ """List IoT recommendations.
+
+ :param scope: Scope of the query: Subscription (i.e.
+ /subscriptions/{subscriptionId}) or IoT Hub (i.e.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName})
+ :type scope: str
+ :param recommendation_type: Filter by recommendation type
+ :type recommendation_type: str
+ :param device_id: Filter by device id
+ :type device_id: str
+ :param limit: Limit the number of items returned in a single page
+ :type limit: int
+ :param skip_token: Skip token used for pagination
+ :type skip_token: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: An iterator like instance of IotRecommendationModel
+ :rtype:
+ ~azure.mgmt.security.models.IotRecommendationModelPaged[~azure.mgmt.security.models.IotRecommendationModel]
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ def prepare_request(next_link=None):
+ if not next_link:
+ # Construct URL
+ url = self.list1.metadata['url']
+ path_format_arguments = {
+ 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+ if recommendation_type is not None:
+ query_parameters['recommendationType'] = self._serialize.query("recommendation_type", recommendation_type, 'str')
+ if device_id is not None:
+ query_parameters['deviceId'] = self._serialize.query("device_id", device_id, 'str')
+ if limit is not None:
+ query_parameters['$limit'] = self._serialize.query("limit", limit, 'int')
+ if skip_token is not None:
+ query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str')
+
+ else:
+ url = next_link
+ query_parameters = {}
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ return request
+
+ def internal_paging(next_link=None):
+ request = prepare_request(next_link)
+
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ return response
+
+ # Deserialize response
+ header_dict = None
+ if raw:
+ header_dict = {}
+ deserialized = models.IotRecommendationModelPaged(internal_paging, self._deserialize.dependencies, header_dict)
+
+ return deserialized
+ list1.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotRecommendations'}
+
+ def get1(
+ self, scope, iot_recommendation_id, custom_headers=None, raw=False, **operation_config):
+ """Get IoT recommendation.
+
+ :param scope: Scope of the query: Subscription (i.e.
+ /subscriptions/{subscriptionId}) or IoT Hub (i.e.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Devices/iotHubs/{iotHubName})
+ :type scope: str
+ :param iot_recommendation_id: Id of the recommendation
+ :type iot_recommendation_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: IotRecommendationModel or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.IotRecommendationModel or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ api_version = "2020-08-06-preview"
+
+ # Construct URL
+ url = self.get1.metadata['url']
+ path_format_arguments = {
+ 'scope': self._serialize.url("scope", scope, 'str', skip_quote=True),
+ 'iotRecommendationId': self._serialize.url("iot_recommendation_id", iot_recommendation_id, 'str')
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('IotRecommendationModel', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get1.metadata = {'url': '/{scope}/providers/Microsoft.Security/iotRecommendations/{iotRecommendationId}'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_baseline_rules_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_baseline_rules_operations.py
new file mode 100644
index 000000000000..14747a65e390
--- /dev/null
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_baseline_rules_operations.py
@@ -0,0 +1,383 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for
+# license information.
+#
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is
+# regenerated.
+# --------------------------------------------------------------------------
+
+import uuid
+from msrest.pipeline import ClientRawResponse
+from msrestazure.azure_exceptions import CloudError
+
+from .. import models
+
+
+class SqlVulnerabilityAssessmentBaselineRulesOperations(object):
+ """SqlVulnerabilityAssessmentBaselineRulesOperations operations.
+
+ You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute.
+
+ :param client: Client for service requests.
+ :param config: Configuration of service client.
+ :param serializer: An object model serializer.
+ :param deserializer: An object model deserializer.
+ """
+
+ models = models
+
+ def __init__(self, client, config, serializer, deserializer):
+
+ self._client = client
+ self._serialize = serializer
+ self._deserialize = deserializer
+
+ self.config = config
+
+ def create_or_update(
+ self, rule_id, workspace_id, api_version, resource_id, latest_scan=None, results=None, custom_headers=None, raw=False, **operation_config):
+ """Creates a Baseline for a rule in a database. Will overwrite any
+ previously existing results.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param latest_scan: Take results from latest scan.
+ :type latest_scan: bool
+ :param results: Expected results to be inserted into the baseline.
+ Leave this field empty it LatestScan == true.
+ :type results: list[list[str]]
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: RuleResults or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.RuleResults or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ body = None
+ if latest_scan is not None or results is not None:
+ body = models.RuleResultsInput(latest_scan=latest_scan, results=results)
+
+ # Construct URL
+ url = self.create_or_update.metadata['url']
+ path_format_arguments = {
+ 'ruleId': self._serialize.url("rule_id", rule_id, 'str'),
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ header_parameters['Content-Type'] = 'application/json; charset=utf-8'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct body
+ if body is not None:
+ body_content = self._serialize.body(body, 'RuleResultsInput')
+ else:
+ body_content = None
+
+ # Construct and send request
+ request = self._client.put(url, query_parameters, header_parameters, body_content)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('RuleResults', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ create_or_update.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/{ruleId}'}
+
+ def get(
+ self, rule_id, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Gets the results for a given rule in the Baseline.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: RuleResults or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.RuleResults or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.get.metadata['url']
+ path_format_arguments = {
+ 'ruleId': self._serialize.url("rule_id", rule_id, 'str'),
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('RuleResults', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/{ruleId}'}
+
+ def delete(
+ self, rule_id, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Deletes a rule from the Baseline of a given database.
+
+ :param rule_id: The rule Id.
+ :type rule_id: str
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: None or ClientRawResponse if raw=true
+ :rtype: None or ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.delete.metadata['url']
+ path_format_arguments = {
+ 'ruleId': self._serialize.url("rule_id", rule_id, 'str'),
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.delete(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200, 204]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ if raw:
+ client_raw_response = ClientRawResponse(None, response)
+ return client_raw_response
+ delete.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules/{ruleId}'}
+
+ def list(
+ self, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Gets the results for all rules in the Baseline.
+
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: RulesResults or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.RulesResults or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.list.metadata['url']
+ path_format_arguments = {
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('RulesResults', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ list.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules'}
+
+ def add(
+ self, workspace_id, api_version, resource_id, latest_scan=None, results=None, custom_headers=None, raw=False, **operation_config):
+ """Add a list of baseline rules. Will overwrite any previously existing
+ results (for all rules).
+
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param latest_scan: Take results from latest scan.
+ :type latest_scan: bool
+ :param results: Expected results to be inserted into the baseline.
+ Leave this field empty it LatestScan == true.
+ :type results: dict[str, list[list[str]]]
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: RulesResults or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.RulesResults or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ body = None
+ if latest_scan is not None or results is not None:
+ body = models.RulesResultsInput(latest_scan=latest_scan, results=results)
+
+ # Construct URL
+ url = self.add.metadata['url']
+ path_format_arguments = {
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ header_parameters['Content-Type'] = 'application/json; charset=utf-8'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct body
+ if body is not None:
+ body_content = self._serialize.body(body, 'RulesResultsInput')
+ else:
+ body_content = None
+
+ # Construct and send request
+ request = self._client.post(url, query_parameters, header_parameters, body_content)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('RulesResults', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ add.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/baselineRules'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_scan_results_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_scan_results_operations.py
new file mode 100644
index 000000000000..31acb40b53ba
--- /dev/null
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_scan_results_operations.py
@@ -0,0 +1,173 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for
+# license information.
+#
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is
+# regenerated.
+# --------------------------------------------------------------------------
+
+import uuid
+from msrest.pipeline import ClientRawResponse
+from msrestazure.azure_exceptions import CloudError
+
+from .. import models
+
+
+class SqlVulnerabilityAssessmentScanResultsOperations(object):
+ """SqlVulnerabilityAssessmentScanResultsOperations operations.
+
+ You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute.
+
+ :param client: Client for service requests.
+ :param config: Configuration of service client.
+ :param serializer: An object model serializer.
+ :param deserializer: An object model deserializer.
+ """
+
+ models = models
+
+ def __init__(self, client, config, serializer, deserializer):
+
+ self._client = client
+ self._serialize = serializer
+ self._deserialize = deserializer
+
+ self.config = config
+
+ def get(
+ self, scan_id, scan_result_id, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Gets the scan results of a single rule in a scan record.
+
+ :param scan_id: The scan Id. Type 'latest' to get the scan results for
+ the latest scan.
+ :type scan_id: str
+ :param scan_result_id: The rule Id of the results.
+ :type scan_result_id: str
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: ScanResult or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.ScanResult or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.get.metadata['url']
+ path_format_arguments = {
+ 'scanId': self._serialize.url("scan_id", scan_id, 'str'),
+ 'scanResultId': self._serialize.url("scan_result_id", scan_result_id, 'str'),
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('ScanResult', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}/scanResults/{scanResultId}'}
+
+ def list(
+ self, scan_id, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Gets a list of scan results for a single scan record.
+
+ :param scan_id: The scan Id. Type 'latest' to get the scan results for
+ the latest scan.
+ :type scan_id: str
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: ScanResults or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.ScanResults or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.list.metadata['url']
+ path_format_arguments = {
+ 'scanId': self._serialize.url("scan_id", scan_id, 'str'),
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('ScanResults', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ list.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}/scanResults'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_scans_operations.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_scans_operations.py
new file mode 100644
index 000000000000..0b6e34d106c3
--- /dev/null
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/operations/_sql_vulnerability_assessment_scans_operations.py
@@ -0,0 +1,166 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for
+# license information.
+#
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is
+# regenerated.
+# --------------------------------------------------------------------------
+
+import uuid
+from msrest.pipeline import ClientRawResponse
+from msrestazure.azure_exceptions import CloudError
+
+from .. import models
+
+
+class SqlVulnerabilityAssessmentScansOperations(object):
+ """SqlVulnerabilityAssessmentScansOperations operations.
+
+ You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute.
+
+ :param client: Client for service requests.
+ :param config: Configuration of service client.
+ :param serializer: An object model serializer.
+ :param deserializer: An object model deserializer.
+ """
+
+ models = models
+
+ def __init__(self, client, config, serializer, deserializer):
+
+ self._client = client
+ self._serialize = serializer
+ self._deserialize = deserializer
+
+ self.config = config
+
+ def get(
+ self, scan_id, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Gets the scan details of a single scan record.
+
+ :param scan_id: The scan Id. Type 'latest' to get the scan record for
+ the latest scan.
+ :type scan_id: str
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: Scan or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.Scan or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.get.metadata['url']
+ path_format_arguments = {
+ 'scanId': self._serialize.url("scan_id", scan_id, 'str'),
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('Scan', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ get.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}'}
+
+ def list(
+ self, workspace_id, api_version, resource_id, custom_headers=None, raw=False, **operation_config):
+ """Gets a list of scan records.
+
+ :param workspace_id: The workspace Id.
+ :type workspace_id: str
+ :param api_version: The api version.
+ :type api_version: str
+ :param resource_id: The identifier of the resource.
+ :type resource_id: str
+ :param dict custom_headers: headers that will be added to the request
+ :param bool raw: returns the direct response alongside the
+ deserialized response
+ :param operation_config: :ref:`Operation configuration
+ overrides`.
+ :return: Scans or ClientRawResponse if raw=true
+ :rtype: ~azure.mgmt.security.models.Scans or
+ ~msrest.pipeline.ClientRawResponse
+ :raises: :class:`CloudError`
+ """
+ # Construct URL
+ url = self.list.metadata['url']
+ path_format_arguments = {
+ 'resourceId': self._serialize.url("resource_id", resource_id, 'str', skip_quote=True)
+ }
+ url = self._client.format_url(url, **path_format_arguments)
+
+ # Construct parameters
+ query_parameters = {}
+ query_parameters['workspaceId'] = self._serialize.query("workspace_id", workspace_id, 'str')
+ query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
+
+ # Construct headers
+ header_parameters = {}
+ header_parameters['Accept'] = 'application/json'
+ if self.config.generate_client_request_id:
+ header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
+ if custom_headers:
+ header_parameters.update(custom_headers)
+ if self.config.accept_language is not None:
+ header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str')
+
+ # Construct and send request
+ request = self._client.get(url, query_parameters, header_parameters)
+ response = self._client.send(request, stream=False, **operation_config)
+
+ if response.status_code not in [200]:
+ exp = CloudError(response)
+ exp.request_id = response.headers.get('x-ms-request-id')
+ raise exp
+
+ deserialized = None
+ if response.status_code == 200:
+ deserialized = self._deserialize('Scans', response)
+
+ if raw:
+ client_raw_response = ClientRawResponse(deserialized, response)
+ return client_raw_response
+
+ return deserialized
+ list.metadata = {'url': '/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans'}
diff --git a/sdk/security/azure-mgmt-security/azure/mgmt/security/version.py b/sdk/security/azure-mgmt-security/azure/mgmt/security/version.py
index 266f5a486d79..5a7feab42d26 100644
--- a/sdk/security/azure-mgmt-security/azure/mgmt/security/version.py
+++ b/sdk/security/azure-mgmt-security/azure/mgmt/security/version.py
@@ -9,5 +9,5 @@
# regenerated.
# --------------------------------------------------------------------------
-VERSION = "0.5.0"
+VERSION = "0.6.0"