@azure/arm-security
Version:
A generated SDK for SecurityCenter.
1,399 lines (1,285 loc) • 277 kB
text/typescript
/*
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*
* Code generated by Microsoft (R) AutoRest Code Generator.
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/
import * as coreClient from "@azure/core-client";
export type CustomAlertRuleUnion =
| CustomAlertRule
| ThresholdCustomAlertRuleUnion
| ListCustomAlertRuleUnion;
export type ResourceDetailsUnion =
| ResourceDetails
| AzureResourceDetails
| OnPremiseResourceDetailsUnion;
export type AdditionalDataUnion =
| AdditionalData
| SqlServerVulnerabilityProperties
| ContainerRegistryVulnerabilityProperties
| ServerVulnerabilityProperties;
export type AutomationActionUnion =
| AutomationAction
| AutomationActionLogicApp
| AutomationActionEventHub
| AutomationActionWorkspace;
export type AuthenticationDetailsPropertiesUnion =
| AuthenticationDetailsProperties
| AwsCredsAuthenticationDetailsProperties
| AwAssumeRoleAuthenticationDetailsProperties
| GcpCredentialsDetailsProperties;
export type ResourceIdentifierUnion =
| ResourceIdentifier
| AzureResourceIdentifier
| LogAnalyticsIdentifier;
export type AlertSimulatorRequestPropertiesUnion =
| AlertSimulatorRequestProperties
| AlertSimulatorBundlesRequestProperties;
export type CloudOfferingUnion =
| CloudOffering
| CspmMonitorAwsOffering
| DefenderForContainersAwsOffering
| DefenderForServersAwsOffering
| InformationProtectionAwsOffering;
export type ExternalSecuritySolutionUnion =
| ExternalSecuritySolution
| CefExternalSecuritySolution
| AtaExternalSecuritySolution
| AadExternalSecuritySolution;
export type SettingUnion = Setting | DataExportSettings | AlertSyncSettings;
export type ThresholdCustomAlertRuleUnion =
| ThresholdCustomAlertRule
| TimeWindowCustomAlertRuleUnion;
export type ListCustomAlertRuleUnion =
| ListCustomAlertRule
| AllowlistCustomAlertRuleUnion
| DenylistCustomAlertRule;
export type OnPremiseResourceDetailsUnion =
| OnPremiseResourceDetails
| OnPremiseSqlResourceDetails;
export type TimeWindowCustomAlertRuleUnion =
| TimeWindowCustomAlertRule
| ActiveConnectionsNotInAllowedRange
| AmqpC2DMessagesNotInAllowedRange
| MqttC2DMessagesNotInAllowedRange
| HttpC2DMessagesNotInAllowedRange
| AmqpC2DRejectedMessagesNotInAllowedRange
| MqttC2DRejectedMessagesNotInAllowedRange
| HttpC2DRejectedMessagesNotInAllowedRange
| AmqpD2CMessagesNotInAllowedRange
| MqttD2CMessagesNotInAllowedRange
| HttpD2CMessagesNotInAllowedRange
| DirectMethodInvokesNotInAllowedRange
| FailedLocalLoginsNotInAllowedRange
| FileUploadsNotInAllowedRange
| QueuePurgesNotInAllowedRange
| TwinUpdatesNotInAllowedRange
| UnauthorizedOperationsNotInAllowedRange;
export type AllowlistCustomAlertRuleUnion =
| AllowlistCustomAlertRule
| ConnectionToIpNotAllowed
| ConnectionFromIpNotAllowed
| LocalUserNotAllowed
| ProcessNotAllowed;
/** List of all MDE onboarding data resources */
export interface MdeOnboardingDataList {
/** List of the resources of the configuration or data needed to onboard the machine to MDE */
value?: MdeOnboardingData[];
}
/** Describes an Azure resource. */
export interface Resource {
/**
* Resource Id
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly id?: string;
/**
* Resource name
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly name?: string;
/**
* Resource type
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly type?: string;
}
/** Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). */
export interface CloudError {
/**
* The error code.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly code?: string;
/**
* The error message.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly message?: string;
/**
* The error target.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly target?: string;
/**
* The error details.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly details?: CloudErrorBody[];
/**
* The error additional info.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly additionalInfo?: ErrorAdditionalInfo[];
}
/** The error detail. */
export interface CloudErrorBody {
/**
* The error code.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly code?: string;
/**
* The error message.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly message?: string;
/**
* The error target.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly target?: string;
/**
* The error details.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly details?: CloudErrorBody[];
/**
* The error additional info.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly additionalInfo?: ErrorAdditionalInfo[];
}
/** The resource management error additional info. */
export interface ErrorAdditionalInfo {
/**
* The additional info type.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly type?: string;
/**
* The additional info.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly info?: Record<string, unknown>;
}
/** Metadata pertaining to creation and last modification of the resource. */
export interface SystemData {
/** The identity that created the resource. */
createdBy?: string;
/** The type of identity that created the resource. */
createdByType?: CreatedByType;
/** The timestamp of resource creation (UTC). */
createdAt?: Date;
/** The identity that last modified the resource. */
lastModifiedBy?: string;
/** The type of identity that last modified the resource. */
lastModifiedByType?: CreatedByType;
/** The timestamp of resource last modification (UTC) */
lastModifiedAt?: Date;
}
/** A list of Custom Assessment Automations */
export interface CustomAssessmentAutomationsListResult {
/**
* Collection of Custom Assessment Automations
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: CustomAssessmentAutomation[];
/** The link used to get the next page of operations. */
nextLink?: string;
}
/** describes the custom entity store assignment request */
export interface CustomEntityStoreAssignmentRequest {
/** The principal assigned with entity store. If not provided, will use caller principal. Format of principal is: [AAD type]=[PrincipalObjectId];[TenantId] */
principal?: string;
}
/** A list of custom entity store assignments */
export interface CustomEntityStoreAssignmentsListResult {
/**
* Collection of custom entity store assignments
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: CustomEntityStoreAssignment[];
/** The link used to get the next page of operations. */
nextLink?: string;
}
/** List of compliance results response */
export interface ComplianceResultList {
/** List of compliance results */
value: ComplianceResult[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of pricing configurations response. */
export interface PricingList {
/** List of pricing configurations */
value: Pricing[];
}
/** List of device security groups */
export interface DeviceSecurityGroupList {
/** List of device security group objects */
value?: DeviceSecurityGroup[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** A custom alert rule. */
export interface CustomAlertRule {
/** Polymorphic discriminator, which specifies the different types this object can be */
ruleType:
| "ThresholdCustomAlertRule"
| "TimeWindowCustomAlertRule"
| "ListCustomAlertRule"
| "AllowlistCustomAlertRule"
| "DenylistCustomAlertRule"
| "ConnectionToIpNotAllowed"
| "ConnectionFromIpNotAllowed"
| "LocalUserNotAllowed"
| "ProcessNotAllowed"
| "ActiveConnectionsNotInAllowedRange"
| "AmqpC2DMessagesNotInAllowedRange"
| "MqttC2DMessagesNotInAllowedRange"
| "HttpC2DMessagesNotInAllowedRange"
| "AmqpC2DRejectedMessagesNotInAllowedRange"
| "MqttC2DRejectedMessagesNotInAllowedRange"
| "HttpC2DRejectedMessagesNotInAllowedRange"
| "AmqpD2CMessagesNotInAllowedRange"
| "MqttD2CMessagesNotInAllowedRange"
| "HttpD2CMessagesNotInAllowedRange"
| "DirectMethodInvokesNotInAllowedRange"
| "FailedLocalLoginsNotInAllowedRange"
| "FileUploadsNotInAllowedRange"
| "QueuePurgesNotInAllowedRange"
| "TwinUpdatesNotInAllowedRange"
| "UnauthorizedOperationsNotInAllowedRange";
/**
* The display name of the custom alert.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly displayName?: string;
/**
* The description of the custom alert.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly description?: string;
/** Status of the custom alert. */
isEnabled: boolean;
}
/** List of IoT Security solutions. */
export interface IoTSecuritySolutionsList {
/** List of IoT Security solutions */
value: IoTSecuritySolutionModel[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** Properties of the IoT Security solution's user defined resources. */
export interface UserDefinedResourcesProperties {
/** Azure Resource Graph query which represents the security solution's user defined resources. Required to start with "where type != "Microsoft.Devices/IotHubs"" */
query: string | null;
/** List of Azure subscription ids on which the user defined resources query should be executed. */
querySubscriptions: string[] | null;
}
/** The type of IoT Security recommendation. */
export interface RecommendationConfigurationProperties {
/** The type of IoT Security recommendation. */
recommendationType: RecommendationType;
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly name?: string;
/** Recommendation status. When the recommendation status is disabled recommendations are not generated. */
status: RecommendationConfigStatus;
}
/** Properties of the additional workspaces. */
export interface AdditionalWorkspacesProperties {
/** Workspace resource id */
workspace?: string;
/** Workspace type. */
type?: AdditionalWorkspaceType;
/** List of data types sent to workspace */
dataTypes?: AdditionalWorkspaceDataType[];
}
/** A container holding only the Tags for a resource, allowing the user to update the tags. */
export interface TagsResource {
/** Resource tags */
tags?: { [propertyName: string]: string };
}
/** List of Security analytics of your IoT Security solution */
export interface IoTSecuritySolutionAnalyticsModelList {
/** List of Security analytics of your IoT Security solution */
value: IoTSecuritySolutionAnalyticsModel[];
/**
* When there is too much alert data for one page, use this URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** IoT Security solution analytics severity metrics. */
export interface IoTSeverityMetrics {
/** Count of high severity alerts/recommendations. */
high?: number;
/** Count of medium severity alerts/recommendations. */
medium?: number;
/** Count of low severity alerts/recommendations. */
low?: number;
}
export interface IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem {
/** Aggregation of IoT Security solution device alert metrics by date. */
date?: Date;
/** Device alert count by severity. */
devicesMetrics?: IoTSeverityMetrics;
}
/** Statistical information about the number of alerts per device during last set number of days. */
export interface IoTSecurityAlertedDevice {
/**
* Device identifier.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly deviceId?: string;
/**
* Number of alerts raised for this device.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly alertsCount?: number;
}
/** Statistical information about the number of alerts per alert type during last set number of days */
export interface IoTSecurityDeviceAlert {
/**
* Display name of the alert
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly alertDisplayName?: string;
/**
* Assessed Alert severity.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly reportedSeverity?: ReportedSeverity;
/**
* Number of alerts raised for this alert type.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly alertsCount?: number;
}
/** Statistical information about the number of recommendations per device, per recommendation type. */
export interface IoTSecurityDeviceRecommendation {
/**
* Display name of the recommendation.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly recommendationDisplayName?: string;
/**
* Assessed recommendation severity.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly reportedSeverity?: ReportedSeverity;
/**
* Number of devices with this recommendation.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly devicesCount?: number;
}
/** List of IoT Security solution aggregated alert data. */
export interface IoTSecurityAggregatedAlertList {
/** List of aggregated alerts data. */
value: IoTSecurityAggregatedAlert[];
/**
* When there is too much alert data for one page, use this URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface IoTSecurityAggregatedAlertPropertiesTopDevicesListItem {
/**
* Name of the device.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly deviceId?: string;
/**
* Number of alerts raised for this device.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly alertsCount?: number;
/**
* Most recent time this alert was raised for this device, on this day.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly lastOccurrence?: string;
}
/** List of IoT Security solution aggregated recommendations. */
export interface IoTSecurityAggregatedRecommendationList {
/** List of aggregated recommendations data. */
value: IoTSecurityAggregatedRecommendation[];
/**
* When there is too much alert data for one page, use this URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of locations where ASC saves your data */
export interface AscLocationList {
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly value?: AscLocation[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of possible operations for Microsoft.Security resource provider */
export interface OperationList {
/** List of Security operations */
value?: Operation[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** Possible operation in the REST API of Microsoft.Security */
export interface Operation {
/**
* Name of the operation
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly name?: string;
/**
* Where the operation is originated
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly origin?: string;
/** Security operation display */
display?: OperationDisplay;
}
/** Security operation display */
export interface OperationDisplay {
/**
* The resource provider for the operation.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly provider?: string;
/**
* The display name of the resource the operation applies to.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly resource?: string;
/**
* The display name of the security operation.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly operation?: string;
/**
* The description of the operation.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly description?: string;
}
/** List of security task recommendations */
export interface SecurityTaskList {
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly value?: SecurityTask[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** Changing set of properties, depending on the task type that is derived from the name field */
export interface SecurityTaskParameters {
/** Describes unknown properties. The value of an unknown property can be of "any" type. */
[property: string]: any;
/**
* Name of the task type
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly name?: string;
}
/** List of all the auto provisioning settings response */
export interface AutoProvisioningSettingList {
/** List of all the auto provisioning settings */
value?: AutoProvisioningSetting[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of Compliance objects response */
export interface ComplianceList {
/** List of Compliance objects */
value?: Compliance[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** A segment of a compliance assessment. */
export interface ComplianceSegment {
/**
* The segment type, e.g. compliant, non-compliance, insufficient coverage, N/A, etc.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly segmentType?: string;
/**
* The size (%) of the segment.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly percentage?: number;
}
/** The sensitivity label. */
export interface SensitivityLabel {
/** The name of the sensitivity label. */
displayName?: string;
/** The description of the sensitivity label. */
description?: string;
/** The rank of the sensitivity label. */
rank?: Rank;
/** The order of the sensitivity label. */
order?: number;
/** Indicates whether the label is enabled or not. */
enabled?: boolean;
}
/** The information type. */
export interface InformationType {
/** The name of the information type. */
displayName?: string;
/** The description of the information type. */
description?: string;
/** The order of the information type. */
order?: number;
/** The recommended label id to be associated with this information type. */
recommendedLabelId?: string;
/** Indicates whether the information type is enabled or not. */
enabled?: boolean;
/** Indicates whether the information type is custom or not. */
custom?: boolean;
/** The information type keywords. */
keywords?: InformationProtectionKeyword[];
}
/** The information type keyword. */
export interface InformationProtectionKeyword {
/** The keyword pattern. */
pattern?: string;
/** Indicates whether the keyword is custom or not. */
custom?: boolean;
/** Indicates whether the keyword can be applied on numeric types or not. */
canBeNumeric?: boolean;
/** Indicates whether the keyword is excluded or not. */
excluded?: boolean;
}
/** Information protection policies response. */
export interface InformationProtectionPolicyList {
/** List of information protection policies. */
value?: InformationProtectionPolicy[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of security contacts response */
export interface SecurityContactList {
/**
* List of security contacts
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: SecurityContact[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of workspace settings response */
export interface WorkspaceSettingList {
/** List of workspace settings */
value: WorkspaceSetting[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of regulatory compliance standards response */
export interface RegulatoryComplianceStandardList {
value: RegulatoryComplianceStandard[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of regulatory compliance controls response */
export interface RegulatoryComplianceControlList {
/** List of regulatory compliance controls */
value: RegulatoryComplianceControl[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of regulatory compliance assessment response */
export interface RegulatoryComplianceAssessmentList {
value: RegulatoryComplianceAssessment[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of security sub-assessments */
export interface SecuritySubAssessmentList {
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly value?: SecuritySubAssessment[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** Status of the sub-assessment */
export interface SubAssessmentStatus {
/**
* Programmatic code for the status of the assessment
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly code?: SubAssessmentStatusCode;
/**
* Programmatic code for the cause of the assessment status
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly cause?: string;
/**
* Human readable description of the assessment status
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly description?: string;
/**
* The sub-assessment severity level
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly severity?: Severity;
}
/** Details of the resource that was assessed */
export interface ResourceDetails {
/** Polymorphic discriminator, which specifies the different types this object can be */
source: "Azure" | "OnPremise" | "OnPremiseSql";
}
/** Details of the sub-assessment */
export interface AdditionalData {
/** Polymorphic discriminator, which specifies the different types this object can be */
assessedResourceType:
| "SqlServerVulnerability"
| "ContainerRegistryVulnerability"
| "ServerVulnerabilityAssessment";
}
/** List of security automations response. */
export interface AutomationList {
/** The list of security automations under the given scope. */
value: Automation[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** A single automation scope. */
export interface AutomationScope {
/** The resources scope description. */
description?: string;
/** The resources scope path. Can be the subscription on which the automation is defined on or a resource group under that subscription (fully qualified Azure resource IDs). */
scopePath?: string;
}
/** The source event types which evaluate the security automation set of rules. For example - security alerts and security assessments. To learn more about the supported security events data models schemas - please visit https://aka.ms/ASCAutomationSchemas. */
export interface AutomationSource {
/** A valid event source type. */
eventSource?: EventSource;
/** A set of rules which evaluate upon event interception. A logical disjunction is applied between defined rule sets (logical 'or'). */
ruleSets?: AutomationRuleSet[];
}
/** A rule set which evaluates all its rules upon an event interception. Only when all the included rules in the rule set will be evaluated as 'true', will the event trigger the defined actions. */
export interface AutomationRuleSet {
rules?: AutomationTriggeringRule[];
}
/** A rule which is evaluated upon event interception. The rule is configured by comparing a specific value from the event model to an expected value. This comparison is done by using one of the supported operators set. */
export interface AutomationTriggeringRule {
/** The JPath of the entity model property that should be checked. */
propertyJPath?: string;
/** The data type of the compared operands (string, integer, floating point number or a boolean [true/false]] */
propertyType?: PropertyType;
/** The expected value. */
expectedValue?: string;
/** A valid comparer operator to use. A case-insensitive comparison will be applied for String PropertyType. */
operator?: Operator;
}
/** The action that should be triggered. */
export interface AutomationAction {
/** Polymorphic discriminator, which specifies the different types this object can be */
actionType: "LogicApp" | "EventHub" | "Workspace";
}
/** Describes an Azure resource with location */
export interface AzureTrackedResourceLocation {
/** Location where the resource is stored */
location?: string;
}
/** Describes an Azure resource with kind */
export interface KindAutoGenerated {
/** Kind of the resource */
kind?: string;
}
/** Entity tag is used for comparing two or more entities from the same requested resource. */
export interface ETag {
/** Entity tag is used for comparing two or more entities from the same requested resource. */
etag?: string;
}
/** A list of key value pairs that describe the resource. */
export interface Tags {
/** A list of key value pairs that describe the resource. */
tags?: { [propertyName: string]: string };
}
/** The security automation model state property bag. */
export interface AutomationValidationStatus {
/** Indicates whether the model is valid or not. */
isValid?: boolean;
/** The validation message. */
message?: string;
}
/** Suppression rules list for subscription. */
export interface AlertsSuppressionRulesList {
value: AlertsSuppressionRule[];
/**
* URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface SuppressionAlertsScope {
/** All the conditions inside need to be true in order to suppress the alert */
allOf: ScopeElement[];
}
/** A more specific scope used to identify the alerts to suppress. */
export interface ScopeElement {
/** Describes unknown properties. The value of an unknown property can be of "any" type. */
[property: string]: any;
/** The alert entity type to suppress by. */
field?: string;
}
/** List of server vulnerability assessments */
export interface ServerVulnerabilityAssessmentsList {
value?: ServerVulnerabilityAssessment[];
}
/** List of security assessment metadata */
export interface SecurityAssessmentMetadataResponseList {
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly value?: SecurityAssessmentMetadataResponse[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface SecurityAssessmentMetadataPropertiesResponsePublishDates {
ga?: string;
public: string;
}
/** Describes properties of an assessment metadata. */
export interface SecurityAssessmentMetadataProperties {
/** User friendly display name of the assessment */
displayName: string;
/**
* Azure resource ID of the policy definition that turns this assessment calculation on
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly policyDefinitionId?: string;
/** Human readable description of the assessment */
description?: string;
/** Human readable description of what you should do to mitigate this security issue */
remediationDescription?: string;
categories?: Categories[];
/** The severity level of the assessment */
severity: Severity;
/** The user impact of the assessment */
userImpact?: UserImpact;
/** The implementation effort required to remediate this assessment */
implementationEffort?: ImplementationEffort;
threats?: Threats[];
/** True if this assessment is in preview release status */
preview?: boolean;
/** BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition */
assessmentType: AssessmentType;
/** Describes the partner that created the assessment */
partnerData?: SecurityAssessmentMetadataPartnerData;
}
/** Describes the partner that created the assessment */
export interface SecurityAssessmentMetadataPartnerData {
/** Name of the company of the partner */
partnerName: string;
/** Name of the product of the partner that created the assessment */
productName?: string;
/** Secret to authenticate the partner and verify it created the assessment - write only */
secret: string;
}
/** Page of a security assessments list */
export interface SecurityAssessmentList {
/**
* Collection of security assessments in this page
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: SecurityAssessmentResponse[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** The result of the assessment */
export interface AssessmentStatus {
/** Programmatic code for the status of the assessment */
code: AssessmentStatusCode;
/** Programmatic code for the cause of the assessment status */
cause?: string;
/** Human readable description of the assessment status */
description?: string;
}
/** Describes properties of an assessment. */
export interface SecurityAssessmentPropertiesBase {
/** Details of the resource that was assessed */
resourceDetails: ResourceDetailsUnion;
/**
* User friendly display name of the assessment
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly displayName?: string;
/** Additional data regarding the assessment */
additionalData?: { [propertyName: string]: string };
/**
* Links relevant to the assessment
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly links?: AssessmentLinks;
/** Describes properties of an assessment metadata. */
metadata?: SecurityAssessmentMetadataProperties;
/** Data regarding 3rd party partner integration */
partnersData?: SecurityAssessmentPartnerData;
}
/** Links relevant to the assessment */
export interface AssessmentLinks {
/**
* Link to assessment in Azure Portal
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly azurePortalUri?: string;
}
/** Data regarding 3rd party partner integration */
export interface SecurityAssessmentPartnerData {
/** Name of the company of the partner */
partnerName: string;
/** secret to authenticate the partner - write only */
secret: string;
}
/** Represents a list of machine groups and set of rules that are recommended by Azure Security Center to be allowed */
export interface AdaptiveApplicationControlGroups {
value?: AdaptiveApplicationControlGroup[];
}
/** The protection mode of the collection/file types. Exe/Msi/Script are used for Windows, Executable is used for Linux. */
export interface ProtectionMode {
/** The application control policy enforcement/protection mode of the machine group */
exe?: EnforcementMode;
/** The application control policy enforcement/protection mode of the machine group */
msi?: EnforcementMode;
/** The application control policy enforcement/protection mode of the machine group */
script?: EnforcementMode;
/** The application control policy enforcement/protection mode of the machine group */
executable?: EnforcementMode;
}
/** Represents a summary of the alerts of the machine group */
export interface AdaptiveApplicationControlIssueSummary {
/** An alert that machines within a group can have */
issue?: AdaptiveApplicationControlIssue;
/** The number of machines in the group that have this alert */
numberOfVms?: number;
}
/** Represents a machine that is part of a machine group */
export interface VmRecommendation {
/** The configuration status of the machines group or machine or rule */
configurationStatus?: ConfigurationStatus;
/** The recommendation action of the machine or rule */
recommendationAction?: RecommendationAction;
/** The full resource id of the machine */
resourceId?: string;
/** The machine supportability of Enforce feature */
enforcementSupport?: EnforcementSupport;
}
/** Represents a path that is recommended to be allowed and its properties */
export interface PathRecommendation {
/** The full path of the file, or an identifier of the application */
path?: string;
/** The recommendation action of the machine or rule */
action?: RecommendationAction;
/** The type of IoT Security recommendation. */
type?: RecommendationType;
/** Represents the publisher information of a process/rule */
publisherInfo?: PublisherInfo;
/** Whether the application is commonly run on the machine */
common?: boolean;
userSids?: string[];
usernames?: UserRecommendation[];
/** The type of the file (for Linux files - Executable is used) */
fileType?: FileType;
/** The configuration status of the machines group or machine or rule */
configurationStatus?: ConfigurationStatus;
}
/** Represents the publisher information of a process/rule */
export interface PublisherInfo {
/** The Subject field of the x.509 certificate used to sign the code, using the following fields - O = Organization, L = Locality, S = State or Province, and C = Country */
publisherName?: string;
/** The product name taken from the file's version resource */
productName?: string;
/** The "OriginalName" field taken from the file's version resource */
binaryName?: string;
/** The binary file version taken from the file's version resource */
version?: string;
}
/** Represents a user that is recommended to be allowed for a certain rule */
export interface UserRecommendation {
/** Represents a user that is recommended to be allowed for a certain rule */
username?: string;
/** The recommendation action of the machine or rule */
recommendationAction?: RecommendationAction;
}
/** Describes an Azure resource with location */
export interface Location {
/**
* Location where the resource is stored
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly location?: string;
}
/** Response for ListAdaptiveNetworkHardenings API service call */
export interface AdaptiveNetworkHardeningsList {
/** A list of Adaptive Network Hardenings resources */
value?: AdaptiveNetworkHardening[];
/** The URL to get the next set of results */
nextLink?: string;
}
/** Describes remote addresses that is recommended to communicate with the Azure resource on some (Protocol, Port, Direction). All other remote addresses are recommended to be blocked */
export interface Rule {
/** The name of the rule */
name?: string;
/** The rule's direction */
direction?: Direction;
/** The rule's destination port */
destinationPort?: number;
/** The rule's transport protocols */
protocols?: TransportProtocol[];
/** The remote IP addresses that should be able to communicate with the Azure resource on the rule's destination port and protocol */
ipAddresses?: string[];
}
/** Describes the Network Security Groups effective on a network interface */
export interface EffectiveNetworkSecurityGroups {
/** The Azure resource ID of the network interface */
networkInterface?: string;
/** The Network Security Groups effective on the network interface */
networkSecurityGroups?: string[];
}
export interface AdaptiveNetworkHardeningEnforceRequest {
/** The rules to enforce */
rules: Rule[];
/** The Azure resource IDs of the effective network security groups that will be updated with the created security rules from the Adaptive Network Hardening rules */
networkSecurityGroups: string[];
}
/** List of all possible traffic between Azure resources */
export interface AllowedConnectionsList {
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly value?: AllowedConnectionsResource[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** Describes the allowed inbound and outbound traffic of an Azure resource */
export interface ConnectableResource {
/**
* The Azure resource id
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly id?: string;
/**
* The list of Azure resources that the resource has inbound allowed connection from
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly inboundConnectedResources?: ConnectedResource[];
/**
* The list of Azure resources that the resource has outbound allowed connection to
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly outboundConnectedResources?: ConnectedResource[];
}
/** Describes properties of a connected resource */
export interface ConnectedResource {
/**
* The Azure resource id of the connected resource
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly connectedResourceId?: string;
/**
* The allowed tcp ports
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly tcpPorts?: string;
/**
* The allowed udp ports
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly udpPorts?: string;
}
export interface TopologyList {
/** NOTE: This property will not be serialized. It can only be populated by the server. */
readonly value?: TopologyResource[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface TopologySingleResource {
/**
* Azure resource id
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly resourceId?: string;
/**
* The security severity of the resource
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly severity?: string;
/**
* Indicates if the resource has security recommendations
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly recommendationsExist?: boolean;
/**
* Indicates the resource connectivity level to the Internet (InternetFacing, Internal ,etc.)
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly networkZones?: string;
/**
* Score of the resource based on its security severity
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly topologyScore?: number;
/**
* The location of this resource
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly location?: string;
/**
* Azure resources connected to this resource which are in higher level in the topology view
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly parents?: TopologySingleResourceParent[];
/**
* Azure resources connected to this resource which are in lower level in the topology view
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly children?: TopologySingleResourceChild[];
}
export interface TopologySingleResourceParent {
/**
* Azure resource id which serves as parent resource in topology view
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly resourceId?: string;
}
export interface TopologySingleResourceChild {
/**
* Azure resource id which serves as child resource in topology view
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly resourceId?: string;
}
export interface JitNetworkAccessPoliciesList {
value?: JitNetworkAccessPolicy[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface JitNetworkAccessPolicyVirtualMachine {
/** Resource ID of the virtual machine that is linked to this policy */
id: string;
/** Port configurations for the virtual machine */
ports: JitNetworkAccessPortRule[];
/** Public IP address of the Azure Firewall that is linked to this policy, if applicable */
publicIpAddress?: string;
}
export interface JitNetworkAccessPortRule {
number: number;
protocol: Protocol;
/** Mutually exclusive with the "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example "192.168.0.3" or "192.168.0.0/16". */
allowedSourceAddressPrefix?: string;
/** Mutually exclusive with the "allowedSourceAddressPrefix" parameter. */
allowedSourceAddressPrefixes?: string[];
/** Maximum duration requests can be made for. In ISO 8601 duration format. Minimum 5 minutes, maximum 1 day */
maxRequestAccessDuration: string;
}
export interface JitNetworkAccessRequest {
virtualMachines: JitNetworkAccessRequestVirtualMachine[];
/** The start time of the request in UTC */
startTimeUtc: Date;
/** The identity of the person who made the request */
requestor: string;
/** The justification for making the initiate request */
justification?: string;
}
export interface JitNetworkAccessRequestVirtualMachine {
/** Resource ID of the virtual machine that is linked to this policy */
id: string;
/** The ports that were opened for the virtual machine */
ports: JitNetworkAccessRequestPort[];
}
export interface JitNetworkAccessRequestPort {
number: number;
/** Mutually exclusive with the "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example "192.168.0.3" or "192.168.0.0/16". */
allowedSourceAddressPrefix?: string;
/** Mutually exclusive with the "allowedSourceAddressPrefix" parameter. */
allowedSourceAddressPrefixes?: string[];
/** The date & time at which the request ends in UTC */
endTimeUtc: Date;
/** The status of the port */
status: Status;
/** A description of why the `status` has its value */
statusReason: StatusReason;
/** The port which is mapped to this port's `number` in the Azure Firewall, if applicable */
mappedPort?: number;
}
export interface JitNetworkAccessPolicyInitiateRequest {
/** A list of virtual machines & ports to open access for */
virtualMachines: JitNetworkAccessPolicyInitiateVirtualMachine[];
/** The justification for making the initiate request */
justification?: string;
}
export interface JitNetworkAccessPolicyInitiateVirtualMachine {
/** Resource ID of the virtual machine that is linked to this policy */
id: string;
/** The ports to open for the resource with the `id` */
ports: JitNetworkAccessPolicyInitiatePort[];
}
export interface JitNetworkAccessPolicyInitiatePort {
number: number;
/** Source of the allowed traffic. If omitted, the request will be for the source IP address of the initiate request. */
allowedSourceAddressPrefix?: string;
/** The time to close the request in UTC */
endTimeUtc: Date;
}
export interface DiscoveredSecuritySolutionList {
value?: DiscoveredSecuritySolution[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface SecuritySolutionsReferenceDataList {
value?: SecuritySolutionsReferenceData[];
}
export interface ExternalSecuritySolutionList {
value?: ExternalSecuritySolutionUnion[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** Describes an Azure resource with kind */
export interface ExternalSecuritySolutionKindAutoGenerated {
/** The kind of the external solution */
kind?: ExternalSecuritySolutionKind;
}
/** List of secure scores */
export interface SecureScoresList {
/**
* Collection of secure scores in this page
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: SecureScoreItem[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** List of security controls */
export interface SecureScoreControlList {
/**
* Collection of security controls in this page
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: SecureScoreControlDetails[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** The type of the security control (For example, BuiltIn) */
export interface SecureScoreControlDefinitionSource {
/** The type of security control (for example, BuiltIn) */
sourceType?: ControlType;
}
/** Describes an Azure resource with kind */
export interface AzureResourceLink {
/**
* Azure resource Id
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly id?: string;
}
/** List of security controls definition */
export interface SecureScoreControlDefinitionList {
/**
* Collection of security controls definition in this page
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly value?: SecureScoreControlDefinitionItem[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
export interface SecuritySolutionList {
value?: SecuritySolution[];
/**
* The URI to fetch the next page.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly nextLink?: string;
}
/** For a subscription, list of all cloud account connectors and their settings */
export interface ConnectorSettingList {
/** List of all the cloud account connector settings */
value?: ConnectorSetting[];
/**
* The URI to fetch the next page.
* NOTE: This property will n