diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index bca47feb5b5c..7f4011a1aa71 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -3807,7 +3807,7 @@ packages: dependencies: semver: 7.3.8 shelljs: 0.8.5 - typescript: 5.0.0-dev.20230128 + typescript: 5.0.0-dev.20230130 dev: false /downlevel-dts/0.7.0: @@ -8653,8 +8653,8 @@ packages: hasBin: true dev: false - /typescript/5.0.0-dev.20230128: - resolution: {integrity: sha512-oos2fAiWy4+bCwSKXn56TsFz0vasZJ0uQR5FxXDUmi9y4+TDxUUZXpIVv3E6RKFz4ee0ndvMOwTjpnb2WE2gpw==} + /typescript/5.0.0-dev.20230130: + resolution: {integrity: sha512-4zmbh58Vt3HDAD0AvHr1ccmAkKKODriYMNajcSzUylVgXCXrNGTJOReMp54GBs67KfQFaLOpVZlLrlD2FKn9Kg==} engines: {node: '>=4.2.0'} hasBin: true dev: false @@ -14306,7 +14306,7 @@ packages: dev: false file:projects/arm-securityinsight.tgz: - resolution: {integrity: sha512-d8udKrcyGW4OyfXv0psVKzVXVerBuD302uh5OHItbwtda6rWaVw7cyzSJKKnz2tAUeGy5UDqpWJoJ6Ai2ivexw==, tarball: file:projects/arm-securityinsight.tgz} + resolution: {integrity: sha512-rQhiJTl5w7atrsTjMkE5GK/EBbcqmME0Xm0L/O4/lWl+hE/vXIBfggL/PRiqkQepoPUlutqxXAAcWdNu0FSijw==, tarball: file:projects/arm-securityinsight.tgz} name: '@rush-temp/arm-securityinsight' version: 0.0.0 dependencies: @@ -14317,18 +14317,18 @@ packages: '@rollup/plugin-multi-entry': 4.1.0_rollup@2.79.1 '@rollup/plugin-node-resolve': 13.3.0_rollup@2.79.1 '@types/chai': 4.3.4 + '@types/node': 14.18.36 chai: 4.3.7 cross-env: 7.0.3 mkdirp: 1.0.4 mocha: 7.2.0 rimraf: 3.0.2 rollup: 2.79.1 - rollup-plugin-sourcemaps: 0.6.3_rollup@2.79.1 + rollup-plugin-sourcemaps: 0.6.3_p2gydaekoyjvl5wd3ixslt7iq4 tslib: 2.5.0 - typescript: 4.6.4 + typescript: 4.8.4 uglify-js: 3.17.4 transitivePeerDependencies: - - '@types/node' - supports-color dev: false diff --git a/sdk/securityinsight/arm-securityinsight/LICENSE b/sdk/securityinsight/arm-securityinsight/LICENSE index 5d1d36e0af80..3a1d9b6f24f7 100644 --- a/sdk/securityinsight/arm-securityinsight/LICENSE +++ b/sdk/securityinsight/arm-securityinsight/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2022 Microsoft +Copyright (c) 2023 Microsoft Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/sdk/securityinsight/arm-securityinsight/README.md b/sdk/securityinsight/arm-securityinsight/README.md index 7181392099b1..d4b3978f58fa 100644 --- a/sdk/securityinsight/arm-securityinsight/README.md +++ b/sdk/securityinsight/arm-securityinsight/README.md @@ -13,7 +13,7 @@ API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provi ### Currently supported environments -- [LTS versions of Node.js](https://nodejs.org/about/releases/) +- [LTS versions of Node.js](https://github.com/nodejs/release#release-schedule) - Latest versions of Safari, Chrome, Edge and Firefox. See our [support policy](https://github.com/Azure/azure-sdk-for-js/blob/main/SUPPORT.md) for more details. diff --git a/sdk/securityinsight/arm-securityinsight/_meta.json b/sdk/securityinsight/arm-securityinsight/_meta.json index efd1ec43a862..82c68440f1fa 100644 --- a/sdk/securityinsight/arm-securityinsight/_meta.json +++ b/sdk/securityinsight/arm-securityinsight/_meta.json @@ -1,8 +1,8 @@ { - "commit": "b41f929626289b59e31be8a1091c99994864b096", + "commit": "d05158e54e1f9c22cf2f52b64d9e2ddccc7105fe", "readme": "specification/securityinsights/resource-manager/readme.md", - "autorest_command": "autorest --version=3.8.4 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=D:\\Git\\azure-sdk-for-js ..\\azure-rest-api-specs\\specification\\securityinsights\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-rc.1.20220727.1 --generate-sample=true", + "autorest_command": "autorest --version=3.9.3 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-js ../azure-rest-api-specs/specification/securityinsights/resource-manager/readme.md --use=@autorest/typescript@6.0.0-rc.5", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.4.2", - "use": "@autorest/typescript@6.0.0-rc.1.20220727.1" + "release_tool": "@azure-tools/js-sdk-release-tools@2.6.0", + "use": "@autorest/typescript@6.0.0-rc.5" } \ No newline at end of file diff --git a/sdk/securityinsight/arm-securityinsight/package.json b/sdk/securityinsight/arm-securityinsight/package.json index 9a999cddda13..1a031da9dfd1 100644 --- a/sdk/securityinsight/arm-securityinsight/package.json +++ b/sdk/securityinsight/arm-securityinsight/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for SecurityInsights.", - "version": "1.0.0-beta.6", + "version": "1.0.0-beta.1", "engines": { "node": ">=14.0.0" }, @@ -11,7 +11,7 @@ "@azure/core-lro": "^2.2.0", "@azure/abort-controller": "^1.0.0", "@azure/core-paging": "^1.2.0", - "@azure/core-client": "^1.5.0", + "@azure/core-client": "^1.6.1", "@azure/core-auth": "^1.3.0", "@azure/core-rest-pipeline": "^1.8.0", "tslib": "^2.2.0" @@ -36,7 +36,7 @@ "mkdirp": "^1.0.4", "rollup": "^2.66.1", "rollup-plugin-sourcemaps": "^0.6.3", - "typescript": "~4.6.0", + "typescript": "~4.8.0", "uglify-js": "^3.4.9", "rimraf": "^3.0.0", "@azure/identity": "^2.0.1", @@ -46,6 +46,7 @@ "@types/chai": "^4.2.8", "chai": "^4.2.0", "cross-env": "^7.0.2", + "@types/node": "^14.0.0", "@azure/dev-tool": "^1.0.0" }, "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/securityinsight/arm-securityinsight", @@ -109,13 +110,5 @@ } ] }, - "autoPublish": true, - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-securityinsight?view=azure-node-preview" - } -} + "autoPublish": true +} \ No newline at end of file diff --git a/sdk/securityinsight/arm-securityinsight/src/index.ts b/sdk/securityinsight/arm-securityinsight/src/index.ts index 50cc92ce15d9..6a27d560aabf 100644 --- a/sdk/securityinsight/arm-securityinsight/src/index.ts +++ b/sdk/securityinsight/arm-securityinsight/src/index.ts @@ -7,6 +7,7 @@ */ /// +export { getContinuationToken } from "./pagingHelper"; export * from "./models"; export { SecurityInsights } from "./securityInsights"; export * from "./operationsInterfaces"; diff --git a/sdk/securityinsight/arm-securityinsight/src/models/index.ts b/sdk/securityinsight/arm-securityinsight/src/models/index.ts index 0ce7824a0d80..ab75bd71b6bf 100644 --- a/sdk/securityinsight/arm-securityinsight/src/models/index.ts +++ b/sdk/securityinsight/arm-securityinsight/src/models/index.ts @@ -17,6 +17,7 @@ export type AutomationRuleConditionUnion = | PropertyConditionProperties; export type AutomationRuleActionUnion = | AutomationRuleAction + | AutomationRuleAddIncidentTaskAction | AutomationRuleModifyPropertiesAction | AutomationRuleRunPlaybookAction; export type EntityTimelineItemUnion = @@ -40,6 +41,7 @@ export type DataConnectorsCheckRequirementsUnion = | MtpCheckRequirements | OfficeATPCheckRequirements | OfficeIRMCheckRequirements + | MicrosoftPurviewInformationProtectionCheckRequirements | Office365ProjectCheckRequirements | OfficePowerBICheckRequirements | TICheckRequirements @@ -119,6 +121,7 @@ export type DataConnectorUnion = | McasDataConnector | Dynamics365DataConnector | OfficeATPDataConnector + | MicrosoftPurviewInformationProtectionDataConnector | Office365ProjectDataConnector | OfficePowerBIDataConnector | OfficeIRMDataConnector @@ -229,6 +232,18 @@ export interface AlertRuleTemplatesList { value: AlertRuleTemplateUnion[]; } +/** The triggered analytics rule run array */ +export interface TriggeredAnalyticsRuleRuns { + value: TriggeredAnalyticsRuleRun[]; + /** NOTE: This property will not be serialized. It can only be populated by the server. */ + readonly nextLink?: string; +} + +/** Analytics Rule Run Trigger request */ +export interface AnalyticsRuleRunTrigger { + executionTimeUtc: Date; +} + /** Describes automation rule triggering logic. */ export interface AutomationRuleTriggeringLogic { /** Determines whether the automation rule is enabled or disabled. */ @@ -255,7 +270,7 @@ export interface AutomationRuleCondition { /** Describes an automation rule action. */ export interface AutomationRuleAction { /** Polymorphic discriminator, which specifies the different types this object can be */ - actionType: "ModifyProperties" | "RunPlaybook"; + actionType: "AddIncidentTask" | "ModifyProperties" | "RunPlaybook"; order: number; } @@ -559,7 +574,7 @@ export interface EntityEdges { /** The target entity Id. */ targetEntityId?: string; /** A bag of custom fields that should be part of the entity and will be presented to the user. */ - additionalData?: { [propertyName: string]: Record }; + additionalData?: { [propertyName: string]: any }; } /** The parameters required to execute s timeline operation on the given entity. */ @@ -776,13 +791,37 @@ export interface ValidationError { /** List all the incidents. */ export interface IncidentList { + value: Incident[]; /** * URL to fetch the next set of incidents. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; - /** Array of incidents. */ - value: Incident[]; +} + +/** Information on the user an incident is assigned to */ +export interface IncidentOwnerInfo { + /** The email of the user the incident is assigned to. */ + email?: string; + /** The name of the user the incident is assigned to. */ + assignedTo?: string; + /** The object id of the user the incident is assigned to. */ + objectId?: string; + /** The user principal name of the user the incident is assigned to. */ + userPrincipalName?: string; + /** The type of the owner the incident is assigned to. */ + ownerType?: OwnerType; +} + +/** Represents an incident label */ +export interface IncidentLabel { + /** The name of the label */ + labelName: string; + /** + * The type of the label + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly labelType?: IncidentLabelType; } /** Incident additional data property bag. */ @@ -807,46 +846,21 @@ export interface IncidentAdditionalData { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly alertProductNames?: string[]; - /** - * The provider incident url to the incident in Microsoft 365 Defender portal - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly providerIncidentUrl?: string; /** * The tactics associated with incident * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly tactics?: AttackTactic[]; /** - * The techniques associated with incident's tactics' + * The techniques associated with incident's tactics * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly techniques?: string[]; -} - -/** Represents an incident label */ -export interface IncidentLabel { - /** The name of the label */ - labelName: string; /** - * The type of the label + * The provider incident url to the incident in Microsoft 365 Defender portal * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly labelType?: IncidentLabelType; -} - -/** Information on the user an incident is assigned to */ -export interface IncidentOwnerInfo { - /** The email of the user the incident is assigned to. */ - email?: string; - /** The name of the user the incident is assigned to. */ - assignedTo?: string; - /** The object id of the user the incident is assigned to. */ - objectId?: string; - /** The user principal name of the user the incident is assigned to. */ - userPrincipalName?: string; - /** The type of the owner the incident is assigned to. */ - ownerType?: OwnerType; + readonly providerIncidentUrl?: string; } /** Describes team information */ @@ -878,18 +892,6 @@ export interface TeamInformation { readonly description?: string; } -/** Describes team properties */ -export interface TeamProperties { - /** The name of the team */ - teamName: string; - /** The description of the team */ - teamDescription?: string; - /** List of member IDs to add to the team */ - memberIds?: string[]; - /** List of group IDs to add their members to the team */ - groupIds?: string[]; -} - /** List of incident alerts. */ export interface IncidentAlertList { /** Array of incident alerts. */ @@ -916,7 +918,7 @@ export interface EntityCommonProperties { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -930,15 +932,10 @@ export interface IncidentBookmarkList { value: HuntingBookmark[]; } -/** List of incident comments. */ export interface IncidentCommentList { - /** - * URL to fetch the next set of comments. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly nextLink?: string; - /** Array of comments. */ value: IncidentComment[]; + /** NOTE: This property will not be serialized. It can only be populated by the server. */ + readonly nextLink?: string; } /** The incident related entities response. */ @@ -951,10 +948,15 @@ export interface IncidentEntitiesResponse { /** Information of a specific aggregation in the incident related entities result. */ export interface IncidentEntitiesResultsMetadata { - /** Total number of aggregations of the given kind in the incident related entities result. */ - count: number; /** The kind of the aggregated entity. */ entityKind: EntityKind; + /** Total number of aggregations of the given kind in the incident related entities result. */ + count: number; +} + +export interface IncidentTaskList { + value?: IncidentTask[]; + nextLink?: string; } /** List of all the metadata. */ @@ -1041,6 +1043,90 @@ export interface SentinelOnboardingStatesList { value: SentinelOnboardingState[]; } +/** A list of recommendations */ +export interface RecommendationList { + /** An list of recommendations */ + value?: Recommendation[]; +} + +/** Recommendation object. */ +export interface Recommendation { + /** id of recommendation. */ + id: string; + /** Instructions of the recommendation. */ + instructions: Instructions; + /** Content of the recommendation. */ + content?: Content; + /** Id of the resource this recommendation refers to. */ + resourceId?: string; + /** Collection of additional properties for the recommendation. */ + additionalProperties?: { [propertyName: string]: string }; + /** Title of the recommendation. */ + title: string; + /** Description of the recommendation. */ + description: string; + /** Title of the recommendation type. */ + recommendationTypeTitle: string; + /** Id of the recommendation type. */ + recommendationTypeId: string; + /** Category of the recommendation. */ + category: Category; + /** Context of the recommendation. */ + context: Context; + /** Id of the workspace this recommendation refers to. */ + workspaceId: string; + /** List of actions to take for this recommendation. */ + actions: RecommendedAction[]; + /** State of the recommendation. */ + state: State; + /** Priority of the recommendation. */ + priority: Priority; + /** The time stamp (UTC) when the recommendation was last evaluated. */ + lastEvaluatedTimeUtc: Date; + /** The time stamp (UTC) when the recommendation should be displayed again. */ + hideUntilTimeUtc?: Date; + /** The timestamp (UTC) after which the recommendation should not be displayed anymore. */ + displayUntilTimeUtc?: Date; + /** Value indicating if the recommendation should be displayed or not. */ + visible?: boolean; +} + +/** Instructions section of a recommendation. */ +export interface Instructions { + /** What actions should be taken to complete the recommendation. */ + actionsToBePerformed: string; + /** Explains why the recommendation is important. */ + recommendationImportance: string; + /** How should the user complete the recommendation. */ + howToPerformActionDetails?: string; +} + +/** Content section of the recommendation. */ +export interface Content { + /** Title of the content. */ + title: string; + /** Description of the content. */ + description: string; +} + +/** What actions should be taken to complete the recommendation. */ +export interface RecommendedAction { + /** Text of the link to complete the action. */ + linkText: string; + /** The Link to complete the action. */ + linkUrl: string; + /** The state of the action. */ + state?: Priority; +} + +/** Recommendation Fields to update. */ +export interface RecommendationPatch { + /** State of the recommendation. */ + state?: State; + /** The time stamp (UTC) when the recommendation should be displayed again. */ + hideUntilTimeUtc?: Date; +} + /** List all the SecurityMLAnalyticsSettings */ export interface SecurityMLAnalyticsSettingsList { /** @@ -1381,6 +1467,7 @@ export interface DataConnectorsCheckRequirements { | "MicrosoftThreatProtection" | "OfficeATP" | "OfficeIRM" + | "MicrosoftPurviewInformationProtection" | "Office365Project" | "OfficePowerBI" | "ThreatIntelligence" @@ -1479,6 +1566,8 @@ export interface QueryBasedAlertRuleTemplateProperties { alertDetailsOverride?: AlertDetailsOverride; /** The event grouping settings. */ eventGroupingSettings?: EventGroupingSettings; + /** Array of the sentinel entity mappings of the alert rule */ + sentinelEntitiesMappings?: SentinelEntityMapping[]; } /** Single entity mapping for the alert rule */ @@ -1507,6 +1596,16 @@ export interface AlertDetailsOverride { alertTacticsColumnName?: string; /** the column name to take the alert severity from */ alertSeverityColumnName?: string; + /** List of additional dynamic properties to override */ + alertDynamicProperties?: AlertPropertyMapping[]; +} + +/** A single alert property mapping to override */ +export interface AlertPropertyMapping { + /** The V3 alert property */ + alertProperty?: AlertProperty; + /** the column name to use to override this property */ + value?: string; } /** Event grouping settings property bag. */ @@ -1515,6 +1614,12 @@ export interface EventGroupingSettings { aggregationKind?: EventGroupingAggregationKind; } +/** A single sentinel entity mapping */ +export interface SentinelEntityMapping { + /** the column name to be mapped to the SentinelEntities */ + columnName?: string; +} + /** Represents a supported source signal configuration in Fusion detection. */ export interface FusionSourceSettings { /** Determines whether this source signal is enabled or disabled in Fusion detection. */ @@ -1656,6 +1761,15 @@ export interface ScheduledAlertRuleCommonProperties { entityMappings?: EntityMapping[]; /** The alert details override settings */ alertDetailsOverride?: AlertDetailsOverride; + /** Array of the sentinel entity mappings of the alert rule */ + sentinelEntitiesMappings?: SentinelEntityMapping[]; +} + +export interface AddIncidentTaskActionProperties { + /** The title of the task. */ + title: string; + /** The description of the task. */ + description?: string; } export interface AutomationRuleBooleanCondition { @@ -1806,6 +1920,18 @@ export interface DataTypeDefinitions { dataType?: string; } +/** Describes team properties */ +export interface TeamProperties { + /** The name of the team */ + teamName: string; + /** The description of the team */ + teamDescription?: string; + /** List of group IDs to add their members to the team */ + groupIds?: string[]; + /** List of member IDs to add to the team */ + memberIds?: string[]; +} + /** security ml analytics settings data sources */ export interface SecurityMLAnalyticsSettingsDataSource { /** The connector id that provides the following data types */ @@ -1870,6 +1996,12 @@ export interface Dynamics365DataConnectorDataTypes { dynamics365CdsActivities: Dynamics365DataConnectorDataTypesDynamics365CdsActivities; } +/** The available data types for Microsoft Purview Information Protection data connector. */ +export interface MicrosoftPurviewInformationProtectionConnectorDataTypes { + /** Logs data type. */ + logs: MicrosoftPurviewInformationProtectionConnectorDataTypesLogs; +} + /** The available data types for Office Microsoft Project data connector. */ export interface Office365ProjectConnectorDataTypes { /** Logs data type. */ @@ -2352,6 +2484,14 @@ export interface PropertyConditionProperties extends AutomationRuleCondition { conditionProperties?: AutomationRulePropertyValuesCondition; } +/** Describes an automation rule action to add a task to an incident */ +export interface AutomationRuleAddIncidentTaskAction + extends AutomationRuleAction { + /** Polymorphic discriminator, which specifies the different types this object can be */ + actionType: "AddIncidentTask"; + actionConfiguration?: AddIncidentTaskActionProperties; +} + /** Describes an automation rule action to modify an object's properties */ export interface AutomationRuleModifyPropertiesAction extends AutomationRuleAction { @@ -2459,6 +2599,13 @@ export interface SecurityAlertTimelineItem extends EntityTimelineItem { timeGenerated: Date; /** The name of the alert type. */ alertType: string; + /** + * The intent of the alert. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly intent?: KillChainIntent; + /** The techniques of the alert. */ + techniques?: string[]; } /** Represents Insight Query. */ @@ -3563,6 +3710,15 @@ export interface OfficeIRMCheckRequirements tenantId?: string; } +/** Represents MicrosoftPurviewInformationProtection requirements check request. */ +export interface MicrosoftPurviewInformationProtectionCheckRequirements + extends DataConnectorsCheckRequirements { + /** Polymorphic discriminator, which specifies the different types this object can be */ + kind: "MicrosoftPurviewInformationProtection"; + /** The tenant id to connect to, and get the data from. */ + tenantId?: string; +} + /** Represents Office365 Project requirements check request. */ export interface Office365ProjectCheckRequirements extends DataConnectorsCheckRequirements { @@ -3735,6 +3891,10 @@ export interface OfficeATPCheckRequirementsProperties export interface OfficeIRMCheckRequirementsProperties extends DataConnectorTenantId {} +/** MicrosoftPurviewInformationProtection requirements check properties. */ +export interface MicrosoftPurviewInformationProtectionCheckRequirementsProperties + extends DataConnectorTenantId {} + /** Office365 Project requirements check properties. */ export interface Office365ProjectCheckRequirementsProperties extends DataConnectorTenantId {} @@ -3790,6 +3950,13 @@ export interface OfficeATPDataConnectorProperties extends DataConnectorTenantId, DataConnectorWithAlertsProperties {} +/** Microsoft Purview Information Protection data connector properties. */ +export interface MicrosoftPurviewInformationProtectionDataConnectorProperties + extends DataConnectorTenantId { + /** The available data types for the connector. */ + dataTypes: MicrosoftPurviewInformationProtectionConnectorDataTypes; +} + /** Office Microsoft Project data connector properties. */ export interface Office365ProjectDataConnectorProperties extends DataConnectorTenantId { @@ -3901,6 +4068,10 @@ export interface AwsS3DataConnectorDataTypesLogs export interface Dynamics365DataConnectorDataTypesDynamics365CdsActivities extends DataConnectorDataTypeCommon {} +/** Logs data type. */ +export interface MicrosoftPurviewInformationProtectionConnectorDataTypesLogs + extends DataConnectorDataTypeCommon {} + /** Logs data type. */ export interface Office365ProjectConnectorDataTypesLogs extends DataConnectorDataTypeCommon {} @@ -3974,6 +4145,17 @@ export interface ActionRequest extends ResourceWithEtag { triggerUri?: string; } +/** The triggered analytics rule run */ +export interface TriggeredAnalyticsRuleRun extends ResourceWithEtag { + executionTimeUtc: Date; + ruleId: string; + triggeredAnalyticsRuleRunId: string; + /** The triggered analytics rule run provisioning state */ + provisioningState: ProvisioningState; + /** Dictionary of */ + ruleRunAdditionalData?: { [propertyName: string]: any }; +} + export interface AutomationRule extends ResourceWithEtag { /** The display name of the automation rule. */ displayName: string; @@ -4074,70 +4256,71 @@ export interface CustomEntityQuery extends ResourceWithEtag { kind: CustomEntityQueryKind; } -/** Represents an incident in Azure Security Insights. */ export interface Incident extends ResourceWithEtag { - /** - * Additional data on the incident - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly additionalData?: IncidentAdditionalData; + /** The title of the incident */ + title?: string; + /** The description of the incident */ + description?: string; + /** The severity of the incident */ + severity?: IncidentSeverity; + /** The status of the incident */ + status?: IncidentStatus; /** The reason the incident was closed */ classification?: IncidentClassification; - /** Describes the reason the incident was closed */ - classificationComment?: string; /** The classification reason the incident was closed with */ classificationReason?: IncidentClassificationReason; + /** Describes the reason the incident was closed */ + classificationComment?: string; + /** Describes a user that the incident is assigned to */ + owner?: IncidentOwnerInfo; + /** List of labels relevant to this incident */ + labels?: IncidentLabel[]; + /** The time of the first activity in the incident */ + firstActivityTimeUtc?: Date; + /** The time of the last activity in the incident */ + lastActivityTimeUtc?: Date; /** - * The time the incident was created + * The last time the incident was updated * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly createdTimeUtc?: Date; - /** The description of the incident */ - description?: string; - /** The time of the first activity in the incident */ - firstActivityTimeUtc?: Date; + readonly lastModifiedTimeUtc?: Date; /** - * The deep-link url to the incident in Azure portal + * The time the incident was created * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly incidentUrl?: string; + readonly createdTimeUtc?: Date; /** * A sequential number * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly incidentNumber?: number; - /** List of labels relevant to this incident */ - labels?: IncidentLabel[]; - /** The name of the source provider that generated the incident */ - providerName?: string; - /** The incident ID assigned by the incident provider */ - providerIncidentId?: string; - /** The time of the last activity in the incident */ - lastActivityTimeUtc?: Date; /** - * The last time the incident was updated + * Additional data on the incident * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly lastModifiedTimeUtc?: Date; - /** Describes a user that the incident is assigned to */ - owner?: IncidentOwnerInfo; + readonly additionalData?: IncidentAdditionalData; /** * List of resource ids of Analytic rules related to the incident * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly relatedAnalyticRuleIds?: string[]; - /** The severity of the incident */ - severity?: IncidentSeverity; - /** The status of the incident */ - status?: IncidentStatus; + /** + * The deep-link url to the incident in Azure portal + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly incidentUrl?: string; + /** The name of the source provider that generated the incident */ + providerName?: string; + /** The incident ID assigned by the incident provider */ + providerIncidentId?: string; /** Describes a team for the incident */ teamInformation?: TeamInformation; - /** The title of the incident */ - title?: string; } /** Represents an incident comment */ export interface IncidentComment extends ResourceWithEtag { + /** The comment message */ + message?: string; /** * The time the comment was created * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4148,8 +4331,6 @@ export interface IncidentComment extends ResourceWithEtag { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly lastModifiedTimeUtc?: Date; - /** The comment message */ - message?: string; /** * Describes the client that created the comment * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4157,6 +4338,28 @@ export interface IncidentComment extends ResourceWithEtag { readonly author?: ClientInfo; } +export interface IncidentTask extends ResourceWithEtag { + /** The title of the task */ + title: string; + /** The description of the task */ + description?: string; + status: IncidentTaskStatus; + /** + * The time the task was created + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly createdTimeUtc?: Date; + /** + * The last time the task was updated + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly lastModifiedTimeUtc?: Date; + /** Information on the client (user or application) that made some action */ + createdBy?: ClientInfo; + /** Information on the client (user or application) that made some action */ + lastModifiedBy?: ClientInfo; +} + /** Metadata resource definition. */ export interface MetadataModel extends ResourceWithEtag { /** Static ID for the content. Used to identify dependencies and content from solutions or community. Hard-coded/static for out of the box content and solutions. Dynamic for user-created. This is the resource name */ @@ -4547,6 +4750,8 @@ export interface ScheduledAlertRuleTemplate extends AlertRuleTemplate { entityMappings?: EntityMapping[]; /** The alert details override settings */ alertDetailsOverride?: AlertDetailsOverride; + /** Array of the sentinel entity mappings of the alert rule */ + sentinelEntitiesMappings?: SentinelEntityMapping[]; } /** Represents NRT alert rule template. */ @@ -4591,6 +4796,8 @@ export interface NrtAlertRuleTemplate extends AlertRuleTemplate { alertDetailsOverride?: AlertDetailsOverride; /** The event grouping settings. */ eventGroupingSettings?: EventGroupingSettings; + /** Array of the sentinel entity mappings of the alert rule */ + sentinelEntitiesMappings?: SentinelEntityMapping[]; } /** Represents a security alert entity. */ @@ -4601,7 +4808,7 @@ export interface SecurityAlert extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4739,7 +4946,7 @@ export interface HuntingBookmark extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4777,7 +4984,7 @@ export interface AccountEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4853,7 +5060,7 @@ export interface AzureResourceEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4879,7 +5086,7 @@ export interface CloudApplicationEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4910,7 +5117,7 @@ export interface DnsEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4946,7 +5153,7 @@ export interface FileEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -4982,7 +5189,7 @@ export interface FileHashEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5008,7 +5215,7 @@ export interface HostEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5066,7 +5273,7 @@ export interface IoTDeviceEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5219,7 +5426,7 @@ export interface IpEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5250,7 +5457,7 @@ export interface MailboxEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5286,7 +5493,7 @@ export interface MailClusterEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5377,7 +5584,7 @@ export interface MailMessageEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5494,7 +5701,7 @@ export interface MalwareEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5530,7 +5737,7 @@ export interface ProcessEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5588,7 +5795,7 @@ export interface RegistryKeyEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5614,7 +5821,7 @@ export interface RegistryValueEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5650,7 +5857,7 @@ export interface SecurityGroupEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5681,7 +5888,7 @@ export interface SubmissionMailEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5747,7 +5954,7 @@ export interface UrlEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -5768,7 +5975,7 @@ export interface NicEntity extends Entity { * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -6004,6 +6211,8 @@ export interface ScheduledAlertRule extends AlertRule { entityMappings?: EntityMapping[]; /** The alert details override settings */ alertDetailsOverride?: AlertDetailsOverride; + /** Array of the sentinel entity mappings of the alert rule */ + sentinelEntitiesMappings?: SentinelEntityMapping[]; /** The Name of the alert rule template used to create this rule. */ alertRuleTemplateName?: string; /** The version of the alert rule template used to create this rule - in format , where all are numbers, for example 0 <1.0.2> */ @@ -6072,6 +6281,8 @@ export interface NrtAlertRule extends AlertRule { alertDetailsOverride?: AlertDetailsOverride; /** The event grouping settings. */ eventGroupingSettings?: EventGroupingSettings; + /** Array of the sentinel entity mappings of the alert rule */ + sentinelEntitiesMappings?: SentinelEntityMapping[]; } /** Represents Expansion entity query. */ @@ -6245,7 +6456,7 @@ export interface ThreatIntelligenceIndicatorModel * A bag of custom fields that should be part of the entity and will be presented to the user. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly additionalData?: { [propertyName: string]: Record }; + readonly additionalData?: { [propertyName: string]: any }; /** * The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -6413,6 +6624,17 @@ export interface OfficeATPDataConnector extends DataConnector { dataTypes?: AlertsDataTypeOfDataConnector; } +/** Represents Microsoft Purview Information Protection data connector. */ +export interface MicrosoftPurviewInformationProtectionDataConnector + extends DataConnector { + /** Polymorphic discriminator, which specifies the different types this object can be */ + kind: "MicrosoftPurviewInformationProtection"; + /** The tenant id to connect to, and get the data from. */ + tenantId?: string; + /** The available data types for the connector. */ + dataTypes?: MicrosoftPurviewInformationProtectionConnectorDataTypes; +} + /** Represents Office Microsoft Project data connector. */ export interface Office365ProjectDataConnector extends DataConnector { /** Polymorphic discriminator, which specifies the different types this object can be */ @@ -6529,6 +6751,11 @@ export interface CodelessApiPollingDataConnector extends DataConnector { pollingConfig?: CodelessConnectorPollingConfigProperties; } +/** Defines headers for AlertRule_triggerRuleRun operation. */ +export interface AlertRuleTriggerRuleRunHeaders { + location?: string; +} + /** Defines headers for Watchlists_delete operation. */ export interface WatchlistsDeleteHeaders { /** Contains the status URL on which clients are expected to poll the status of the delete operation. */ @@ -6595,6 +6822,33 @@ export enum KnownCreatedByType { */ export type CreatedByType = string; +/** Known values of {@link ProvisioningState} that the service accepts. */ +export enum KnownProvisioningState { + /** Accepted */ + Accepted = "Accepted", + /** InProgress */ + InProgress = "InProgress", + /** Succeeded */ + Succeeded = "Succeeded", + /** Failed */ + Failed = "Failed", + /** Canceled */ + Canceled = "Canceled" +} + +/** + * Defines values for ProvisioningState. \ + * {@link KnownProvisioningState} can be used interchangeably with ProvisioningState, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Accepted** \ + * **InProgress** \ + * **Succeeded** \ + * **Failed** \ + * **Canceled** + */ +export type ProvisioningState = string; + /** Known values of {@link TriggersOn} that the service accepts. */ export enum KnownTriggersOn { /** Trigger on Incidents */ @@ -6663,7 +6917,9 @@ export enum KnownActionType { /** Modify an object's properties */ ModifyProperties = "ModifyProperties", /** Run a playbook on an object */ - RunPlaybook = "RunPlaybook" + RunPlaybook = "RunPlaybook", + /** Add a task to an incident object */ + AddIncidentTask = "AddIncidentTask" } /** @@ -6672,7 +6928,8 @@ export enum KnownActionType { * this enum contains the known values that the service supports. * ### Known values supported by the service * **ModifyProperties**: Modify an object's properties \ - * **RunPlaybook**: Run a playbook on an object + * **RunPlaybook**: Run a playbook on an object \ + * **AddIncidentTask**: Add a task to an incident object */ export type ActionType = string; @@ -6916,8 +7173,8 @@ export enum KnownGetInsightsError { */ export type GetInsightsError = string; -/** Known values of {@link Enum13} that the service accepts. */ -export enum KnownEnum13 { +/** Known values of {@link Enum14} that the service accepts. */ +export enum KnownEnum14 { /** Expansion */ Expansion = "Expansion", /** Activity */ @@ -6925,14 +7182,14 @@ export enum KnownEnum13 { } /** - * Defines values for Enum13. \ - * {@link KnownEnum13} can be used interchangeably with Enum13, + * Defines values for Enum14. \ + * {@link KnownEnum14} can be used interchangeably with Enum14, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Expansion** \ * **Activity** */ -export type Enum13 = string; +export type Enum14 = string; /** Known values of {@link CustomEntityQueryKind} that the service accepts. */ export enum KnownCustomEntityQueryKind { @@ -7081,17 +7338,38 @@ export enum KnownFileImportState { */ export type FileImportState = string; -/** Known values of {@link IncidentClassification} that the service accepts. */ -export enum KnownIncidentClassification { - /** Incident classification was undetermined */ - Undetermined = "Undetermined", - /** Incident was true positive */ - TruePositive = "TruePositive", - /** Incident was benign positive */ - BenignPositive = "BenignPositive", - /** Incident was false positive */ - FalsePositive = "FalsePositive" -} +/** Known values of {@link IncidentStatus} that the service accepts. */ +export enum KnownIncidentStatus { + /** An active incident which isn't being handled currently */ + New = "New", + /** An active incident which is being handled */ + Active = "Active", + /** A non-active incident */ + Closed = "Closed" +} + +/** + * Defines values for IncidentStatus. \ + * {@link KnownIncidentStatus} can be used interchangeably with IncidentStatus, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **New**: An active incident which isn't being handled currently \ + * **Active**: An active incident which is being handled \ + * **Closed**: A non-active incident + */ +export type IncidentStatus = string; + +/** Known values of {@link IncidentClassification} that the service accepts. */ +export enum KnownIncidentClassification { + /** Incident classification was undetermined */ + Undetermined = "Undetermined", + /** Incident was true positive */ + TruePositive = "TruePositive", + /** Incident was benign positive */ + BenignPositive = "BenignPositive", + /** Incident was false positive */ + FalsePositive = "FalsePositive" +} /** * Defines values for IncidentClassification. \ @@ -7129,24 +7407,6 @@ export enum KnownIncidentClassificationReason { */ export type IncidentClassificationReason = string; -/** Known values of {@link IncidentLabelType} that the service accepts. */ -export enum KnownIncidentLabelType { - /** Label manually created by a user */ - User = "User", - /** Label automatically created by the system */ - AutoAssigned = "AutoAssigned" -} - -/** - * Defines values for IncidentLabelType. \ - * {@link KnownIncidentLabelType} can be used interchangeably with IncidentLabelType, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **User**: Label manually created by a user \ - * **AutoAssigned**: Label automatically created by the system - */ -export type IncidentLabelType = string; - /** Known values of {@link OwnerType} that the service accepts. */ export enum KnownOwnerType { /** The incident owner type is unknown */ @@ -7168,26 +7428,23 @@ export enum KnownOwnerType { */ export type OwnerType = string; -/** Known values of {@link IncidentStatus} that the service accepts. */ -export enum KnownIncidentStatus { - /** An active incident which isn't being handled currently */ - New = "New", - /** An active incident which is being handled */ - Active = "Active", - /** A non-active incident */ - Closed = "Closed" +/** Known values of {@link IncidentLabelType} that the service accepts. */ +export enum KnownIncidentLabelType { + /** Label manually created by a user */ + User = "User", + /** Label automatically created by the system */ + AutoAssigned = "AutoAssigned" } /** - * Defines values for IncidentStatus. \ - * {@link KnownIncidentStatus} can be used interchangeably with IncidentStatus, + * Defines values for IncidentLabelType. \ + * {@link KnownIncidentLabelType} can be used interchangeably with IncidentLabelType, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **New**: An active incident which isn't being handled currently \ - * **Active**: An active incident which is being handled \ - * **Closed**: A non-active incident + * **User**: Label manually created by a user \ + * **AutoAssigned**: Label automatically created by the system */ -export type IncidentStatus = string; +export type IncidentLabelType = string; /** Known values of {@link ConfidenceLevel} that the service accepts. */ export enum KnownConfidenceLevel { @@ -7339,6 +7596,24 @@ export enum KnownAlertStatus { */ export type AlertStatus = string; +/** Known values of {@link IncidentTaskStatus} that the service accepts. */ +export enum KnownIncidentTaskStatus { + /** A new task */ + New = "New", + /** A completed task */ + Completed = "Completed" +} + +/** + * Defines values for IncidentTaskStatus. \ + * {@link KnownIncidentTaskStatus} can be used interchangeably with IncidentTaskStatus, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **New**: A new task \ + * **Completed**: A completed task + */ +export type IncidentTaskStatus = string; + /** Known values of {@link Kind} that the service accepts. */ export enum KnownKind { /** DataConnector */ @@ -7465,6 +7740,105 @@ export enum KnownOperator { */ export type Operator = string; +/** Known values of {@link Category} that the service accepts. */ +export enum KnownCategory { + /** Onboarding recommendation. */ + Onboarding = "Onboarding", + /** New feature recommendation. */ + NewFeature = "NewFeature", + /** Soc Efficiency recommendation. */ + SocEfficiency = "SocEfficiency", + /** Cost optimization recommendation. */ + CostOptimization = "CostOptimization", + /** Demo recommendation. */ + Demo = "Demo" +} + +/** + * Defines values for Category. \ + * {@link KnownCategory} can be used interchangeably with Category, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Onboarding**: Onboarding recommendation. \ + * **NewFeature**: New feature recommendation. \ + * **SocEfficiency**: Soc Efficiency recommendation. \ + * **CostOptimization**: Cost optimization recommendation. \ + * **Demo**: Demo recommendation. + */ +export type Category = string; + +/** Known values of {@link Context} that the service accepts. */ +export enum KnownContext { + /** Analytics context. */ + Analytics = "Analytics", + /** Incidents context. */ + Incidents = "Incidents", + /** Overview context. */ + Overview = "Overview", + /** No context. */ + None = "None" +} + +/** + * Defines values for Context. \ + * {@link KnownContext} can be used interchangeably with Context, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Analytics**: Analytics context. \ + * **Incidents**: Incidents context. \ + * **Overview**: Overview context. \ + * **None**: No context. + */ +export type Context = string; + +/** Known values of {@link Priority} that the service accepts. */ +export enum KnownPriority { + /** Low priority for recommendation. */ + Low = "Low", + /** Medium priority for recommendation. */ + Medium = "Medium", + /** High priority for recommendation. */ + High = "High" +} + +/** + * Defines values for Priority. \ + * {@link KnownPriority} can be used interchangeably with Priority, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Low**: Low priority for recommendation. \ + * **Medium**: Medium priority for recommendation. \ + * **High**: High priority for recommendation. + */ +export type Priority = string; + +/** Known values of {@link State} that the service accepts. */ +export enum KnownState { + /** Recommendation is active. */ + Active = "Active", + /** Recommendation is disabled. */ + Disabled = "Disabled", + /** Recommendation has been completed by user. */ + CompletedByUser = "CompletedByUser", + /** Recommendation has been completed by action. */ + CompletedByAction = "CompletedByAction", + /** Recommendation is hidden. */ + Hidden = "Hidden" +} + +/** + * Defines values for State. \ + * {@link KnownState} can be used interchangeably with State, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Active**: Recommendation is active. \ + * **Disabled**: Recommendation is disabled. \ + * **CompletedByUser**: Recommendation has been completed by user. \ + * **CompletedByAction**: Recommendation has been completed by action. \ + * **Hidden**: Recommendation is hidden. + */ +export type State = string; + /** Known values of {@link SecurityMLAnalyticsSettingsKind} that the service accepts. */ export enum KnownSecurityMLAnalyticsSettingsKind { /** Anomaly */ @@ -7698,6 +8072,8 @@ export enum KnownDataConnectorKind { OfficeIRM = "OfficeIRM", /** Office365Project */ Office365Project = "Office365Project", + /** MicrosoftPurviewInformationProtection */ + MicrosoftPurviewInformationProtection = "MicrosoftPurviewInformationProtection", /** OfficePowerBI */ OfficePowerBI = "OfficePowerBI", /** AmazonWebServicesCloudTrail */ @@ -7736,6 +8112,7 @@ export enum KnownDataConnectorKind { * **OfficeATP** \ * **OfficeIRM** \ * **Office365Project** \ + * **MicrosoftPurviewInformationProtection** \ * **OfficePowerBI** \ * **AmazonWebServicesCloudTrail** \ * **AmazonWebServicesS3** \ @@ -7897,6 +8274,45 @@ export enum KnownEntityMappingType { */ export type EntityMappingType = string; +/** Known values of {@link AlertProperty} that the service accepts. */ +export enum KnownAlertProperty { + /** Alert's link */ + AlertLink = "AlertLink", + /** Confidence level property */ + ConfidenceLevel = "ConfidenceLevel", + /** Confidence score */ + ConfidenceScore = "ConfidenceScore", + /** Extended links to the alert */ + ExtendedLinks = "ExtendedLinks", + /** Product name alert property */ + ProductName = "ProductName", + /** Provider name alert property */ + ProviderName = "ProviderName", + /** Product component name alert property */ + ProductComponentName = "ProductComponentName", + /** Remediation steps alert property */ + RemediationSteps = "RemediationSteps", + /** Techniques alert property */ + Techniques = "Techniques" +} + +/** + * Defines values for AlertProperty. \ + * {@link KnownAlertProperty} can be used interchangeably with AlertProperty, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **AlertLink**: Alert's link \ + * **ConfidenceLevel**: Confidence level property \ + * **ConfidenceScore**: Confidence score \ + * **ExtendedLinks**: Extended links to the alert \ + * **ProductName**: Product name alert property \ + * **ProviderName**: Provider name alert property \ + * **ProductComponentName**: Product component name alert property \ + * **RemediationSteps**: Remediation steps alert property \ + * **Techniques**: Techniques alert property + */ +export type AlertProperty = string; + /** Known values of {@link EventGroupingAggregationKind} that the service accepts. */ export enum KnownEventGroupingAggregationKind { /** SingleAlert */ @@ -8887,6 +9303,39 @@ export interface AlertRuleTemplatesListNextOptionalParams /** Contains response data for the listNext operation. */ export type AlertRuleTemplatesListNextResponse = AlertRuleTemplatesList; +/** Optional parameters. */ +export interface TriggeredAnalyticsRuleRunGetOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type TriggeredAnalyticsRuleRunGetResponse = TriggeredAnalyticsRuleRun; + +/** Optional parameters. */ +export interface GetTriggeredAnalyticsRuleRunsListOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the list operation. */ +export type GetTriggeredAnalyticsRuleRunsListResponse = TriggeredAnalyticsRuleRuns; + +/** Optional parameters. */ +export interface GetTriggeredAnalyticsRuleRunsListNextOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listNext operation. */ +export type GetTriggeredAnalyticsRuleRunsListNextResponse = TriggeredAnalyticsRuleRuns; + +/** Optional parameters. */ +export interface AlertRuleTriggerRuleRunOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Contains response data for the triggerRuleRun operation. */ +export type AlertRuleTriggerRuleRunResponse = AlertRuleTriggerRuleRunHeaders; + /** Optional parameters. */ export interface AutomationRulesGetOptionalParams extends coreClient.OperationOptions {} @@ -8998,16 +9447,7 @@ export type IncidentsListEntitiesResponse = IncidentEntitiesResponse; /** Optional parameters. */ export interface IncidentsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type IncidentsListNextResponse = IncidentList; @@ -9080,16 +9520,7 @@ export interface BookmarkRelationsDeleteOptionalParams /** Optional parameters. */ export interface BookmarkRelationsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type BookmarkRelationsListNextResponse = RelationList; @@ -9182,16 +9613,7 @@ export type EntitiesRelationsListResponse = RelationList; /** Optional parameters. */ export interface EntitiesRelationsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type EntitiesRelationsListNextResponse = RelationList; @@ -9207,7 +9629,7 @@ export type EntityRelationsGetRelationResponse = Relation; export interface EntityQueriesListOptionalParams extends coreClient.OperationOptions { /** The entity query kind we want to fetch */ - kind?: Enum13; + kind?: Enum14; } /** Contains response data for the list operation. */ @@ -9233,10 +9655,7 @@ export interface EntityQueriesDeleteOptionalParams /** Optional parameters. */ export interface EntityQueriesListNextOptionalParams - extends coreClient.OperationOptions { - /** The entity query kind we want to fetch */ - kind?: Enum13; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type EntityQueriesListNextResponse = EntityQueryList; @@ -9306,16 +9725,7 @@ export type FileImportsDeleteResponse = FileImport; /** Optional parameters. */ export interface FileImportsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type FileImportsListNextResponse = FileImportList; @@ -9356,16 +9766,7 @@ export interface IncidentCommentsDeleteOptionalParams /** Optional parameters. */ export interface IncidentCommentsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type IncidentCommentsListNextResponse = IncidentCommentList; @@ -9406,20 +9807,43 @@ export interface IncidentRelationsDeleteOptionalParams /** Optional parameters. */ export interface IncidentRelationsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type IncidentRelationsListNextResponse = RelationList; +/** Optional parameters. */ +export interface IncidentTasksListOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the list operation. */ +export type IncidentTasksListResponse = IncidentTaskList; + +/** Optional parameters. */ +export interface IncidentTasksGetOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type IncidentTasksGetResponse = IncidentTask; + +/** Optional parameters. */ +export interface IncidentTasksCreateOrUpdateOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the createOrUpdate operation. */ +export type IncidentTasksCreateOrUpdateResponse = IncidentTask; + +/** Optional parameters. */ +export interface IncidentTasksDeleteOptionalParams + extends coreClient.OperationOptions {} + +/** Optional parameters. */ +export interface IncidentTasksListNextOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listNext operation. */ +export type IncidentTasksListNextResponse = IncidentTaskList; + /** Optional parameters. */ export interface MetadataListOptionalParams extends coreClient.OperationOptions { @@ -9463,16 +9887,7 @@ export type MetadataUpdateResponse = MetadataModel; /** Optional parameters. */ export interface MetadataListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Used to skip n elements in the OData query (offset). Returns a nextLink to the next page of results if there are any left. */ - skip?: number; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type MetadataListNextResponse = MetadataList; @@ -9530,6 +9945,32 @@ export interface SentinelOnboardingStatesListOptionalParams /** Contains response data for the list operation. */ export type SentinelOnboardingStatesListResponse = SentinelOnboardingStatesList; +/** Optional parameters. */ +export interface GetRecommendationsListOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the list operation. */ +export type GetRecommendationsListResponse = RecommendationList; + +/** Optional parameters. */ +export interface GetSingleRecommendationOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the singleRecommendation operation. */ +export type GetSingleRecommendationResponse = Recommendation; + +/** Optional parameters. */ +export interface UpdateRecommendationOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Contains response data for the recommendation operation. */ +export type UpdateRecommendationResponse = Recommendation; + /** Optional parameters. */ export interface SecurityMLAnalyticsSettingsListOptionalParams extends coreClient.OperationOptions {} @@ -9701,16 +10142,7 @@ export type ThreatIntelligenceIndicatorsListResponse = ThreatIntelligenceInforma /** Optional parameters. */ export interface ThreatIntelligenceIndicatorsListNextOptionalParams - extends coreClient.OperationOptions { - /** Filters the results, based on a Boolean condition. Optional. */ - filter?: string; - /** Sorts the results. Optional. */ - orderby?: string; - /** Returns only the first n results. Optional. */ - top?: number; - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type ThreatIntelligenceIndicatorsListNextResponse = ThreatIntelligenceInformationList; @@ -9755,10 +10187,7 @@ export type WatchlistsCreateOrUpdateResponse = Watchlist; /** Optional parameters. */ export interface WatchlistsListNextOptionalParams - extends coreClient.OperationOptions { - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type WatchlistsListNextResponse = WatchlistList; @@ -9793,10 +10222,7 @@ export type WatchlistItemsCreateOrUpdateResponse = WatchlistItem; /** Optional parameters. */ export interface WatchlistItemsListNextOptionalParams - extends coreClient.OperationOptions { - /** Skiptoken is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls. Optional. */ - skipToken?: string; -} + extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type WatchlistItemsListNextResponse = WatchlistItemList; diff --git a/sdk/securityinsight/arm-securityinsight/src/models/mappers.ts b/sdk/securityinsight/arm-securityinsight/src/models/mappers.ts index 6f5b1105eada..343b473def22 100644 --- a/sdk/securityinsight/arm-securityinsight/src/models/mappers.ts +++ b/sdk/securityinsight/arm-securityinsight/src/models/mappers.ts @@ -232,6 +232,51 @@ export const AlertRuleTemplatesList: coreClient.CompositeMapper = { } }; +export const TriggeredAnalyticsRuleRuns: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "TriggeredAnalyticsRuleRuns", + modelProperties: { + value: { + serializedName: "value", + required: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "TriggeredAnalyticsRuleRun" + } + } + } + }, + nextLink: { + serializedName: "nextLink", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + +export const AnalyticsRuleRunTrigger: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "AnalyticsRuleRunTrigger", + modelProperties: { + executionTimeUtc: { + serializedName: "properties.executionTimeUtc", + required: true, + type: { + name: "DateTime" + } + } + } + } +}; + export const AutomationRuleTriggeringLogic: coreClient.CompositeMapper = { type: { name: "Composite", @@ -1229,9 +1274,7 @@ export const EntityEdges: coreClient.CompositeMapper = { serializedName: "additionalData", type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } } } @@ -1886,13 +1929,6 @@ export const IncidentList: coreClient.CompositeMapper = { name: "Composite", className: "IncidentList", modelProperties: { - nextLink: { - serializedName: "nextLink", - readOnly: true, - type: { - name: "String" - } - }, value: { serializedName: "value", required: true, @@ -1905,6 +1941,75 @@ export const IncidentList: coreClient.CompositeMapper = { } } } + }, + nextLink: { + serializedName: "nextLink", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + +export const IncidentOwnerInfo: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "IncidentOwnerInfo", + modelProperties: { + email: { + serializedName: "email", + type: { + name: "String" + } + }, + assignedTo: { + serializedName: "assignedTo", + type: { + name: "String" + } + }, + objectId: { + serializedName: "objectId", + type: { + name: "Uuid" + } + }, + userPrincipalName: { + serializedName: "userPrincipalName", + type: { + name: "String" + } + }, + ownerType: { + serializedName: "ownerType", + type: { + name: "String" + } + } + } + } +}; + +export const IncidentLabel: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "IncidentLabel", + modelProperties: { + labelName: { + serializedName: "labelName", + required: true, + type: { + name: "String" + } + }, + labelType: { + serializedName: "labelType", + readOnly: true, + type: { + name: "String" + } } } } @@ -1948,13 +2053,6 @@ export const IncidentAdditionalData: coreClient.CompositeMapper = { } } }, - providerIncidentUrl: { - serializedName: "providerIncidentUrl", - readOnly: true, - type: { - name: "String" - } - }, tactics: { serializedName: "tactics", readOnly: true, @@ -1978,25 +2076,9 @@ export const IncidentAdditionalData: coreClient.CompositeMapper = { } } } - } - } - } -}; - -export const IncidentLabel: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "IncidentLabel", - modelProperties: { - labelName: { - serializedName: "labelName", - required: true, - type: { - name: "String" - } }, - labelType: { - serializedName: "labelType", + providerIncidentUrl: { + serializedName: "providerIncidentUrl", readOnly: true, type: { name: "String" @@ -2006,45 +2088,6 @@ export const IncidentLabel: coreClient.CompositeMapper = { } }; -export const IncidentOwnerInfo: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "IncidentOwnerInfo", - modelProperties: { - email: { - serializedName: "email", - type: { - name: "String" - } - }, - assignedTo: { - serializedName: "assignedTo", - type: { - name: "String" - } - }, - objectId: { - serializedName: "objectId", - type: { - name: "Uuid" - } - }, - userPrincipalName: { - serializedName: "userPrincipalName", - type: { - name: "String" - } - }, - ownerType: { - serializedName: "ownerType", - type: { - name: "String" - } - } - } - } -}; - export const TeamInformation: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2089,50 +2132,6 @@ export const TeamInformation: coreClient.CompositeMapper = { } }; -export const TeamProperties: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "TeamProperties", - modelProperties: { - teamName: { - serializedName: "teamName", - required: true, - type: { - name: "String" - } - }, - teamDescription: { - serializedName: "teamDescription", - type: { - name: "String" - } - }, - memberIds: { - serializedName: "memberIds", - type: { - name: "Sequence", - element: { - type: { - name: "Uuid" - } - } - } - }, - groupIds: { - serializedName: "groupIds", - type: { - name: "Sequence", - element: { - type: { - name: "Uuid" - } - } - } - } - } - } -}; - export const IncidentAlertList: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2188,9 +2187,7 @@ export const EntityCommonProperties: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -2231,13 +2228,6 @@ export const IncidentCommentList: coreClient.CompositeMapper = { name: "Composite", className: "IncidentCommentList", modelProperties: { - nextLink: { - serializedName: "nextLink", - readOnly: true, - type: { - name: "String" - } - }, value: { serializedName: "value", required: true, @@ -2250,6 +2240,13 @@ export const IncidentCommentList: coreClient.CompositeMapper = { } } } + }, + nextLink: { + serializedName: "nextLink", + readOnly: true, + type: { + name: "String" + } } } } @@ -2293,18 +2290,45 @@ export const IncidentEntitiesResultsMetadata: coreClient.CompositeMapper = { name: "Composite", className: "IncidentEntitiesResultsMetadata", modelProperties: { - count: { - serializedName: "count", + entityKind: { + serializedName: "entityKind", required: true, type: { - name: "Number" + name: "String" } }, - entityKind: { - serializedName: "entityKind", + count: { + serializedName: "count", required: true, type: { - name: "String" + name: "Number" + } + } + } + } +}; + +export const IncidentTaskList: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "IncidentTaskList", + modelProperties: { + value: { + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "IncidentTask" + } + } + } + }, + nextLink: { + serializedName: "nextLink", + type: { + name: "String" } } } @@ -2562,6 +2586,278 @@ export const SentinelOnboardingStatesList: coreClient.CompositeMapper = { } }; +export const RecommendationList: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "RecommendationList", + modelProperties: { + value: { + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Recommendation" + } + } + } + } + } + } +}; + +export const Recommendation: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "Recommendation", + modelProperties: { + id: { + serializedName: "id", + required: true, + type: { + name: "Uuid" + } + }, + instructions: { + serializedName: "instructions", + type: { + name: "Composite", + className: "Instructions" + } + }, + content: { + serializedName: "content", + type: { + name: "Composite", + className: "Content" + } + }, + resourceId: { + serializedName: "resourceId", + nullable: true, + type: { + name: "String" + } + }, + additionalProperties: { + serializedName: "additionalProperties", + nullable: true, + type: { + name: "Dictionary", + value: { type: { name: "String" } } + } + }, + title: { + serializedName: "title", + required: true, + type: { + name: "String" + } + }, + description: { + serializedName: "description", + required: true, + type: { + name: "String" + } + }, + recommendationTypeTitle: { + serializedName: "recommendationTypeTitle", + required: true, + type: { + name: "String" + } + }, + recommendationTypeId: { + serializedName: "recommendationTypeId", + required: true, + type: { + name: "String" + } + }, + category: { + serializedName: "category", + required: true, + type: { + name: "String" + } + }, + context: { + serializedName: "context", + required: true, + type: { + name: "String" + } + }, + workspaceId: { + serializedName: "workspaceId", + required: true, + type: { + name: "Uuid" + } + }, + actions: { + serializedName: "actions", + required: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "RecommendedAction" + } + } + } + }, + state: { + serializedName: "state", + required: true, + type: { + name: "String" + } + }, + priority: { + serializedName: "priority", + required: true, + type: { + name: "String" + } + }, + lastEvaluatedTimeUtc: { + serializedName: "lastEvaluatedTimeUtc", + required: true, + type: { + name: "DateTime" + } + }, + hideUntilTimeUtc: { + serializedName: "hideUntilTimeUtc", + nullable: true, + type: { + name: "DateTime" + } + }, + displayUntilTimeUtc: { + serializedName: "displayUntilTimeUtc", + nullable: true, + type: { + name: "DateTime" + } + }, + visible: { + serializedName: "visible", + type: { + name: "Boolean" + } + } + } + } +}; + +export const Instructions: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "Instructions", + modelProperties: { + actionsToBePerformed: { + serializedName: "actionsToBePerformed", + required: true, + type: { + name: "String" + } + }, + recommendationImportance: { + serializedName: "recommendationImportance", + required: true, + type: { + name: "String" + } + }, + howToPerformActionDetails: { + serializedName: "howToPerformActionDetails", + nullable: true, + type: { + name: "String" + } + } + } + } +}; + +export const Content: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "Content", + modelProperties: { + title: { + serializedName: "title", + required: true, + type: { + name: "String" + } + }, + description: { + serializedName: "description", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const RecommendedAction: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "RecommendedAction", + modelProperties: { + linkText: { + serializedName: "linkText", + required: true, + type: { + name: "String" + } + }, + linkUrl: { + serializedName: "linkUrl", + required: true, + type: { + name: "String" + } + }, + state: { + serializedName: "state", + type: { + name: "String" + } + } + } + } +}; + +export const RecommendationPatch: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "RecommendationPatch", + modelProperties: { + state: { + serializedName: "state", + type: { + name: "String" + } + }, + hideUntilTimeUtc: { + serializedName: "hideUntilTimeUtc", + type: { + name: "DateTime" + } + } + } + } +}; + export const SecurityMLAnalyticsSettingsList: coreClient.CompositeMapper = { type: { name: "Composite", @@ -3820,6 +4116,18 @@ export const QueryBasedAlertRuleTemplateProperties: coreClient.CompositeMapper = name: "Composite", className: "EventGroupingSettings" } + }, + sentinelEntitiesMappings: { + serializedName: "sentinelEntitiesMappings", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SentinelEntityMapping" + } + } + } } } } @@ -3901,6 +4209,39 @@ export const AlertDetailsOverride: coreClient.CompositeMapper = { type: { name: "String" } + }, + alertDynamicProperties: { + serializedName: "alertDynamicProperties", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "AlertPropertyMapping" + } + } + } + } + } + } +}; + +export const AlertPropertyMapping: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "AlertPropertyMapping", + modelProperties: { + alertProperty: { + serializedName: "alertProperty", + type: { + name: "String" + } + }, + value: { + serializedName: "value", + type: { + name: "String" + } } } } @@ -3921,6 +4262,21 @@ export const EventGroupingSettings: coreClient.CompositeMapper = { } }; +export const SentinelEntityMapping: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SentinelEntityMapping", + modelProperties: { + columnName: { + serializedName: "columnName", + type: { + name: "String" + } + } + } + } +}; + export const FusionSourceSettings: coreClient.CompositeMapper = { type: { name: "Composite", @@ -4357,16 +4713,50 @@ export const ScheduledAlertRuleCommonProperties: coreClient.CompositeMapper = { element: { type: { name: "Composite", - className: "EntityMapping" + className: "EntityMapping" + } + } + } + }, + alertDetailsOverride: { + serializedName: "alertDetailsOverride", + type: { + name: "Composite", + className: "AlertDetailsOverride" + } + }, + sentinelEntitiesMappings: { + serializedName: "sentinelEntitiesMappings", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SentinelEntityMapping" } } } + } + } + } +}; + +export const AddIncidentTaskActionProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "AddIncidentTaskActionProperties", + modelProperties: { + title: { + serializedName: "title", + required: true, + type: { + name: "String" + } }, - alertDetailsOverride: { - serializedName: "alertDetailsOverride", + description: { + serializedName: "description", type: { - name: "Composite", - className: "AlertDetailsOverride" + name: "String" } } } @@ -4907,6 +5297,50 @@ export const DataTypeDefinitions: coreClient.CompositeMapper = { } }; +export const TeamProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "TeamProperties", + modelProperties: { + teamName: { + serializedName: "teamName", + required: true, + type: { + name: "String" + } + }, + teamDescription: { + serializedName: "teamDescription", + type: { + name: "String" + } + }, + groupIds: { + serializedName: "groupIds", + type: { + name: "Sequence", + element: { + type: { + name: "Uuid" + } + } + } + }, + memberIds: { + serializedName: "memberIds", + type: { + name: "Sequence", + element: { + type: { + name: "Uuid" + } + } + } + } + } + } +}; + export const SecurityMLAnalyticsSettingsDataSource: coreClient.CompositeMapper = { type: { name: "Composite", @@ -5084,6 +5518,23 @@ export const Dynamics365DataConnectorDataTypes: coreClient.CompositeMapper = { } }; +export const MicrosoftPurviewInformationProtectionConnectorDataTypes: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionConnectorDataTypes", + modelProperties: { + logs: { + serializedName: "logs", + type: { + name: "Composite", + className: + "MicrosoftPurviewInformationProtectionConnectorDataTypesLogs" + } + } + } + } +}; + export const Office365ProjectConnectorDataTypes: coreClient.CompositeMapper = { type: { name: "Composite", @@ -6385,6 +6836,27 @@ export const PropertyConditionProperties: coreClient.CompositeMapper = { } }; +export const AutomationRuleAddIncidentTaskAction: coreClient.CompositeMapper = { + serializedName: "AddIncidentTask", + type: { + name: "Composite", + className: "AutomationRuleAddIncidentTaskAction", + uberParent: "AutomationRuleAction", + polymorphicDiscriminator: + AutomationRuleAction.type.polymorphicDiscriminator, + modelProperties: { + ...AutomationRuleAction.type.modelProperties, + actionConfiguration: { + serializedName: "actionConfiguration", + type: { + name: "Composite", + className: "AddIncidentTaskActionProperties" + } + } + } + } +}; + export const AutomationRuleModifyPropertiesAction: coreClient.CompositeMapper = { serializedName: "ModifyProperties", type: { @@ -6720,6 +7192,24 @@ export const SecurityAlertTimelineItem: coreClient.CompositeMapper = { type: { name: "String" } + }, + intent: { + serializedName: "intent", + readOnly: true, + type: { + name: "String" + } + }, + techniques: { + serializedName: "techniques", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } } } } @@ -8816,6 +9306,26 @@ export const OfficeIRMCheckRequirements: coreClient.CompositeMapper = { } }; +export const MicrosoftPurviewInformationProtectionCheckRequirements: coreClient.CompositeMapper = { + serializedName: "MicrosoftPurviewInformationProtection", + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionCheckRequirements", + uberParent: "DataConnectorsCheckRequirements", + polymorphicDiscriminator: + DataConnectorsCheckRequirements.type.polymorphicDiscriminator, + modelProperties: { + ...DataConnectorsCheckRequirements.type.modelProperties, + tenantId: { + serializedName: "properties.tenantId", + type: { + name: "String" + } + } + } + } +}; + export const Office365ProjectCheckRequirements: coreClient.CompositeMapper = { serializedName: "Office365Project", type: { @@ -9297,6 +9807,17 @@ export const OfficeIRMCheckRequirementsProperties: coreClient.CompositeMapper = } }; +export const MicrosoftPurviewInformationProtectionCheckRequirementsProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: + "MicrosoftPurviewInformationProtectionCheckRequirementsProperties", + modelProperties: { + ...DataConnectorTenantId.type.modelProperties + } + } +}; + export const Office365ProjectCheckRequirementsProperties: coreClient.CompositeMapper = { type: { name: "Composite", @@ -9438,6 +9959,23 @@ export const OfficeATPDataConnectorProperties: coreClient.CompositeMapper = { } }; +export const MicrosoftPurviewInformationProtectionDataConnectorProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionDataConnectorProperties", + modelProperties: { + ...DataConnectorTenantId.type.modelProperties, + dataTypes: { + serializedName: "dataTypes", + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionConnectorDataTypes" + } + } + } + } +}; + export const Office365ProjectDataConnectorProperties: coreClient.CompositeMapper = { type: { name: "Composite", @@ -9726,6 +10264,16 @@ export const Dynamics365DataConnectorDataTypesDynamics365CdsActivities: coreClie } }; +export const MicrosoftPurviewInformationProtectionConnectorDataTypesLogs: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionConnectorDataTypesLogs", + modelProperties: { + ...DataConnectorDataTypeCommon.type.modelProperties + } + } +}; + export const Office365ProjectConnectorDataTypesLogs: coreClient.CompositeMapper = { type: { name: "Composite", @@ -9943,6 +10491,51 @@ export const ActionRequest: coreClient.CompositeMapper = { } }; +export const TriggeredAnalyticsRuleRun: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "TriggeredAnalyticsRuleRun", + modelProperties: { + ...ResourceWithEtag.type.modelProperties, + executionTimeUtc: { + serializedName: "properties.executionTimeUtc", + required: true, + type: { + name: "DateTime" + } + }, + ruleId: { + serializedName: "properties.ruleId", + required: true, + type: { + name: "String" + } + }, + triggeredAnalyticsRuleRunId: { + serializedName: "properties.triggeredAnalyticsRuleRunId", + required: true, + type: { + name: "String" + } + }, + provisioningState: { + serializedName: "properties.provisioningState", + required: true, + type: { + name: "String" + } + }, + ruleRunAdditionalData: { + serializedName: "properties.ruleRunAdditionalData", + type: { + name: "Dictionary", + value: { type: { name: "any" } } + } + } + } + } +}; + export const AutomationRule: coreClient.CompositeMapper = { type: { name: "Composite", @@ -10244,62 +10837,53 @@ export const Incident: coreClient.CompositeMapper = { className: "Incident", modelProperties: { ...ResourceWithEtag.type.modelProperties, - additionalData: { - serializedName: "properties.additionalData", - type: { - name: "Composite", - className: "IncidentAdditionalData" - } - }, - classification: { - serializedName: "properties.classification", + title: { + serializedName: "properties.title", type: { name: "String" } }, - classificationComment: { - serializedName: "properties.classificationComment", + description: { + serializedName: "properties.description", type: { name: "String" } }, - classificationReason: { - serializedName: "properties.classificationReason", + severity: { + serializedName: "properties.severity", type: { name: "String" } }, - createdTimeUtc: { - serializedName: "properties.createdTimeUtc", - readOnly: true, + status: { + serializedName: "properties.status", type: { - name: "DateTime" + name: "String" } }, - description: { - serializedName: "properties.description", + classification: { + serializedName: "properties.classification", type: { name: "String" } }, - firstActivityTimeUtc: { - serializedName: "properties.firstActivityTimeUtc", + classificationReason: { + serializedName: "properties.classificationReason", type: { - name: "DateTime" + name: "String" } }, - incidentUrl: { - serializedName: "properties.incidentUrl", - readOnly: true, + classificationComment: { + serializedName: "properties.classificationComment", type: { name: "String" } }, - incidentNumber: { - serializedName: "properties.incidentNumber", - readOnly: true, + owner: { + serializedName: "properties.owner", type: { - name: "Number" + name: "Composite", + className: "IncidentOwnerInfo" } }, labels: { @@ -10307,23 +10891,17 @@ export const Incident: coreClient.CompositeMapper = { type: { name: "Sequence", element: { - type: { - name: "Composite", - className: "IncidentLabel" - } - } - } - }, - providerName: { - serializedName: "properties.providerName", - type: { - name: "String" + type: { + name: "Composite", + className: "IncidentLabel" + } + } } }, - providerIncidentId: { - serializedName: "properties.providerIncidentId", + firstActivityTimeUtc: { + serializedName: "properties.firstActivityTimeUtc", type: { - name: "String" + name: "DateTime" } }, lastActivityTimeUtc: { @@ -10339,11 +10917,25 @@ export const Incident: coreClient.CompositeMapper = { name: "DateTime" } }, - owner: { - serializedName: "properties.owner", + createdTimeUtc: { + serializedName: "properties.createdTimeUtc", + readOnly: true, + type: { + name: "DateTime" + } + }, + incidentNumber: { + serializedName: "properties.incidentNumber", + readOnly: true, + type: { + name: "Number" + } + }, + additionalData: { + serializedName: "properties.additionalData", type: { name: "Composite", - className: "IncidentOwnerInfo" + className: "IncidentAdditionalData" } }, relatedAnalyticRuleIds: { @@ -10358,14 +10950,21 @@ export const Incident: coreClient.CompositeMapper = { } } }, - severity: { - serializedName: "properties.severity", + incidentUrl: { + serializedName: "properties.incidentUrl", + readOnly: true, type: { name: "String" } }, - status: { - serializedName: "properties.status", + providerName: { + serializedName: "properties.providerName", + type: { + name: "String" + } + }, + providerIncidentId: { + serializedName: "properties.providerIncidentId", type: { name: "String" } @@ -10376,12 +10975,6 @@ export const Incident: coreClient.CompositeMapper = { name: "Composite", className: "TeamInformation" } - }, - title: { - serializedName: "properties.title", - type: { - name: "String" - } } } } @@ -10393,6 +10986,12 @@ export const IncidentComment: coreClient.CompositeMapper = { className: "IncidentComment", modelProperties: { ...ResourceWithEtag.type.modelProperties, + message: { + serializedName: "properties.message", + type: { + name: "String" + } + }, createdTimeUtc: { serializedName: "properties.createdTimeUtc", readOnly: true, @@ -10407,14 +11006,66 @@ export const IncidentComment: coreClient.CompositeMapper = { name: "DateTime" } }, - message: { - serializedName: "properties.message", + author: { + serializedName: "properties.author", + type: { + name: "Composite", + className: "ClientInfo" + } + } + } + } +}; + +export const IncidentTask: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "IncidentTask", + modelProperties: { + ...ResourceWithEtag.type.modelProperties, + title: { + serializedName: "properties.title", + required: true, type: { name: "String" } }, - author: { - serializedName: "properties.author", + description: { + serializedName: "properties.description", + type: { + name: "String" + } + }, + status: { + serializedName: "properties.status", + required: true, + type: { + name: "String" + } + }, + createdTimeUtc: { + serializedName: "properties.createdTimeUtc", + readOnly: true, + type: { + name: "DateTime" + } + }, + lastModifiedTimeUtc: { + serializedName: "properties.lastModifiedTimeUtc", + readOnly: true, + type: { + name: "DateTime" + } + }, + createdBy: { + serializedName: "properties.createdBy", + type: { + name: "Composite", + className: "ClientInfo" + } + }, + lastModifiedBy: { + serializedName: "properties.lastModifiedBy", type: { name: "Composite", className: "ClientInfo" @@ -11672,6 +12323,18 @@ export const ScheduledAlertRuleTemplate: coreClient.CompositeMapper = { name: "Composite", className: "AlertDetailsOverride" } + }, + sentinelEntitiesMappings: { + serializedName: "properties.sentinelEntitiesMappings", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SentinelEntityMapping" + } + } + } } } } @@ -11808,6 +12471,18 @@ export const NrtAlertRuleTemplate: coreClient.CompositeMapper = { name: "Composite", className: "EventGroupingSettings" } + }, + sentinelEntitiesMappings: { + serializedName: "properties.sentinelEntitiesMappings", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SentinelEntityMapping" + } + } + } } } } @@ -11827,9 +12502,7 @@ export const SecurityAlert: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12053,9 +12726,7 @@ export const HuntingBookmark: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12157,9 +12828,7 @@ export const AccountEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12271,9 +12940,7 @@ export const AzureResourceEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12315,9 +12982,7 @@ export const CloudApplicationEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12366,9 +13031,7 @@ export const DnsEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12429,9 +13092,7 @@ export const FileEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12492,9 +13153,7 @@ export const FileHashEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12536,9 +13195,7 @@ export const HostEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12629,9 +13286,7 @@ export const IoTDeviceEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12875,9 +13530,7 @@ export const IpEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12932,9 +13585,7 @@ export const MailboxEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -12990,9 +13641,7 @@ export const MailClusterEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13138,9 +13787,7 @@ export const MailMessageEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13373,9 +14020,7 @@ export const MalwareEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13441,9 +14086,7 @@ export const ProcessEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13534,9 +14177,7 @@ export const RegistryKeyEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13578,9 +14219,7 @@ export const RegistryValueEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13636,9 +14275,7 @@ export const SecurityGroupEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13687,9 +14324,7 @@ export const SubmissionMailEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13787,9 +14422,7 @@ export const UrlEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -13824,9 +14457,7 @@ export const NicEntity: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -14408,6 +15039,18 @@ export const ScheduledAlertRule: coreClient.CompositeMapper = { className: "AlertDetailsOverride" } }, + sentinelEntitiesMappings: { + serializedName: "properties.sentinelEntitiesMappings", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SentinelEntityMapping" + } + } + } + }, alertRuleTemplateName: { serializedName: "properties.alertRuleTemplateName", type: { @@ -14621,6 +15264,18 @@ export const NrtAlertRule: coreClient.CompositeMapper = { name: "Composite", className: "EventGroupingSettings" } + }, + sentinelEntitiesMappings: { + serializedName: "properties.sentinelEntitiesMappings", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "SentinelEntityMapping" + } + } + } } } } @@ -15099,9 +15754,7 @@ export const ThreatIntelligenceIndicatorModel: coreClient.CompositeMapper = { readOnly: true, type: { name: "Dictionary", - value: { - type: { name: "Dictionary", value: { type: { name: "any" } } } - } + value: { type: { name: "any" } } } }, friendlyName: { @@ -15610,6 +16263,32 @@ export const OfficeATPDataConnector: coreClient.CompositeMapper = { } }; +export const MicrosoftPurviewInformationProtectionDataConnector: coreClient.CompositeMapper = { + serializedName: "MicrosoftPurviewInformationProtection", + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionDataConnector", + uberParent: "DataConnector", + polymorphicDiscriminator: DataConnector.type.polymorphicDiscriminator, + modelProperties: { + ...DataConnector.type.modelProperties, + tenantId: { + serializedName: "properties.tenantId", + type: { + name: "String" + } + }, + dataTypes: { + serializedName: "properties.dataTypes", + type: { + name: "Composite", + className: "MicrosoftPurviewInformationProtectionConnectorDataTypes" + } + } + } + } +}; + export const Office365ProjectDataConnector: coreClient.CompositeMapper = { serializedName: "Office365Project", type: { @@ -15922,6 +16601,21 @@ export const CodelessApiPollingDataConnector: coreClient.CompositeMapper = { } }; +export const AlertRuleTriggerRuleRunHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "AlertRuleTriggerRuleRunHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + export const WatchlistsDeleteHeaders: coreClient.CompositeMapper = { type: { name: "Composite", @@ -15966,6 +16660,7 @@ export let discriminators = { "AutomationRuleCondition.PropertyArray": PropertyArrayConditionProperties, "AutomationRuleCondition.PropertyChanged": PropertyChangedConditionProperties, "AutomationRuleCondition.Property": PropertyConditionProperties, + "AutomationRuleAction.AddIncidentTask": AutomationRuleAddIncidentTaskAction, "AutomationRuleAction.ModifyProperties": AutomationRuleModifyPropertiesAction, "AutomationRuleAction.RunPlaybook": AutomationRuleRunPlaybookAction, "EntityTimelineItem.Activity": ActivityTimelineItem, @@ -15985,6 +16680,7 @@ export let discriminators = { "DataConnectorsCheckRequirements.MicrosoftThreatProtection": MtpCheckRequirements, "DataConnectorsCheckRequirements.OfficeATP": OfficeATPCheckRequirements, "DataConnectorsCheckRequirements.OfficeIRM": OfficeIRMCheckRequirements, + "DataConnectorsCheckRequirements.MicrosoftPurviewInformationProtection": MicrosoftPurviewInformationProtectionCheckRequirements, "DataConnectorsCheckRequirements.Office365Project": Office365ProjectCheckRequirements, "DataConnectorsCheckRequirements.OfficePowerBI": OfficePowerBICheckRequirements, "DataConnectorsCheckRequirements.ThreatIntelligence": TICheckRequirements, @@ -16051,6 +16747,7 @@ export let discriminators = { "DataConnector.MicrosoftCloudAppSecurity": McasDataConnector, "DataConnector.Dynamics365": Dynamics365DataConnector, "DataConnector.OfficeATP": OfficeATPDataConnector, + "DataConnector.MicrosoftPurviewInformationProtection": MicrosoftPurviewInformationProtectionDataConnector, "DataConnector.Office365Project": Office365ProjectDataConnector, "DataConnector.OfficePowerBI": OfficePowerBIDataConnector, "DataConnector.OfficeIRM": OfficeIRMDataConnector, diff --git a/sdk/securityinsight/arm-securityinsight/src/models/parameters.ts b/sdk/securityinsight/arm-securityinsight/src/models/parameters.ts index dd3bcead9d0b..0abf2ed7a590 100644 --- a/sdk/securityinsight/arm-securityinsight/src/models/parameters.ts +++ b/sdk/securityinsight/arm-securityinsight/src/models/parameters.ts @@ -14,10 +14,11 @@ import { import { AlertRule as AlertRuleMapper, ActionRequest as ActionRequestMapper, + AnalyticsRuleRunTrigger as AnalyticsRuleRunTriggerMapper, AutomationRule as AutomationRuleMapper, ManualTriggerRequestBody as ManualTriggerRequestBodyMapper, Incident as IncidentMapper, - TeamProperties as TeamPropertiesMapper, + TeamInformation as TeamInformationMapper, Bookmark as BookmarkMapper, Relation as RelationMapper, BookmarkExpandParameters as BookmarkExpandParametersMapper, @@ -27,6 +28,7 @@ import { CustomEntityQuery as CustomEntityQueryMapper, FileImport as FileImportMapper, IncidentComment as IncidentCommentMapper, + IncidentTask as IncidentTaskMapper, MetadataModel as MetadataModelMapper, MetadataPatch as MetadataPatchMapper, SentinelOnboardingState as SentinelOnboardingStateMapper, @@ -70,7 +72,7 @@ export const $host: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2022-09-01-preview", + defaultValue: "2023-02-01-preview", isConstant: true, serializedName: "api-version", type: { @@ -112,6 +114,7 @@ export const workspaceName: OperationURLParameter = { parameterPath: "workspaceName", mapper: { constraints: { + Pattern: new RegExp("^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$"), MaxLength: 90, MinLength: 1 }, @@ -190,6 +193,22 @@ export const alertRuleTemplateId: OperationURLParameter = { } }; +export const ruleRunId: OperationURLParameter = { + parameterPath: "ruleRunId", + mapper: { + serializedName: "ruleRunId", + required: true, + type: { + name: "String" + } + } +}; + +export const analyticsRuleRunTriggerParameter: OperationParameter = { + parameterPath: "analyticsRuleRunTriggerParameter", + mapper: AnalyticsRuleRunTriggerMapper +}; + export const automationRuleId: OperationURLParameter = { parameterPath: "automationRuleId", mapper: { @@ -280,7 +299,7 @@ export const incident: OperationParameter = { export const teamProperties: OperationParameter = { parameterPath: "teamProperties", - mapper: TeamPropertiesMapper + mapper: TeamInformationMapper }; export const bookmarkId: OperationURLParameter = { @@ -460,6 +479,22 @@ export const incidentComment: OperationParameter = { mapper: IncidentCommentMapper }; +export const incidentTaskId: OperationURLParameter = { + parameterPath: "incidentTaskId", + mapper: { + serializedName: "incidentTaskId", + required: true, + type: { + name: "String" + } + } +}; + +export const incidentTask: OperationParameter = { + parameterPath: "incidentTask", + mapper: IncidentTaskMapper +}; + export const skip: OperationQueryParameter = { parameterPath: ["options", "skip"], mapper: { @@ -518,6 +553,34 @@ export const sentinelOnboardingStateParameter: OperationParameter = { mapper: SentinelOnboardingStateMapper }; +export const recommendationId: OperationURLParameter = { + parameterPath: "recommendationId", + mapper: { + serializedName: "recommendationId", + required: true, + type: { + name: "Uuid" + } + } +}; + +export const recommendationPatch: OperationParameter = { + parameterPath: "recommendationPatch", + mapper: { + serializedName: "recommendationPatch", + required: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "RecommendationPatch" + } + } + } + } +}; + export const settingsResourceName: OperationURLParameter = { parameterPath: "settingsResourceName", mapper: { diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/actions.ts b/sdk/securityinsight/arm-securityinsight/src/operations/actions.ts index 72aea9cb6a13..e06f4de90aa9 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/actions.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/actions.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Actions } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -65,12 +66,16 @@ export class ActionsImpl implements Actions { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listByAlertRulePagingPage( resourceGroupName, workspaceName, ruleId, - options + options, + settings ); } }; @@ -80,16 +85,23 @@ export class ActionsImpl implements Actions { resourceGroupName: string, workspaceName: string, ruleId: string, - options?: ActionsListByAlertRuleOptionalParams + options?: ActionsListByAlertRuleOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._listByAlertRule( - resourceGroupName, - workspaceName, - ruleId, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: ActionsListByAlertRuleResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._listByAlertRule( + resourceGroupName, + workspaceName, + ruleId, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listByAlertRuleNext( resourceGroupName, @@ -99,7 +111,9 @@ export class ActionsImpl implements Actions { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -337,7 +351,6 @@ const listByAlertRuleNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleOperations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleOperations.ts new file mode 100644 index 000000000000..72374b4e6912 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleOperations.ts @@ -0,0 +1,174 @@ +/* + * 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 { AlertRuleOperations } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro"; +import { LroImpl } from "../lroImpl"; +import { + AnalyticsRuleRunTrigger, + AlertRuleTriggerRuleRunOptionalParams, + AlertRuleTriggerRuleRunResponse +} from "../models"; + +/** Class containing AlertRuleOperations operations. */ +export class AlertRuleOperationsImpl implements AlertRuleOperations { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class AlertRuleOperations class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * triggers analytics rule run + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param ruleId Alert rule ID + * @param analyticsRuleRunTriggerParameter The Analytics Rule Run Trigger parameter + * @param options The options parameters. + */ + async beginTriggerRuleRun( + resourceGroupName: string, + workspaceName: string, + ruleId: string, + analyticsRuleRunTriggerParameter: AnalyticsRuleRunTrigger, + options?: AlertRuleTriggerRuleRunOptionalParams + ): Promise< + PollerLike< + PollOperationState, + AlertRuleTriggerRuleRunResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { + resourceGroupName, + workspaceName, + ruleId, + analyticsRuleRunTriggerParameter, + options + }, + triggerRuleRunOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "location" + }); + await poller.poll(); + return poller; + } + + /** + * triggers analytics rule run + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param ruleId Alert rule ID + * @param analyticsRuleRunTriggerParameter The Analytics Rule Run Trigger parameter + * @param options The options parameters. + */ + async beginTriggerRuleRunAndWait( + resourceGroupName: string, + workspaceName: string, + ruleId: string, + analyticsRuleRunTriggerParameter: AnalyticsRuleRunTrigger, + options?: AlertRuleTriggerRuleRunOptionalParams + ): Promise { + const poller = await this.beginTriggerRuleRun( + resourceGroupName, + workspaceName, + ruleId, + analyticsRuleRunTriggerParameter, + options + ); + return poller.pollUntilDone(); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const triggerRuleRunOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules/{ruleId}/triggerRuleRun", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.AlertRuleTriggerRuleRunHeaders + }, + 201: { + headersMapper: Mappers.AlertRuleTriggerRuleRunHeaders + }, + 202: { + headersMapper: Mappers.AlertRuleTriggerRuleRunHeaders + }, + 204: { + headersMapper: Mappers.AlertRuleTriggerRuleRunHeaders + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + requestBody: Parameters.analyticsRuleRunTriggerParameter, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.ruleId + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleTemplates.ts b/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleTemplates.ts index dbad34be967b..1f75b5557ce4 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleTemplates.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/alertRuleTemplates.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { AlertRuleTemplates } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -54,8 +55,16 @@ export class AlertRuleTemplatesImpl implements AlertRuleTemplates { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -63,11 +72,18 @@ export class AlertRuleTemplatesImpl implements AlertRuleTemplates { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: AlertRuleTemplatesListOptionalParams + options?: AlertRuleTemplatesListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: AlertRuleTemplatesListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -76,7 +92,9 @@ export class AlertRuleTemplatesImpl implements AlertRuleTemplates { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -208,7 +226,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/alertRules.ts b/sdk/securityinsight/arm-securityinsight/src/operations/alertRules.ts index 43164a9c587c..d13d035b61df 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/alertRules.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/alertRules.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { AlertRules } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -57,8 +58,16 @@ export class AlertRulesImpl implements AlertRules { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -66,11 +75,18 @@ export class AlertRulesImpl implements AlertRules { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: AlertRulesListOptionalParams + options?: AlertRulesListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: AlertRulesListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -79,7 +95,9 @@ export class AlertRulesImpl implements AlertRules { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -301,7 +319,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/automationRules.ts b/sdk/securityinsight/arm-securityinsight/src/operations/automationRules.ts index 9e885d622466..19ea8f48732e 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/automationRules.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/automationRules.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { AutomationRules } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -16,13 +17,13 @@ import { AutomationRule, AutomationRulesListNextOptionalParams, AutomationRulesListOptionalParams, + AutomationRulesListResponse, AutomationRulesGetOptionalParams, AutomationRulesGetResponse, AutomationRulesCreateOrUpdateOptionalParams, AutomationRulesCreateOrUpdateResponse, AutomationRulesDeleteOptionalParams, AutomationRulesDeleteResponse, - AutomationRulesListResponse, AutomationRulesListNextResponse } from "../models"; @@ -58,8 +59,16 @@ export class AutomationRulesImpl implements AutomationRules { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -67,11 +76,18 @@ export class AutomationRulesImpl implements AutomationRules { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: AutomationRulesListOptionalParams + options?: AutomationRulesListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: AutomationRulesListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -80,7 +96,9 @@ export class AutomationRulesImpl implements AutomationRules { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -308,7 +326,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/bookmarkRelations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/bookmarkRelations.ts index b399a68bbfc5..d9aa94d1350d 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/bookmarkRelations.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/bookmarkRelations.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { BookmarkRelations } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -64,12 +65,16 @@ export class BookmarkRelationsImpl implements BookmarkRelations { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listPagingPage( resourceGroupName, workspaceName, bookmarkId, - options + options, + settings ); } }; @@ -79,16 +84,23 @@ export class BookmarkRelationsImpl implements BookmarkRelations { resourceGroupName: string, workspaceName: string, bookmarkId: string, - options?: BookmarkRelationsListOptionalParams + options?: BookmarkRelationsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list( - resourceGroupName, - workspaceName, - bookmarkId, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: BookmarkRelationsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list( + resourceGroupName, + workspaceName, + bookmarkId, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -98,7 +110,9 @@ export class BookmarkRelationsImpl implements BookmarkRelations { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -349,13 +363,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/bookmarks.ts b/sdk/securityinsight/arm-securityinsight/src/operations/bookmarks.ts index 1587a320cf92..e8d43303da5b 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/bookmarks.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/bookmarks.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Bookmarks } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -57,8 +58,16 @@ export class BookmarksImpl implements Bookmarks { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -66,11 +75,18 @@ export class BookmarksImpl implements Bookmarks { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: BookmarksListOptionalParams + options?: BookmarksListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: BookmarksListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -79,7 +95,9 @@ export class BookmarksImpl implements Bookmarks { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -301,7 +319,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/dataConnectors.ts b/sdk/securityinsight/arm-securityinsight/src/operations/dataConnectors.ts index ff60c1cc995f..05e5122394ec 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/dataConnectors.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/dataConnectors.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { DataConnectors } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -60,8 +61,16 @@ export class DataConnectorsImpl implements DataConnectors { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -69,11 +78,18 @@ export class DataConnectorsImpl implements DataConnectors { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: DataConnectorsListOptionalParams + options?: DataConnectorsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: DataConnectorsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -82,7 +98,9 @@ export class DataConnectorsImpl implements DataConnectors { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -400,7 +418,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/entities.ts b/sdk/securityinsight/arm-securityinsight/src/operations/entities.ts index 3f01a3174daa..bb7626cae02f 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/entities.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/entities.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Entities } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -63,8 +64,16 @@ export class EntitiesImpl implements Entities { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -72,11 +81,18 @@ export class EntitiesImpl implements Entities { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: EntitiesListOptionalParams + options?: EntitiesListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: EntitiesListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -85,7 +101,9 @@ export class EntitiesImpl implements Entities { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -353,7 +371,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/entitiesRelations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/entitiesRelations.ts index 1117b74cd510..7c7e7118b214 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/entitiesRelations.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/entitiesRelations.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { EntitiesRelations } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -59,12 +60,16 @@ export class EntitiesRelationsImpl implements EntitiesRelations { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listPagingPage( resourceGroupName, workspaceName, entityId, - options + options, + settings ); } }; @@ -74,16 +79,23 @@ export class EntitiesRelationsImpl implements EntitiesRelations { resourceGroupName: string, workspaceName: string, entityId: string, - options?: EntitiesRelationsListOptionalParams + options?: EntitiesRelationsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list( - resourceGroupName, - workspaceName, - entityId, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: EntitiesRelationsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list( + resourceGroupName, + workspaceName, + entityId, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -93,7 +105,9 @@ export class EntitiesRelationsImpl implements EntitiesRelations { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -196,13 +210,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/entityQueries.ts b/sdk/securityinsight/arm-securityinsight/src/operations/entityQueries.ts index 21190c27d569..795fdb6ece7a 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/entityQueries.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/entityQueries.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { EntityQueries } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -58,8 +59,16 @@ export class EntityQueriesImpl implements EntityQueries { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -67,11 +76,18 @@ export class EntityQueriesImpl implements EntityQueries { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: EntityQueriesListOptionalParams + options?: EntityQueriesListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: EntityQueriesListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -80,7 +96,9 @@ export class EntityQueriesImpl implements EntityQueries { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -302,7 +320,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion, Parameters.kind1], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/entityQueryTemplates.ts b/sdk/securityinsight/arm-securityinsight/src/operations/entityQueryTemplates.ts index 51b5a4ab4e9b..e0eef1bd7e04 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/entityQueryTemplates.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/entityQueryTemplates.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { EntityQueryTemplates } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -54,8 +55,16 @@ export class EntityQueryTemplatesImpl implements EntityQueryTemplates { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -63,11 +72,18 @@ export class EntityQueryTemplatesImpl implements EntityQueryTemplates { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: EntityQueryTemplatesListOptionalParams + options?: EntityQueryTemplatesListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: EntityQueryTemplatesListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -76,7 +92,9 @@ export class EntityQueryTemplatesImpl implements EntityQueryTemplates { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -208,7 +226,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion, Parameters.kind2], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/fileImports.ts b/sdk/securityinsight/arm-securityinsight/src/operations/fileImports.ts index 85d011403732..2c61c29c476c 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/fileImports.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/fileImports.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { FileImports } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -60,8 +61,16 @@ export class FileImportsImpl implements FileImports { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -69,11 +78,18 @@ export class FileImportsImpl implements FileImports { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: FileImportsListOptionalParams + options?: FileImportsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: FileImportsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -82,7 +98,9 @@ export class FileImportsImpl implements FileImports { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -391,13 +409,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/get.ts b/sdk/securityinsight/arm-securityinsight/src/operations/get.ts new file mode 100644 index 000000000000..3b420b7b9785 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/get.ts @@ -0,0 +1,75 @@ +/* + * 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 { Get } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { + GetSingleRecommendationOptionalParams, + GetSingleRecommendationResponse +} from "../models"; + +/** Class containing Get operations. */ +export class GetImpl implements Get { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class Get class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * Gets a recommendation by its id. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param recommendationId Recommendation Id. + * @param options The options parameters. + */ + singleRecommendation( + resourceGroupName: string, + workspaceName: string, + recommendationId: string, + options?: GetSingleRecommendationOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, recommendationId, options }, + singleRecommendationOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const singleRecommendationOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.Recommendation + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.recommendationId + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/getRecommendations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/getRecommendations.ts new file mode 100644 index 000000000000..b354ff342f93 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/getRecommendations.ts @@ -0,0 +1,72 @@ +/* + * 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 { GetRecommendations } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { + GetRecommendationsListOptionalParams, + GetRecommendationsListResponse +} from "../models"; + +/** Class containing GetRecommendations operations. */ +export class GetRecommendationsImpl implements GetRecommendations { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class GetRecommendations class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * Gets a list of all recommendations. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param options The options parameters. + */ + list( + resourceGroupName: string, + workspaceName: string, + options?: GetRecommendationsListOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, options }, + listOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const listOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.RecommendationList + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/getTriggeredAnalyticsRuleRuns.ts b/sdk/securityinsight/arm-securityinsight/src/operations/getTriggeredAnalyticsRuleRuns.ts new file mode 100644 index 000000000000..c6813493406d --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/getTriggeredAnalyticsRuleRuns.ts @@ -0,0 +1,195 @@ +/* + * 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 { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; +import { GetTriggeredAnalyticsRuleRuns } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { + TriggeredAnalyticsRuleRun, + GetTriggeredAnalyticsRuleRunsListNextOptionalParams, + GetTriggeredAnalyticsRuleRunsListOptionalParams, + GetTriggeredAnalyticsRuleRunsListResponse, + GetTriggeredAnalyticsRuleRunsListNextResponse +} from "../models"; + +/// +/** Class containing GetTriggeredAnalyticsRuleRuns operations. */ +export class GetTriggeredAnalyticsRuleRunsImpl + implements GetTriggeredAnalyticsRuleRuns { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class GetTriggeredAnalyticsRuleRuns class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * Gets the triggered analytics rule runs. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param options The options parameters. + */ + public list( + resourceGroupName: string, + workspaceName: string, + options?: GetTriggeredAnalyticsRuleRunsListOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listPagingAll(resourceGroupName, workspaceName, options); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); + } + }; + } + + private async *listPagingPage( + resourceGroupName: string, + workspaceName: string, + options?: GetTriggeredAnalyticsRuleRunsListOptionalParams, + settings?: PageSettings + ): AsyncIterableIterator { + let result: GetTriggeredAnalyticsRuleRunsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } + while (continuationToken) { + result = await this._listNext( + resourceGroupName, + workspaceName, + continuationToken, + options + ); + continuationToken = result.nextLink; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; + } + } + + private async *listPagingAll( + resourceGroupName: string, + workspaceName: string, + options?: GetTriggeredAnalyticsRuleRunsListOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listPagingPage( + resourceGroupName, + workspaceName, + options + )) { + yield* page; + } + } + + /** + * Gets the triggered analytics rule runs. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param options The options parameters. + */ + private _list( + resourceGroupName: string, + workspaceName: string, + options?: GetTriggeredAnalyticsRuleRunsListOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, options }, + listOperationSpec + ); + } + + /** + * ListNext + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param nextLink The nextLink from the previous successful call to the List method. + * @param options The options parameters. + */ + private _listNext( + resourceGroupName: string, + workspaceName: string, + nextLink: string, + options?: GetTriggeredAnalyticsRuleRunsListNextOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, nextLink, options }, + listNextOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const listOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.TriggeredAnalyticsRuleRuns + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; +const listNextOperationSpec: coreClient.OperationSpec = { + path: "{nextLink}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.TriggeredAnalyticsRuleRuns + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.nextLink + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/incidentComments.ts b/sdk/securityinsight/arm-securityinsight/src/operations/incidentComments.ts index ae27ca7777d1..739ad280e2d9 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/incidentComments.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/incidentComments.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { IncidentComments } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -64,12 +65,16 @@ export class IncidentCommentsImpl implements IncidentComments { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listPagingPage( resourceGroupName, workspaceName, incidentId, - options + options, + settings ); } }; @@ -79,16 +84,23 @@ export class IncidentCommentsImpl implements IncidentComments { resourceGroupName: string, workspaceName: string, incidentId: string, - options?: IncidentCommentsListOptionalParams + options?: IncidentCommentsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list( - resourceGroupName, - workspaceName, - incidentId, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: IncidentCommentsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list( + resourceGroupName, + workspaceName, + incidentId, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -98,7 +110,9 @@ export class IncidentCommentsImpl implements IncidentComments { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -361,13 +375,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/incidentRelations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/incidentRelations.ts index c58d9e3de7af..280b5a260cd4 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/incidentRelations.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/incidentRelations.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { IncidentRelations } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -64,12 +65,16 @@ export class IncidentRelationsImpl implements IncidentRelations { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listPagingPage( resourceGroupName, workspaceName, incidentId, - options + options, + settings ); } }; @@ -79,16 +84,23 @@ export class IncidentRelationsImpl implements IncidentRelations { resourceGroupName: string, workspaceName: string, incidentId: string, - options?: IncidentRelationsListOptionalParams + options?: IncidentRelationsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list( - resourceGroupName, - workspaceName, - incidentId, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: IncidentRelationsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list( + resourceGroupName, + workspaceName, + incidentId, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -98,7 +110,9 @@ export class IncidentRelationsImpl implements IncidentRelations { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -349,13 +363,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/incidentTasks.ts b/sdk/securityinsight/arm-securityinsight/src/operations/incidentTasks.ts new file mode 100644 index 000000000000..fa1f14f92b19 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/incidentTasks.ts @@ -0,0 +1,370 @@ +/* + * 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 { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; +import { IncidentTasks } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { + IncidentTask, + IncidentTasksListNextOptionalParams, + IncidentTasksListOptionalParams, + IncidentTasksListResponse, + IncidentTasksGetOptionalParams, + IncidentTasksGetResponse, + IncidentTasksCreateOrUpdateOptionalParams, + IncidentTasksCreateOrUpdateResponse, + IncidentTasksDeleteOptionalParams, + IncidentTasksListNextResponse +} from "../models"; + +/// +/** Class containing IncidentTasks operations. */ +export class IncidentTasksImpl implements IncidentTasks { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class IncidentTasks class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * Gets all incident tasks. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param options The options parameters. + */ + public list( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + options?: IncidentTasksListOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listPagingAll( + resourceGroupName, + workspaceName, + incidentId, + options + ); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + incidentId, + options, + settings + ); + } + }; + } + + private async *listPagingPage( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + options?: IncidentTasksListOptionalParams, + settings?: PageSettings + ): AsyncIterableIterator { + let result: IncidentTasksListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list( + resourceGroupName, + workspaceName, + incidentId, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } + while (continuationToken) { + result = await this._listNext( + resourceGroupName, + workspaceName, + incidentId, + continuationToken, + options + ); + continuationToken = result.nextLink; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; + } + } + + private async *listPagingAll( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + options?: IncidentTasksListOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listPagingPage( + resourceGroupName, + workspaceName, + incidentId, + options + )) { + yield* page; + } + } + + /** + * Gets all incident tasks. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param options The options parameters. + */ + private _list( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + options?: IncidentTasksListOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, incidentId, options }, + listOperationSpec + ); + } + + /** + * Gets an incident task. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param incidentTaskId Incident task ID + * @param options The options parameters. + */ + get( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + incidentTaskId: string, + options?: IncidentTasksGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, incidentId, incidentTaskId, options }, + getOperationSpec + ); + } + + /** + * Creates or updates the incident task. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param incidentTaskId Incident task ID + * @param incidentTask The incident task + * @param options The options parameters. + */ + createOrUpdate( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + incidentTaskId: string, + incidentTask: IncidentTask, + options?: IncidentTasksCreateOrUpdateOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { + resourceGroupName, + workspaceName, + incidentId, + incidentTaskId, + incidentTask, + options + }, + createOrUpdateOperationSpec + ); + } + + /** + * Delete the incident task. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param incidentTaskId Incident task ID + * @param options The options parameters. + */ + delete( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + incidentTaskId: string, + options?: IncidentTasksDeleteOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, incidentId, incidentTaskId, options }, + deleteOperationSpec + ); + } + + /** + * ListNext + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param nextLink The nextLink from the previous successful call to the List method. + * @param options The options parameters. + */ + private _listNext( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + nextLink: string, + options?: IncidentTasksListNextOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, incidentId, nextLink, options }, + listNextOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const listOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/tasks", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.IncidentTaskList + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.incidentId + ], + headerParameters: [Parameters.accept], + serializer +}; +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/tasks/{incidentTaskId}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.IncidentTask + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.incidentId, + Parameters.incidentTaskId + ], + headerParameters: [Parameters.accept], + serializer +}; +const createOrUpdateOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/tasks/{incidentTaskId}", + httpMethod: "PUT", + responses: { + 200: { + bodyMapper: Mappers.IncidentTask + }, + 201: { + bodyMapper: Mappers.IncidentTask + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + requestBody: Parameters.incidentTask, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.incidentId, + Parameters.incidentTaskId + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; +const deleteOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/tasks/{incidentTaskId}", + httpMethod: "DELETE", + responses: { + 200: {}, + 204: {}, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.incidentId, + Parameters.incidentTaskId + ], + headerParameters: [Parameters.accept], + serializer +}; +const listNextOperationSpec: coreClient.OperationSpec = { + path: "{nextLink}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.IncidentTaskList + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.nextLink, + Parameters.incidentId + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/incidents.ts b/sdk/securityinsight/arm-securityinsight/src/operations/incidents.ts index 3cf9b36c40ec..590556a9b541 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/incidents.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/incidents.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Incidents } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -16,15 +17,15 @@ import { Incident, IncidentsListNextOptionalParams, IncidentsListOptionalParams, + IncidentsListResponse, IncidentsRunPlaybookOptionalParams, IncidentsRunPlaybookResponse, - IncidentsListResponse, IncidentsGetOptionalParams, IncidentsGetResponse, IncidentsCreateOrUpdateOptionalParams, IncidentsCreateOrUpdateResponse, IncidentsDeleteOptionalParams, - TeamProperties, + TeamInformation, IncidentsCreateTeamOptionalParams, IncidentsCreateTeamResponse, IncidentsListAlertsOptionalParams, @@ -68,8 +69,16 @@ export class IncidentsImpl implements Incidents { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -77,11 +86,18 @@ export class IncidentsImpl implements Incidents { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: IncidentsListOptionalParams + options?: IncidentsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: IncidentsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -90,7 +106,9 @@ export class IncidentsImpl implements Incidents { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -216,7 +234,7 @@ export class IncidentsImpl implements Incidents { resourceGroupName: string, workspaceName: string, incidentId: string, - teamProperties: TeamProperties, + teamProperties: TeamInformation, options?: IncidentsCreateTeamOptionalParams ): Promise { return this.client.sendOperationRequest( @@ -537,13 +555,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/index.ts b/sdk/securityinsight/arm-securityinsight/src/operations/index.ts index 6f66d834535e..0fb0c9d731c9 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/index.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/index.ts @@ -9,6 +9,9 @@ export * from "./alertRules"; export * from "./actions"; export * from "./alertRuleTemplates"; +export * from "./triggeredAnalyticsRuleRunOperations"; +export * from "./getTriggeredAnalyticsRuleRuns"; +export * from "./alertRuleOperations"; export * from "./automationRules"; export * from "./incidents"; export * from "./bookmarks"; @@ -25,9 +28,13 @@ export * from "./entityQueryTemplates"; export * from "./fileImports"; export * from "./incidentComments"; export * from "./incidentRelations"; +export * from "./incidentTasks"; export * from "./metadata"; export * from "./officeConsents"; export * from "./sentinelOnboardingStates"; +export * from "./getRecommendations"; +export * from "./get"; +export * from "./update"; export * from "./securityMLAnalyticsSettings"; export * from "./productSettings"; export * from "./sourceControlOperations"; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/metadata.ts b/sdk/securityinsight/arm-securityinsight/src/operations/metadata.ts index be14e682404d..13eb2ca4e7df 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/metadata.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/metadata.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Metadata } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -60,8 +61,16 @@ export class MetadataImpl implements Metadata { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -69,11 +78,18 @@ export class MetadataImpl implements Metadata { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: MetadataListOptionalParams + options?: MetadataListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: MetadataListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -82,7 +98,9 @@ export class MetadataImpl implements Metadata { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -362,13 +380,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skip - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/officeConsents.ts b/sdk/securityinsight/arm-securityinsight/src/operations/officeConsents.ts index 28d1a51e8097..ee7a70418524 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/officeConsents.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/officeConsents.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { OfficeConsents } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -55,8 +56,16 @@ export class OfficeConsentsImpl implements OfficeConsents { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -64,11 +73,18 @@ export class OfficeConsentsImpl implements OfficeConsents { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: OfficeConsentsListOptionalParams + options?: OfficeConsentsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: OfficeConsentsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -77,7 +93,9 @@ export class OfficeConsentsImpl implements OfficeConsents { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -250,7 +268,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/operations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/operations.ts index c4723841b70a..bb5947816a4f 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/operations.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/operations.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Operations } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -48,22 +49,34 @@ export class OperationsImpl implements Operations { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage(options, settings); } }; } private async *listPagingPage( - options?: OperationsListOptionalParams + options?: OperationsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: OperationsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext(continuationToken, options); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -130,7 +143,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [Parameters.$host, Parameters.nextLink], headerParameters: [Parameters.accept], serializer diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/securityMLAnalyticsSettings.ts b/sdk/securityinsight/arm-securityinsight/src/operations/securityMLAnalyticsSettings.ts index 3b4bae234a8e..e44c11eda5e4 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/securityMLAnalyticsSettings.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/securityMLAnalyticsSettings.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { SecurityMLAnalyticsSettings } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -58,8 +59,16 @@ export class SecurityMLAnalyticsSettingsImpl [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -67,11 +76,18 @@ export class SecurityMLAnalyticsSettingsImpl private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: SecurityMLAnalyticsSettingsListOptionalParams + options?: SecurityMLAnalyticsSettingsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: SecurityMLAnalyticsSettingsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -80,7 +96,9 @@ export class SecurityMLAnalyticsSettingsImpl options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -308,7 +326,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/sourceControlOperations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/sourceControlOperations.ts index 1337fe8b5caa..3ec1025708df 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/sourceControlOperations.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/sourceControlOperations.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { SourceControlOperations } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -60,12 +61,16 @@ export class SourceControlOperationsImpl implements SourceControlOperations { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listRepositoriesPagingPage( resourceGroupName, workspaceName, repoType, - options + options, + settings ); } }; @@ -75,16 +80,23 @@ export class SourceControlOperationsImpl implements SourceControlOperations { resourceGroupName: string, workspaceName: string, repoType: RepoType, - options?: SourceControlListRepositoriesOptionalParams + options?: SourceControlListRepositoriesOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._listRepositories( - resourceGroupName, - workspaceName, - repoType, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: SourceControlListRepositoriesResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._listRepositories( + resourceGroupName, + workspaceName, + repoType, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listRepositoriesNext( resourceGroupName, @@ -94,7 +106,9 @@ export class SourceControlOperationsImpl implements SourceControlOperations { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -192,7 +206,6 @@ const listRepositoriesNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/sourceControls.ts b/sdk/securityinsight/arm-securityinsight/src/operations/sourceControls.ts index 4fc9a379dd59..ca0870585015 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/sourceControls.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/sourceControls.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { SourceControls } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -57,8 +58,16 @@ export class SourceControlsImpl implements SourceControls { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -66,11 +75,18 @@ export class SourceControlsImpl implements SourceControls { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: SourceControlsListOptionalParams + options?: SourceControlsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: SourceControlsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -79,7 +95,9 @@ export class SourceControlsImpl implements SourceControls { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -307,7 +325,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicator.ts b/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicator.ts index 38d88c457010..e753b93e1b87 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicator.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicator.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { ThreatIntelligenceIndicator } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -17,6 +18,7 @@ import { ThreatIntelligenceFilteringCriteria, ThreatIntelligenceIndicatorQueryIndicatorsNextOptionalParams, ThreatIntelligenceIndicatorQueryIndicatorsOptionalParams, + ThreatIntelligenceIndicatorQueryIndicatorsResponse, ThreatIntelligenceIndicatorModel, ThreatIntelligenceIndicatorCreateIndicatorOptionalParams, ThreatIntelligenceIndicatorCreateIndicatorResponse, @@ -25,7 +27,6 @@ import { ThreatIntelligenceIndicatorCreateOptionalParams, ThreatIntelligenceIndicatorCreateResponse, ThreatIntelligenceIndicatorDeleteOptionalParams, - ThreatIntelligenceIndicatorQueryIndicatorsResponse, ThreatIntelligenceAppendTags, ThreatIntelligenceIndicatorAppendTagsOptionalParams, ThreatIntelligenceIndicatorReplaceTagsOptionalParams, @@ -74,12 +75,16 @@ export class ThreatIntelligenceIndicatorImpl [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.queryIndicatorsPagingPage( resourceGroupName, workspaceName, threatIntelligenceFilteringCriteria, - options + options, + settings ); } }; @@ -89,16 +94,23 @@ export class ThreatIntelligenceIndicatorImpl resourceGroupName: string, workspaceName: string, threatIntelligenceFilteringCriteria: ThreatIntelligenceFilteringCriteria, - options?: ThreatIntelligenceIndicatorQueryIndicatorsOptionalParams + options?: ThreatIntelligenceIndicatorQueryIndicatorsOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._queryIndicators( - resourceGroupName, - workspaceName, - threatIntelligenceFilteringCriteria, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: ThreatIntelligenceIndicatorQueryIndicatorsResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._queryIndicators( + resourceGroupName, + workspaceName, + threatIntelligenceFilteringCriteria, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._queryIndicatorsNext( resourceGroupName, @@ -108,7 +120,9 @@ export class ThreatIntelligenceIndicatorImpl options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -512,7 +526,6 @@ const queryIndicatorsNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicators.ts b/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicators.ts index af9eb6c60f9b..e91f2583c13f 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicators.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/threatIntelligenceIndicators.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { ThreatIntelligenceIndicators } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -53,8 +54,16 @@ export class ThreatIntelligenceIndicatorsImpl [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -62,11 +71,18 @@ export class ThreatIntelligenceIndicatorsImpl private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: ThreatIntelligenceIndicatorsListOptionalParams + options?: ThreatIntelligenceIndicatorsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: ThreatIntelligenceIndicatorsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -75,7 +91,9 @@ export class ThreatIntelligenceIndicatorsImpl options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -171,13 +189,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [ - Parameters.apiVersion, - Parameters.filter, - Parameters.orderby, - Parameters.top, - Parameters.skipToken - ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/triggeredAnalyticsRuleRunOperations.ts b/sdk/securityinsight/arm-securityinsight/src/operations/triggeredAnalyticsRuleRunOperations.ts new file mode 100644 index 000000000000..2c3565718cc0 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/triggeredAnalyticsRuleRunOperations.ts @@ -0,0 +1,76 @@ +/* + * 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 { TriggeredAnalyticsRuleRunOperations } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { + TriggeredAnalyticsRuleRunGetOptionalParams, + TriggeredAnalyticsRuleRunGetResponse +} from "../models"; + +/** Class containing TriggeredAnalyticsRuleRunOperations operations. */ +export class TriggeredAnalyticsRuleRunOperationsImpl + implements TriggeredAnalyticsRuleRunOperations { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class TriggeredAnalyticsRuleRunOperations class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * Gets the triggered analytics rule run. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param ruleRunId the triggered rule id + * @param options The options parameters. + */ + get( + resourceGroupName: string, + workspaceName: string, + ruleRunId: string, + options?: TriggeredAnalyticsRuleRunGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, ruleRunId, options }, + getOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns/{ruleRunId}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.TriggeredAnalyticsRuleRun + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.ruleRunId + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/update.ts b/sdk/securityinsight/arm-securityinsight/src/operations/update.ts new file mode 100644 index 000000000000..cb73ea25842d --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operations/update.ts @@ -0,0 +1,173 @@ +/* + * 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 { Update } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { SecurityInsights } from "../securityInsights"; +import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro"; +import { LroImpl } from "../lroImpl"; +import { + RecommendationPatch, + UpdateRecommendationOptionalParams, + UpdateRecommendationResponse +} from "../models"; + +/** Class containing Update operations. */ +export class UpdateImpl implements Update { + private readonly client: SecurityInsights; + + /** + * Initialize a new instance of the class Update class. + * @param client Reference to the service client + */ + constructor(client: SecurityInsights) { + this.client = client; + } + + /** + * Patch a recommendation. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param recommendationId Recommendation Id. + * @param recommendationPatch Recommendation Fields to Update. + * @param options The options parameters. + */ + async beginRecommendation( + resourceGroupName: string, + workspaceName: string, + recommendationId: string, + recommendationPatch: RecommendationPatch[], + options?: UpdateRecommendationOptionalParams + ): Promise< + PollerLike< + PollOperationState, + UpdateRecommendationResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { + resourceGroupName, + workspaceName, + recommendationId, + recommendationPatch, + options + }, + recommendationOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Patch a recommendation. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param recommendationId Recommendation Id. + * @param recommendationPatch Recommendation Fields to Update. + * @param options The options parameters. + */ + async beginRecommendationAndWait( + resourceGroupName: string, + workspaceName: string, + recommendationId: string, + recommendationPatch: RecommendationPatch[], + options?: UpdateRecommendationOptionalParams + ): Promise { + const poller = await this.beginRecommendation( + resourceGroupName, + workspaceName, + recommendationId, + recommendationPatch, + options + ); + return poller.pollUntilDone(); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const recommendationOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId}", + httpMethod: "PATCH", + responses: { + 200: { + bodyMapper: Mappers.Recommendation + }, + 201: { + bodyMapper: Mappers.Recommendation + }, + 202: { + bodyMapper: Mappers.Recommendation + }, + 204: { + bodyMapper: Mappers.Recommendation + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + requestBody: Parameters.recommendationPatch, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.recommendationId + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/watchlistItems.ts b/sdk/securityinsight/arm-securityinsight/src/operations/watchlistItems.ts index 265d8e1a7791..666a4319eeb6 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/watchlistItems.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/watchlistItems.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { WatchlistItems } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -64,12 +65,16 @@ export class WatchlistItemsImpl implements WatchlistItems { [Symbol.asyncIterator]() { return this; }, - byPage: () => { + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } return this.listPagingPage( resourceGroupName, workspaceName, watchlistAlias, - options + options, + settings ); } }; @@ -79,16 +84,23 @@ export class WatchlistItemsImpl implements WatchlistItems { resourceGroupName: string, workspaceName: string, watchlistAlias: string, - options?: WatchlistItemsListOptionalParams + options?: WatchlistItemsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list( - resourceGroupName, - workspaceName, - watchlistAlias, - options - ); - yield result.value || []; - let continuationToken = result.nextLink; + let result: WatchlistItemsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list( + resourceGroupName, + workspaceName, + watchlistAlias, + options + ); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -98,7 +110,9 @@ export class WatchlistItemsImpl implements WatchlistItems { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -355,7 +369,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion, Parameters.skipToken], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operations/watchlists.ts b/sdk/securityinsight/arm-securityinsight/src/operations/watchlists.ts index 6b21e6d9455d..3a83914f06c7 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operations/watchlists.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operations/watchlists.ts @@ -6,7 +6,8 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ -import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; import { Watchlists } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; @@ -58,8 +59,16 @@ export class WatchlistsImpl implements Watchlists { [Symbol.asyncIterator]() { return this; }, - byPage: () => { - return this.listPagingPage(resourceGroupName, workspaceName, options); + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); } }; } @@ -67,11 +76,18 @@ export class WatchlistsImpl implements Watchlists { private async *listPagingPage( resourceGroupName: string, workspaceName: string, - options?: WatchlistsListOptionalParams + options?: WatchlistsListOptionalParams, + settings?: PageSettings ): AsyncIterableIterator { - let result = await this._list(resourceGroupName, workspaceName, options); - yield result.value || []; - let continuationToken = result.nextLink; + let result: WatchlistsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } while (continuationToken) { result = await this._listNext( resourceGroupName, @@ -80,7 +96,9 @@ export class WatchlistsImpl implements Watchlists { options ); continuationToken = result.nextLink; - yield result.value || []; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; } } @@ -310,7 +328,6 @@ const listNextOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.CloudError } }, - queryParameters: [Parameters.apiVersion, Parameters.skipToken], urlParameters: [ Parameters.$host, Parameters.subscriptionId, diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/alertRuleOperations.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/alertRuleOperations.ts new file mode 100644 index 000000000000..5b13b7aa8cb5 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/alertRuleOperations.ts @@ -0,0 +1,53 @@ +/* + * 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 { PollerLike, PollOperationState } from "@azure/core-lro"; +import { + AnalyticsRuleRunTrigger, + AlertRuleTriggerRuleRunOptionalParams, + AlertRuleTriggerRuleRunResponse +} from "../models"; + +/** Interface representing a AlertRuleOperations. */ +export interface AlertRuleOperations { + /** + * triggers analytics rule run + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param ruleId Alert rule ID + * @param analyticsRuleRunTriggerParameter The Analytics Rule Run Trigger parameter + * @param options The options parameters. + */ + beginTriggerRuleRun( + resourceGroupName: string, + workspaceName: string, + ruleId: string, + analyticsRuleRunTriggerParameter: AnalyticsRuleRunTrigger, + options?: AlertRuleTriggerRuleRunOptionalParams + ): Promise< + PollerLike< + PollOperationState, + AlertRuleTriggerRuleRunResponse + > + >; + /** + * triggers analytics rule run + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param ruleId Alert rule ID + * @param analyticsRuleRunTriggerParameter The Analytics Rule Run Trigger parameter + * @param options The options parameters. + */ + beginTriggerRuleRunAndWait( + resourceGroupName: string, + workspaceName: string, + ruleId: string, + analyticsRuleRunTriggerParameter: AnalyticsRuleRunTrigger, + options?: AlertRuleTriggerRuleRunOptionalParams + ): Promise; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/get.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/get.ts new file mode 100644 index 000000000000..8384596c454c --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/get.ts @@ -0,0 +1,29 @@ +/* + * 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 { + GetSingleRecommendationOptionalParams, + GetSingleRecommendationResponse +} from "../models"; + +/** Interface representing a Get. */ +export interface Get { + /** + * Gets a recommendation by its id. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param recommendationId Recommendation Id. + * @param options The options parameters. + */ + singleRecommendation( + resourceGroupName: string, + workspaceName: string, + recommendationId: string, + options?: GetSingleRecommendationOptionalParams + ): Promise; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/getRecommendations.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/getRecommendations.ts new file mode 100644 index 000000000000..3c68d7feb9c2 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/getRecommendations.ts @@ -0,0 +1,27 @@ +/* + * 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 { + GetRecommendationsListOptionalParams, + GetRecommendationsListResponse +} from "../models"; + +/** Interface representing a GetRecommendations. */ +export interface GetRecommendations { + /** + * Gets a list of all recommendations. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param options The options parameters. + */ + list( + resourceGroupName: string, + workspaceName: string, + options?: GetRecommendationsListOptionalParams + ): Promise; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/getTriggeredAnalyticsRuleRuns.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/getTriggeredAnalyticsRuleRuns.ts new file mode 100644 index 000000000000..f1c077beeeaa --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/getTriggeredAnalyticsRuleRuns.ts @@ -0,0 +1,29 @@ +/* + * 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 { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { + TriggeredAnalyticsRuleRun, + GetTriggeredAnalyticsRuleRunsListOptionalParams +} from "../models"; + +/// +/** Interface representing a GetTriggeredAnalyticsRuleRuns. */ +export interface GetTriggeredAnalyticsRuleRuns { + /** + * Gets the triggered analytics rule runs. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param options The options parameters. + */ + list( + resourceGroupName: string, + workspaceName: string, + options?: GetTriggeredAnalyticsRuleRunsListOptionalParams + ): PagedAsyncIterableIterator; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidentTasks.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidentTasks.ts new file mode 100644 index 000000000000..68e3fc281f99 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidentTasks.ts @@ -0,0 +1,83 @@ +/* + * 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 { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { + IncidentTask, + IncidentTasksListOptionalParams, + IncidentTasksGetOptionalParams, + IncidentTasksGetResponse, + IncidentTasksCreateOrUpdateOptionalParams, + IncidentTasksCreateOrUpdateResponse, + IncidentTasksDeleteOptionalParams +} from "../models"; + +/// +/** Interface representing a IncidentTasks. */ +export interface IncidentTasks { + /** + * Gets all incident tasks. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param options The options parameters. + */ + list( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + options?: IncidentTasksListOptionalParams + ): PagedAsyncIterableIterator; + /** + * Gets an incident task. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param incidentTaskId Incident task ID + * @param options The options parameters. + */ + get( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + incidentTaskId: string, + options?: IncidentTasksGetOptionalParams + ): Promise; + /** + * Creates or updates the incident task. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param incidentTaskId Incident task ID + * @param incidentTask The incident task + * @param options The options parameters. + */ + createOrUpdate( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + incidentTaskId: string, + incidentTask: IncidentTask, + options?: IncidentTasksCreateOrUpdateOptionalParams + ): Promise; + /** + * Delete the incident task. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param incidentId Incident ID + * @param incidentTaskId Incident task ID + * @param options The options parameters. + */ + delete( + resourceGroupName: string, + workspaceName: string, + incidentId: string, + incidentTaskId: string, + options?: IncidentTasksDeleteOptionalParams + ): Promise; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidents.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidents.ts index 18695a4f8cc7..300c8af1bbdc 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidents.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/incidents.ts @@ -17,7 +17,7 @@ import { IncidentsCreateOrUpdateOptionalParams, IncidentsCreateOrUpdateResponse, IncidentsDeleteOptionalParams, - TeamProperties, + TeamInformation, IncidentsCreateTeamOptionalParams, IncidentsCreateTeamResponse, IncidentsListAlertsOptionalParams, @@ -109,7 +109,7 @@ export interface Incidents { resourceGroupName: string, workspaceName: string, incidentId: string, - teamProperties: TeamProperties, + teamProperties: TeamInformation, options?: IncidentsCreateTeamOptionalParams ): Promise; /** diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/index.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/index.ts index 6f66d834535e..0fb0c9d731c9 100644 --- a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/index.ts +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/index.ts @@ -9,6 +9,9 @@ export * from "./alertRules"; export * from "./actions"; export * from "./alertRuleTemplates"; +export * from "./triggeredAnalyticsRuleRunOperations"; +export * from "./getTriggeredAnalyticsRuleRuns"; +export * from "./alertRuleOperations"; export * from "./automationRules"; export * from "./incidents"; export * from "./bookmarks"; @@ -25,9 +28,13 @@ export * from "./entityQueryTemplates"; export * from "./fileImports"; export * from "./incidentComments"; export * from "./incidentRelations"; +export * from "./incidentTasks"; export * from "./metadata"; export * from "./officeConsents"; export * from "./sentinelOnboardingStates"; +export * from "./getRecommendations"; +export * from "./get"; +export * from "./update"; export * from "./securityMLAnalyticsSettings"; export * from "./productSettings"; export * from "./sourceControlOperations"; diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/triggeredAnalyticsRuleRunOperations.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/triggeredAnalyticsRuleRunOperations.ts new file mode 100644 index 000000000000..5447cc5462a3 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/triggeredAnalyticsRuleRunOperations.ts @@ -0,0 +1,29 @@ +/* + * 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 { + TriggeredAnalyticsRuleRunGetOptionalParams, + TriggeredAnalyticsRuleRunGetResponse +} from "../models"; + +/** Interface representing a TriggeredAnalyticsRuleRunOperations. */ +export interface TriggeredAnalyticsRuleRunOperations { + /** + * Gets the triggered analytics rule run. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param ruleRunId the triggered rule id + * @param options The options parameters. + */ + get( + resourceGroupName: string, + workspaceName: string, + ruleRunId: string, + options?: TriggeredAnalyticsRuleRunGetOptionalParams + ): Promise; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/update.ts b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/update.ts new file mode 100644 index 000000000000..af860bcdf8e5 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/operationsInterfaces/update.ts @@ -0,0 +1,53 @@ +/* + * 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 { PollerLike, PollOperationState } from "@azure/core-lro"; +import { + RecommendationPatch, + UpdateRecommendationOptionalParams, + UpdateRecommendationResponse +} from "../models"; + +/** Interface representing a Update. */ +export interface Update { + /** + * Patch a recommendation. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param recommendationId Recommendation Id. + * @param recommendationPatch Recommendation Fields to Update. + * @param options The options parameters. + */ + beginRecommendation( + resourceGroupName: string, + workspaceName: string, + recommendationId: string, + recommendationPatch: RecommendationPatch[], + options?: UpdateRecommendationOptionalParams + ): Promise< + PollerLike< + PollOperationState, + UpdateRecommendationResponse + > + >; + /** + * Patch a recommendation. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The name of the workspace. + * @param recommendationId Recommendation Id. + * @param recommendationPatch Recommendation Fields to Update. + * @param options The options parameters. + */ + beginRecommendationAndWait( + resourceGroupName: string, + workspaceName: string, + recommendationId: string, + recommendationPatch: RecommendationPatch[], + options?: UpdateRecommendationOptionalParams + ): Promise; +} diff --git a/sdk/securityinsight/arm-securityinsight/src/pagingHelper.ts b/sdk/securityinsight/arm-securityinsight/src/pagingHelper.ts new file mode 100644 index 000000000000..269a2b9814b5 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/src/pagingHelper.ts @@ -0,0 +1,39 @@ +/* + * 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. + */ + +export interface PageInfo { + continuationToken?: string; +} + +const pageMap = new WeakMap(); + +/** + * Given the last `.value` produced by the `byPage` iterator, + * returns a continuation token that can be used to begin paging from + * that point later. + * @param page An object from accessing `value` on the IteratorResult from a `byPage` iterator. + * @returns The continuation token that can be passed into byPage() during future calls. + */ +export function getContinuationToken(page: unknown): string | undefined { + if (typeof page !== "object" || page === null) { + return undefined; + } + return pageMap.get(page)?.continuationToken; +} + +export function setContinuationToken( + page: unknown, + continuationToken: string | undefined +): void { + if (typeof page !== "object" || page === null || !continuationToken) { + return; + } + const pageInfo = pageMap.get(page) ?? {}; + pageInfo.continuationToken = continuationToken; + pageMap.set(page, pageInfo); +} diff --git a/sdk/securityinsight/arm-securityinsight/src/securityInsights.ts b/sdk/securityinsight/arm-securityinsight/src/securityInsights.ts index 240c03409f08..4f56690542dd 100644 --- a/sdk/securityinsight/arm-securityinsight/src/securityInsights.ts +++ b/sdk/securityinsight/arm-securityinsight/src/securityInsights.ts @@ -18,6 +18,9 @@ import { AlertRulesImpl, ActionsImpl, AlertRuleTemplatesImpl, + TriggeredAnalyticsRuleRunOperationsImpl, + GetTriggeredAnalyticsRuleRunsImpl, + AlertRuleOperationsImpl, AutomationRulesImpl, IncidentsImpl, BookmarksImpl, @@ -34,9 +37,13 @@ import { FileImportsImpl, IncidentCommentsImpl, IncidentRelationsImpl, + IncidentTasksImpl, MetadataImpl, OfficeConsentsImpl, SentinelOnboardingStatesImpl, + GetRecommendationsImpl, + GetImpl, + UpdateImpl, SecurityMLAnalyticsSettingsImpl, ProductSettingsImpl, SourceControlOperationsImpl, @@ -54,6 +61,9 @@ import { AlertRules, Actions, AlertRuleTemplates, + TriggeredAnalyticsRuleRunOperations, + GetTriggeredAnalyticsRuleRuns, + AlertRuleOperations, AutomationRules, Incidents, Bookmarks, @@ -70,9 +80,13 @@ import { FileImports, IncidentComments, IncidentRelations, + IncidentTasks, Metadata, OfficeConsents, SentinelOnboardingStates, + GetRecommendations, + Get, + Update, SecurityMLAnalyticsSettings, ProductSettings, SourceControlOperations, @@ -120,22 +134,19 @@ export class SecurityInsights extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-securityinsight/1.0.0-beta.6`; + const packageDetails = `azsdk-js-arm-securityinsight/1.0.0-beta.1`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` : `${packageDetails}`; - if (!options.credentialScopes) { - options.credentialScopes = ["https://management.azure.com/.default"]; - } const optionsWithDefaults = { ...defaults, ...options, userAgentOptions: { userAgentPrefix }, - baseUri: + endpoint: options.endpoint ?? options.baseUri ?? "https://management.azure.com" }; super(optionsWithDefaults); @@ -161,7 +172,9 @@ export class SecurityInsights extends coreClient.ServiceClient { this.pipeline.addPolicy( coreRestPipeline.bearerTokenAuthenticationPolicy({ credential: credentials, - scopes: `${optionsWithDefaults.credentialScopes}`, + scopes: + optionsWithDefaults.credentialScopes ?? + `${optionsWithDefaults.endpoint}/.default`, challengeCallbacks: { authorizeRequestOnChallenge: coreClient.authorizeRequestOnClaimChallenge @@ -174,10 +187,17 @@ export class SecurityInsights extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2022-09-01-preview"; + this.apiVersion = options.apiVersion || "2023-02-01-preview"; this.alertRules = new AlertRulesImpl(this); this.actions = new ActionsImpl(this); this.alertRuleTemplates = new AlertRuleTemplatesImpl(this); + this.triggeredAnalyticsRuleRunOperations = new TriggeredAnalyticsRuleRunOperationsImpl( + this + ); + this.getTriggeredAnalyticsRuleRuns = new GetTriggeredAnalyticsRuleRunsImpl( + this + ); + this.alertRuleOperations = new AlertRuleOperationsImpl(this); this.automationRules = new AutomationRulesImpl(this); this.incidents = new IncidentsImpl(this); this.bookmarks = new BookmarksImpl(this); @@ -194,9 +214,13 @@ export class SecurityInsights extends coreClient.ServiceClient { this.fileImports = new FileImportsImpl(this); this.incidentComments = new IncidentCommentsImpl(this); this.incidentRelations = new IncidentRelationsImpl(this); + this.incidentTasks = new IncidentTasksImpl(this); this.metadata = new MetadataImpl(this); this.officeConsents = new OfficeConsentsImpl(this); this.sentinelOnboardingStates = new SentinelOnboardingStatesImpl(this); + this.getRecommendations = new GetRecommendationsImpl(this); + this.get = new GetImpl(this); + this.update = new UpdateImpl(this); this.securityMLAnalyticsSettings = new SecurityMLAnalyticsSettingsImpl( this ); @@ -253,6 +277,9 @@ export class SecurityInsights extends coreClient.ServiceClient { alertRules: AlertRules; actions: Actions; alertRuleTemplates: AlertRuleTemplates; + triggeredAnalyticsRuleRunOperations: TriggeredAnalyticsRuleRunOperations; + getTriggeredAnalyticsRuleRuns: GetTriggeredAnalyticsRuleRuns; + alertRuleOperations: AlertRuleOperations; automationRules: AutomationRules; incidents: Incidents; bookmarks: Bookmarks; @@ -269,9 +296,13 @@ export class SecurityInsights extends coreClient.ServiceClient { fileImports: FileImports; incidentComments: IncidentComments; incidentRelations: IncidentRelations; + incidentTasks: IncidentTasks; metadata: Metadata; officeConsents: OfficeConsents; sentinelOnboardingStates: SentinelOnboardingStates; + getRecommendations: GetRecommendations; + get: Get; + update: Update; securityMLAnalyticsSettings: SecurityMLAnalyticsSettings; productSettings: ProductSettings; sourceControlOperations: SourceControlOperations; diff --git a/sdk/securityinsight/arm-securityinsight/test/sampleTest.ts b/sdk/securityinsight/arm-securityinsight/test/sampleTest.ts new file mode 100644 index 000000000000..25aeb3ebcc36 --- /dev/null +++ b/sdk/securityinsight/arm-securityinsight/test/sampleTest.ts @@ -0,0 +1,43 @@ +/* + * 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 { + Recorder, + RecorderStartOptions, + env +} from "@azure-tools/test-recorder"; +import { assert } from "chai"; +import { Context } from "mocha"; + +const replaceableVariables: Record = { + AZURE_CLIENT_ID: "azure_client_id", + AZURE_CLIENT_SECRET: "azure_client_secret", + AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888", + SUBSCRIPTION_ID: "azure_subscription_id" +}; + +const recorderOptions: RecorderStartOptions = { + envSetupForPlayback: replaceableVariables +}; + +describe("My test", () => { + let recorder: Recorder; + + beforeEach(async function(this: Context) { + recorder = new Recorder(this.currentTest); + await recorder.start(recorderOptions); + }); + + afterEach(async function() { + await recorder.stop(); + }); + + it("sample test", async function() { + console.log("Hi, I'm a test!"); + }); +}); diff --git a/sdk/securityinsight/arm-securityinsight/tsconfig.json b/sdk/securityinsight/arm-securityinsight/tsconfig.json index 6c7875caddba..3e6ae96443f3 100644 --- a/sdk/securityinsight/arm-securityinsight/tsconfig.json +++ b/sdk/securityinsight/arm-securityinsight/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-securityinsight": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"