// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT.

package armsecurity

const (
	version20150601Preview string = "2015-06-01-preview"
	version20170801        string = "2017-08-01"
	version20170801Preview string = "2017-08-01-preview"
	version20190101        string = "2019-01-01"
	version20190101Preview string = "2019-01-01-preview"
	version20190801        string = "2019-08-01"
	version20200101        string = "2020-01-01"
	version20210801Preview string = "2021-08-01-preview"
	version20211001Preview string = "2021-10-01-preview"
	version20220101        string = "2022-01-01"
	version20220101Preview string = "2022-01-01-preview"
	version20220501        string = "2022-05-01"
	version20220701Preview string = "2022-07-01-preview"
	version20230101Preview string = "2023-01-01-preview"
	version20230215Preview string = "2023-02-15-preview"
	version20230501        string = "2023-05-01"
	version20230501Preview string = "2023-05-01-preview"
	version20231115        string = "2023-11-15"
	version20231201Preview string = "2023-12-01-preview"
	version20240101        string = "2024-01-01"
	version20240801        string = "2024-08-01"
	version20240801Preview string = "2024-08-01-preview"
	version20250504        string = "2025-05-04"
	version20250901Preview string = "2025-09-01-preview"
	version20251001Preview string = "2025-10-01-preview"
	version20251101Preview string = "2025-11-01-preview"
	version20260101        string = "2026-01-01"
	version20260401Preview string = "2026-04-01-preview"
)

// AADConnectivityState - The connectivity state of the external AAD solution
type AADConnectivityState string

const (
	// AADConnectivityStateConnected - Connected
	AADConnectivityStateConnected AADConnectivityState = "Connected"
	// AADConnectivityStateDiscovered - Discovered
	AADConnectivityStateDiscovered AADConnectivityState = "Discovered"
	// AADConnectivityStateNotLicensed - NotLicensed
	AADConnectivityStateNotLicensed AADConnectivityState = "NotLicensed"
)

// PossibleAADConnectivityStateValues returns the possible values for the AADConnectivityState const type.
func PossibleAADConnectivityStateValues() []AADConnectivityState {
	return []AADConnectivityState{
		AADConnectivityStateConnected,
		AADConnectivityStateDiscovered,
		AADConnectivityStateNotLicensed,
	}
}

// ActionType - Enum. Indicates the action type.
type ActionType string

const (
	// ActionTypeEventHub - EventHub
	ActionTypeEventHub ActionType = "EventHub"
	// ActionTypeInternal - Internal
	ActionTypeInternal ActionType = "Internal"
	// ActionTypeLogicApp - LogicApp
	ActionTypeLogicApp ActionType = "LogicApp"
	// ActionTypeWorkspace - Workspace
	ActionTypeWorkspace ActionType = "Workspace"
)

// PossibleActionTypeValues returns the possible values for the ActionType const type.
func PossibleActionTypeValues() []ActionType {
	return []ActionType{
		ActionTypeEventHub,
		ActionTypeInternal,
		ActionTypeLogicApp,
		ActionTypeWorkspace,
	}
}

// ActionableRemediationState - ActionableRemediation Setting.
// None - the setting was never set.
// Enabled - ActionableRemediation is enabled.
// Disabled - ActionableRemediation is disabled.
type ActionableRemediationState string

const (
	// ActionableRemediationStateDisabled - Disabled
	ActionableRemediationStateDisabled ActionableRemediationState = "Disabled"
	// ActionableRemediationStateEnabled - Enabled
	ActionableRemediationStateEnabled ActionableRemediationState = "Enabled"
	// ActionableRemediationStateNone - None
	ActionableRemediationStateNone ActionableRemediationState = "None"
)

// PossibleActionableRemediationStateValues returns the possible values for the ActionableRemediationState const type.
func PossibleActionableRemediationStateValues() []ActionableRemediationState {
	return []ActionableRemediationState{
		ActionableRemediationStateDisabled,
		ActionableRemediationStateEnabled,
		ActionableRemediationStateNone,
	}
}

// AdditionalWorkspaceDataType - Data types sent to workspace.
type AdditionalWorkspaceDataType string

const (
	// AdditionalWorkspaceDataTypeAlerts - Alerts
	AdditionalWorkspaceDataTypeAlerts AdditionalWorkspaceDataType = "Alerts"
	// AdditionalWorkspaceDataTypeRawEvents - RawEvents
	AdditionalWorkspaceDataTypeRawEvents AdditionalWorkspaceDataType = "RawEvents"
)

// PossibleAdditionalWorkspaceDataTypeValues returns the possible values for the AdditionalWorkspaceDataType const type.
func PossibleAdditionalWorkspaceDataTypeValues() []AdditionalWorkspaceDataType {
	return []AdditionalWorkspaceDataType{
		AdditionalWorkspaceDataTypeAlerts,
		AdditionalWorkspaceDataTypeRawEvents,
	}
}

// AdditionalWorkspaceType - Workspace type.
type AdditionalWorkspaceType string

const (
	// AdditionalWorkspaceTypeSentinel - Sentinel
	AdditionalWorkspaceTypeSentinel AdditionalWorkspaceType = "Sentinel"
)

// PossibleAdditionalWorkspaceTypeValues returns the possible values for the AdditionalWorkspaceType const type.
func PossibleAdditionalWorkspaceTypeValues() []AdditionalWorkspaceType {
	return []AdditionalWorkspaceType{
		AdditionalWorkspaceTypeSentinel,
	}
}

// AgentlessEnablement - Agentless Enablement states.
type AgentlessEnablement string

const (
	// AgentlessEnablementDisabled - Disabled
	AgentlessEnablementDisabled AgentlessEnablement = "Disabled"
	// AgentlessEnablementEnabled - Enabled
	AgentlessEnablementEnabled AgentlessEnablement = "Enabled"
	// AgentlessEnablementNotApplicable - NotApplicable
	AgentlessEnablementNotApplicable AgentlessEnablement = "NotApplicable"
)

// PossibleAgentlessEnablementValues returns the possible values for the AgentlessEnablement const type.
func PossibleAgentlessEnablementValues() []AgentlessEnablement {
	return []AgentlessEnablement{
		AgentlessEnablementDisabled,
		AgentlessEnablementEnabled,
		AgentlessEnablementNotApplicable,
	}
}

// AlertSeverity - The risk level of the threat that was detected. Learn more: https://docs.microsoft.com/en-us/azure/security-center/security-center-alerts-overview#how-are-alerts-classified.
type AlertSeverity string

const (
	// AlertSeverityHigh - High
	AlertSeverityHigh AlertSeverity = "High"
	// AlertSeverityInformational - Informational
	AlertSeverityInformational AlertSeverity = "Informational"
	// AlertSeverityLow - Low
	AlertSeverityLow AlertSeverity = "Low"
	// AlertSeverityMedium - Medium
	AlertSeverityMedium AlertSeverity = "Medium"
)

// PossibleAlertSeverityValues returns the possible values for the AlertSeverity const type.
func PossibleAlertSeverityValues() []AlertSeverity {
	return []AlertSeverity{
		AlertSeverityHigh,
		AlertSeverityInformational,
		AlertSeverityLow,
		AlertSeverityMedium,
	}
}

// AlertStatus - The life cycle status of the alert.
type AlertStatus string

const (
	// AlertStatusActive - An alert which doesn't specify a value is assigned the status 'Active'
	AlertStatusActive AlertStatus = "Active"
	// AlertStatusDismissed - Alert dismissed as false positive
	AlertStatusDismissed AlertStatus = "Dismissed"
	// AlertStatusInProgress - An alert which is in handling state
	AlertStatusInProgress AlertStatus = "InProgress"
	// AlertStatusResolved - Alert closed after handling
	AlertStatusResolved AlertStatus = "Resolved"
)

// PossibleAlertStatusValues returns the possible values for the AlertStatus const type.
func PossibleAlertStatusValues() []AlertStatus {
	return []AlertStatus{
		AlertStatusActive,
		AlertStatusDismissed,
		AlertStatusInProgress,
		AlertStatusResolved,
	}
}

// AnnotateDefaultBranchState - Configuration of PR Annotations on default branch.
// Enabled - PR Annotations are enabled on the resource's default branch.
// Disabled - PR Annotations are disabled on the resource's default branch.
type AnnotateDefaultBranchState string

const (
	// AnnotateDefaultBranchStateDisabled - Disabled
	AnnotateDefaultBranchStateDisabled AnnotateDefaultBranchState = "Disabled"
	// AnnotateDefaultBranchStateEnabled - Enabled
	AnnotateDefaultBranchStateEnabled AnnotateDefaultBranchState = "Enabled"
)

// PossibleAnnotateDefaultBranchStateValues returns the possible values for the AnnotateDefaultBranchState const type.
func PossibleAnnotateDefaultBranchStateValues() []AnnotateDefaultBranchState {
	return []AnnotateDefaultBranchState{
		AnnotateDefaultBranchStateDisabled,
		AnnotateDefaultBranchStateEnabled,
	}
}

// ApplicationSourceResourceType - The application source, what it affects, e.g. Assessments
type ApplicationSourceResourceType string

const (
	// ApplicationSourceResourceTypeAssessments - The source of the application is assessments
	ApplicationSourceResourceTypeAssessments ApplicationSourceResourceType = "Assessments"
)

// PossibleApplicationSourceResourceTypeValues returns the possible values for the ApplicationSourceResourceType const type.
func PossibleApplicationSourceResourceTypeValues() []ApplicationSourceResourceType {
	return []ApplicationSourceResourceType{
		ApplicationSourceResourceTypeAssessments,
	}
}

// ArmActionType - Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
type ArmActionType string

const (
	// ArmActionTypeInternal - Actions are for internal-only APIs.
	ArmActionTypeInternal ArmActionType = "Internal"
)

// PossibleArmActionTypeValues returns the possible values for the ArmActionType const type.
func PossibleArmActionTypeValues() []ArmActionType {
	return []ArmActionType{
		ArmActionTypeInternal,
	}
}

// AssessedResourceType - Sub-assessment resource type
type AssessedResourceType string

const (
	// AssessedResourceTypeContainerRegistryVulnerability - ContainerRegistryVulnerability
	AssessedResourceTypeContainerRegistryVulnerability AssessedResourceType = "ContainerRegistryVulnerability"
	// AssessedResourceTypeSQLServerVulnerability - SqlServerVulnerability
	AssessedResourceTypeSQLServerVulnerability AssessedResourceType = "SqlServerVulnerability"
	// AssessedResourceTypeServerVulnerability - ServerVulnerability
	AssessedResourceTypeServerVulnerability AssessedResourceType = "ServerVulnerability"
	// AssessedResourceTypeServerVulnerabilityAssessment - ServerVulnerabilityAssessment
	AssessedResourceTypeServerVulnerabilityAssessment AssessedResourceType = "ServerVulnerabilityAssessment"
)

// PossibleAssessedResourceTypeValues returns the possible values for the AssessedResourceType const type.
func PossibleAssessedResourceTypeValues() []AssessedResourceType {
	return []AssessedResourceType{
		AssessedResourceTypeContainerRegistryVulnerability,
		AssessedResourceTypeSQLServerVulnerability,
		AssessedResourceTypeServerVulnerability,
		AssessedResourceTypeServerVulnerabilityAssessment,
	}
}

// AssessmentStatusCode - Programmatic code for the status of the assessment
type AssessmentStatusCode string

const (
	// AssessmentStatusCodeHealthy - The resource is healthy
	AssessmentStatusCodeHealthy AssessmentStatusCode = "Healthy"
	// AssessmentStatusCodeNotApplicable - Assessment for this resource did not happen
	AssessmentStatusCodeNotApplicable AssessmentStatusCode = "NotApplicable"
	// AssessmentStatusCodeUnhealthy - The resource has a security issue that needs to be addressed
	AssessmentStatusCodeUnhealthy AssessmentStatusCode = "Unhealthy"
)

// PossibleAssessmentStatusCodeValues returns the possible values for the AssessmentStatusCode const type.
func PossibleAssessmentStatusCodeValues() []AssessmentStatusCode {
	return []AssessmentStatusCode{
		AssessmentStatusCodeHealthy,
		AssessmentStatusCodeNotApplicable,
		AssessmentStatusCodeUnhealthy,
	}
}

// AssessmentType - BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on
// custom Azure Policy definition
type AssessmentType string

const (
	// AssessmentTypeBuiltIn - Microsoft Defender for Cloud managed assessments
	AssessmentTypeBuiltIn AssessmentType = "BuiltIn"
	// AssessmentTypeBuiltInPolicy - Microsoft Defender for Cloud managed policies
	AssessmentTypeBuiltInPolicy AssessmentType = "BuiltInPolicy"
	// AssessmentTypeCustom - User defined custom assessments
	AssessmentTypeCustom AssessmentType = "Custom"
	// AssessmentTypeCustomPolicy - User defined policies that are automatically ingested from Azure Policy to Microsoft Defender
	// for Cloud
	AssessmentTypeCustomPolicy AssessmentType = "CustomPolicy"
	// AssessmentTypeCustomerManaged - User assessments pushed directly by the user or other third party to Microsoft Defender
	// for Cloud
	AssessmentTypeCustomerManaged AssessmentType = "CustomerManaged"
	// AssessmentTypeDynamicBuiltIn - Microsoft Defender for Cloud managed assessments that are dynamically created by the system
	AssessmentTypeDynamicBuiltIn AssessmentType = "DynamicBuiltIn"
	// AssessmentTypeManualBuiltIn - Microsoft Defender for Cloud managed assessments that are manually created by the user
	AssessmentTypeManualBuiltIn AssessmentType = "ManualBuiltIn"
	// AssessmentTypeManualBuiltInPolicy - Microsoft Defender for Cloud managed policies that are manually created by the user
	AssessmentTypeManualBuiltInPolicy AssessmentType = "ManualBuiltInPolicy"
	// AssessmentTypeManualCustomPolicy - User defined policies that are manually created by the user
	AssessmentTypeManualCustomPolicy AssessmentType = "ManualCustomPolicy"
	// AssessmentTypeUnknown - Unknown assessment type
	AssessmentTypeUnknown AssessmentType = "Unknown"
	// AssessmentTypeVerifiedPartner - Third party assessments that are verified by Microsoft Defender for Cloud
	AssessmentTypeVerifiedPartner AssessmentType = "VerifiedPartner"
)

// PossibleAssessmentTypeValues returns the possible values for the AssessmentType const type.
func PossibleAssessmentTypeValues() []AssessmentType {
	return []AssessmentType{
		AssessmentTypeBuiltIn,
		AssessmentTypeBuiltInPolicy,
		AssessmentTypeCustom,
		AssessmentTypeCustomPolicy,
		AssessmentTypeCustomerManaged,
		AssessmentTypeDynamicBuiltIn,
		AssessmentTypeManualBuiltIn,
		AssessmentTypeManualBuiltInPolicy,
		AssessmentTypeManualCustomPolicy,
		AssessmentTypeUnknown,
		AssessmentTypeVerifiedPartner,
	}
}

// AttestationComplianceState - Attest category of this assignment
type AttestationComplianceState string

const (
	// AttestationComplianceStateCompliant - compliant
	AttestationComplianceStateCompliant AttestationComplianceState = "compliant"
	// AttestationComplianceStateNonCompliant - nonCompliant
	AttestationComplianceStateNonCompliant AttestationComplianceState = "nonCompliant"
	// AttestationComplianceStateUnknown - unknown
	AttestationComplianceStateUnknown AttestationComplianceState = "unknown"
)

// PossibleAttestationComplianceStateValues returns the possible values for the AttestationComplianceState const type.
func PossibleAttestationComplianceStateValues() []AttestationComplianceState {
	return []AttestationComplianceState{
		AttestationComplianceStateCompliant,
		AttestationComplianceStateNonCompliant,
		AttestationComplianceStateUnknown,
	}
}

// AuthenticationType - The authentication type
type AuthenticationType string

const (
	// AuthenticationTypeAccessToken - AccessToken
	AuthenticationTypeAccessToken AuthenticationType = "AccessToken"
)

// PossibleAuthenticationTypeValues returns the possible values for the AuthenticationType const type.
func PossibleAuthenticationTypeValues() []AuthenticationType {
	return []AuthenticationType{
		AuthenticationTypeAccessToken,
	}
}

// AutoDiscovery - AutoDiscovery states.
type AutoDiscovery string

const (
	// AutoDiscoveryDisabled - Disabled
	AutoDiscoveryDisabled AutoDiscovery = "Disabled"
	// AutoDiscoveryEnabled - Enabled
	AutoDiscoveryEnabled AutoDiscovery = "Enabled"
	// AutoDiscoveryNotApplicable - NotApplicable
	AutoDiscoveryNotApplicable AutoDiscovery = "NotApplicable"
)

// PossibleAutoDiscoveryValues returns the possible values for the AutoDiscovery const type.
func PossibleAutoDiscoveryValues() []AutoDiscovery {
	return []AutoDiscovery{
		AutoDiscoveryDisabled,
		AutoDiscoveryEnabled,
		AutoDiscoveryNotApplicable,
	}
}

// AutoProvision - Describes what kind of security agent provisioning action to take
type AutoProvision string

const (
	// AutoProvisionOff - Do not install security agent on the VMs automatically
	AutoProvisionOff AutoProvision = "Off"
	// AutoProvisionOn - Install missing security agent on VMs automatically
	AutoProvisionOn AutoProvision = "On"
)

// PossibleAutoProvisionValues returns the possible values for the AutoProvision const type.
func PossibleAutoProvisionValues() []AutoProvision {
	return []AutoProvision{
		AutoProvisionOff,
		AutoProvisionOn,
	}
}

// AutomatedResponseType - Optional. Specifies the automated response action to take when malware is detected.
type AutomatedResponseType string

const (
	// AutomatedResponseTypeBlobSoftDelete - The blob will be soft deleted when malware is detected.
	AutomatedResponseTypeBlobSoftDelete AutomatedResponseType = "BlobSoftDelete"
	// AutomatedResponseTypeNone - No automated response will be taken when malware is detected.
	AutomatedResponseTypeNone AutomatedResponseType = "None"
)

// PossibleAutomatedResponseTypeValues returns the possible values for the AutomatedResponseType const type.
func PossibleAutomatedResponseTypeValues() []AutomatedResponseType {
	return []AutomatedResponseType{
		AutomatedResponseTypeBlobSoftDelete,
		AutomatedResponseTypeNone,
	}
}

// BlobScanResultsOptions - Optional. Write scan result on BlobIndexTags by default.
type BlobScanResultsOptions string

const (
	// BlobScanResultsOptionsBlobIndexTags - Write scan results on the blobs index tags.
	BlobScanResultsOptionsBlobIndexTags BlobScanResultsOptions = "BlobIndexTags"
	// BlobScanResultsOptionsNone - Do not write scan results on the blobs index tags.
	BlobScanResultsOptionsNone BlobScanResultsOptions = "None"
)

// PossibleBlobScanResultsOptionsValues returns the possible values for the BlobScanResultsOptions const type.
func PossibleBlobScanResultsOptionsValues() []BlobScanResultsOptions {
	return []BlobScanResultsOptions{
		BlobScanResultsOptionsBlobIndexTags,
		BlobScanResultsOptionsNone,
	}
}

// BundleType - Alert Simulator supported bundles.
type BundleType string

const (
	// BundleTypeAppServices - AppServices
	BundleTypeAppServices BundleType = "AppServices"
	// BundleTypeCosmosDbs - CosmosDbs
	BundleTypeCosmosDbs BundleType = "CosmosDbs"
	// BundleTypeDNS - DNS
	BundleTypeDNS BundleType = "DNS"
	// BundleTypeKeyVaults - KeyVaults
	BundleTypeKeyVaults BundleType = "KeyVaults"
	// BundleTypeKubernetesService - KubernetesService
	BundleTypeKubernetesService BundleType = "KubernetesService"
	// BundleTypeResourceManager - ResourceManager
	BundleTypeResourceManager BundleType = "ResourceManager"
	// BundleTypeSQLServers - SqlServers
	BundleTypeSQLServers BundleType = "SqlServers"
	// BundleTypeStorageAccounts - StorageAccounts
	BundleTypeStorageAccounts BundleType = "StorageAccounts"
	// BundleTypeVirtualMachines - VirtualMachines
	BundleTypeVirtualMachines BundleType = "VirtualMachines"
)

// PossibleBundleTypeValues returns the possible values for the BundleType const type.
func PossibleBundleTypeValues() []BundleType {
	return []BundleType{
		BundleTypeAppServices,
		BundleTypeCosmosDbs,
		BundleTypeDNS,
		BundleTypeKeyVaults,
		BundleTypeKubernetesService,
		BundleTypeResourceManager,
		BundleTypeSQLServers,
		BundleTypeStorageAccounts,
		BundleTypeVirtualMachines,
	}
}

// Categories - The categories of resource that is at risk when the assessment is unhealthy
type Categories string

const (
	// CategoriesAppServices - AppServices
	CategoriesAppServices Categories = "AppServices"
	// CategoriesCompute - Compute
	CategoriesCompute Categories = "Compute"
	// CategoriesContainer - Container
	CategoriesContainer Categories = "Container"
	// CategoriesData - Data
	CategoriesData Categories = "Data"
	// CategoriesIdentityAndAccess - IdentityAndAccess
	CategoriesIdentityAndAccess Categories = "IdentityAndAccess"
	// CategoriesIoT - IoT
	CategoriesIoT Categories = "IoT"
	// CategoriesNetworking - Networking
	CategoriesNetworking Categories = "Networking"
)

// PossibleCategoriesValues returns the possible values for the Categories const type.
func PossibleCategoriesValues() []Categories {
	return []Categories{
		CategoriesAppServices,
		CategoriesCompute,
		CategoriesContainer,
		CategoriesData,
		CategoriesIdentityAndAccess,
		CategoriesIoT,
		CategoriesNetworking,
	}
}

// CloudName - The multi cloud resource's cloud name.
type CloudName string

const (
	// CloudNameAWS - AWS
	CloudNameAWS CloudName = "AWS"
	// CloudNameAzure - Azure
	CloudNameAzure CloudName = "Azure"
	// CloudNameAzureDevOps - AzureDevOps
	CloudNameAzureDevOps CloudName = "AzureDevOps"
	// CloudNameDockerHub - DockerHub
	CloudNameDockerHub CloudName = "DockerHub"
	// CloudNameGCP - GCP
	CloudNameGCP CloudName = "GCP"
	// CloudNameGitLab - GitLab
	CloudNameGitLab CloudName = "GitLab"
	// CloudNameGithub - Github
	CloudNameGithub CloudName = "Github"
	// CloudNameJFrog - JFrog
	CloudNameJFrog CloudName = "JFrog"
)

// PossibleCloudNameValues returns the possible values for the CloudName const type.
func PossibleCloudNameValues() []CloudName {
	return []CloudName{
		CloudNameAWS,
		CloudNameAzure,
		CloudNameAzureDevOps,
		CloudNameDockerHub,
		CloudNameGCP,
		CloudNameGitLab,
		CloudNameGithub,
		CloudNameJFrog,
	}
}

type ConnectionType string

const (
	// ConnectionTypeExternal - External
	ConnectionTypeExternal ConnectionType = "External"
	// ConnectionTypeInternal - Internal
	ConnectionTypeInternal ConnectionType = "Internal"
)

// PossibleConnectionTypeValues returns the possible values for the ConnectionType const type.
func PossibleConnectionTypeValues() []ConnectionType {
	return []ConnectionType{
		ConnectionTypeExternal,
		ConnectionTypeInternal,
	}
}

// ControlType - The type of security control (for example, BuiltIn)
type ControlType string

const (
	// ControlTypeBuiltIn - Microsoft Defender for Cloud managed assessments
	ControlTypeBuiltIn ControlType = "BuiltIn"
	// ControlTypeCustom - Non Microsoft Defender for Cloud managed assessments
	ControlTypeCustom ControlType = "Custom"
)

// PossibleControlTypeValues returns the possible values for the ControlType const type.
func PossibleControlTypeValues() []ControlType {
	return []ControlType{
		ControlTypeBuiltIn,
		ControlTypeCustom,
	}
}

// CreatedByType - The kind of entity that created the resource.
type CreatedByType string

const (
	// CreatedByTypeApplication - The entity was created by an application.
	CreatedByTypeApplication CreatedByType = "Application"
	// CreatedByTypeKey - The entity was created by a key.
	CreatedByTypeKey CreatedByType = "Key"
	// CreatedByTypeManagedIdentity - The entity was created by a managed identity.
	CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity"
	// CreatedByTypeUser - The entity was created by a user.
	CreatedByTypeUser CreatedByType = "User"
)

// PossibleCreatedByTypeValues returns the possible values for the CreatedByType const type.
func PossibleCreatedByTypeValues() []CreatedByType {
	return []CreatedByType{
		CreatedByTypeApplication,
		CreatedByTypeKey,
		CreatedByTypeManagedIdentity,
		CreatedByTypeUser,
	}
}

type DataSource string

const (
	// DataSourceTwinData - Devices twin data
	DataSourceTwinData DataSource = "TwinData"
)

// PossibleDataSourceValues returns the possible values for the DataSource const type.
func PossibleDataSourceValues() []DataSource {
	return []DataSource{
		DataSourceTwinData,
	}
}

// DevOpsProvisioningState - The provisioning state of the resource.
// Pending - Provisioning pending.
// Failed - Provisioning failed.
// Succeeded - Successful provisioning.
// Canceled - Provisioning canceled.
// PendingDeletion - Deletion pending.
// DeletionSuccess - Deletion successful.
// DeletionFailure - Deletion failure.
type DevOpsProvisioningState string

const (
	// DevOpsProvisioningStateCanceled - Canceled
	DevOpsProvisioningStateCanceled DevOpsProvisioningState = "Canceled"
	// DevOpsProvisioningStateDeletionFailure - DeletionFailure
	DevOpsProvisioningStateDeletionFailure DevOpsProvisioningState = "DeletionFailure"
	// DevOpsProvisioningStateDeletionSuccess - DeletionSuccess
	DevOpsProvisioningStateDeletionSuccess DevOpsProvisioningState = "DeletionSuccess"
	// DevOpsProvisioningStateFailed - Failed
	DevOpsProvisioningStateFailed DevOpsProvisioningState = "Failed"
	// DevOpsProvisioningStatePending - Pending
	DevOpsProvisioningStatePending DevOpsProvisioningState = "Pending"
	// DevOpsProvisioningStatePendingDeletion - PendingDeletion
	DevOpsProvisioningStatePendingDeletion DevOpsProvisioningState = "PendingDeletion"
	// DevOpsProvisioningStateSucceeded - Succeeded
	DevOpsProvisioningStateSucceeded DevOpsProvisioningState = "Succeeded"
)

// PossibleDevOpsProvisioningStateValues returns the possible values for the DevOpsProvisioningState const type.
func PossibleDevOpsProvisioningStateValues() []DevOpsProvisioningState {
	return []DevOpsProvisioningState{
		DevOpsProvisioningStateCanceled,
		DevOpsProvisioningStateDeletionFailure,
		DevOpsProvisioningStateDeletionSuccess,
		DevOpsProvisioningStateFailed,
		DevOpsProvisioningStatePending,
		DevOpsProvisioningStatePendingDeletion,
		DevOpsProvisioningStateSucceeded,
	}
}

// Effect - Expected effect of this assignment (Audit/Exempt/Attest)
type Effect string

const (
	// EffectAttest - Attest
	EffectAttest Effect = "Attest"
	// EffectAudit - Audit
	EffectAudit Effect = "Audit"
	// EffectExempt - Exempt
	EffectExempt Effect = "Exempt"
)

// PossibleEffectValues returns the possible values for the Effect const type.
func PossibleEffectValues() []Effect {
	return []Effect{
		EffectAttest,
		EffectAudit,
		EffectExempt,
	}
}

// Enforce - If set to "False", it allows the descendants of this scope to override the pricing configuration set on this
// scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration
// on all the descendants of this scope. This field is only available for subscription-level pricing.
type Enforce string

const (
	// EnforceFalse - Allows the descendants of this scope to override the pricing configuration set on this scope (allows setting
	// inherited="False")
	EnforceFalse Enforce = "False"
	// EnforceTrue - Prevents overrides and forces the current scope's pricing configuration to all descendants
	EnforceTrue Enforce = "True"
)

// PossibleEnforceValues returns the possible values for the Enforce const type.
func PossibleEnforceValues() []Enforce {
	return []Enforce{
		EnforceFalse,
		EnforceTrue,
	}
}

// EnvironmentType - The type of the environment data.
type EnvironmentType string

const (
	// EnvironmentTypeAwsAccount - AwsAccount
	EnvironmentTypeAwsAccount EnvironmentType = "AwsAccount"
	// EnvironmentTypeAzureDevOpsScope - AzureDevOpsScope
	EnvironmentTypeAzureDevOpsScope EnvironmentType = "AzureDevOpsScope"
	// EnvironmentTypeDockerHubOrganization - DockerHubOrganization
	EnvironmentTypeDockerHubOrganization EnvironmentType = "DockerHubOrganization"
	// EnvironmentTypeGcpProject - GcpProject
	EnvironmentTypeGcpProject EnvironmentType = "GcpProject"
	// EnvironmentTypeGithubScope - GithubScope
	EnvironmentTypeGithubScope EnvironmentType = "GithubScope"
	// EnvironmentTypeGitlabScope - GitlabScope
	EnvironmentTypeGitlabScope EnvironmentType = "GitlabScope"
	// EnvironmentTypeJFrogArtifactory - JFrogArtifactory
	EnvironmentTypeJFrogArtifactory EnvironmentType = "JFrogArtifactory"
)

// PossibleEnvironmentTypeValues returns the possible values for the EnvironmentType const type.
func PossibleEnvironmentTypeValues() []EnvironmentType {
	return []EnvironmentType{
		EnvironmentTypeAwsAccount,
		EnvironmentTypeAzureDevOpsScope,
		EnvironmentTypeDockerHubOrganization,
		EnvironmentTypeGcpProject,
		EnvironmentTypeGithubScope,
		EnvironmentTypeGitlabScope,
		EnvironmentTypeJFrogArtifactory,
	}
}

// EventSource - A valid event source type.
type EventSource string

const (
	// EventSourceAlerts - Alerts
	EventSourceAlerts EventSource = "Alerts"
	// EventSourceAssessments - Assessments
	EventSourceAssessments EventSource = "Assessments"
	// EventSourceAssessmentsSnapshot - AssessmentsSnapshot
	EventSourceAssessmentsSnapshot EventSource = "AssessmentsSnapshot"
	// EventSourceAttackPaths - AttackPaths
	EventSourceAttackPaths EventSource = "AttackPaths"
	// EventSourceAttackPathsSnapshot - AttackPathsSnapshot
	EventSourceAttackPathsSnapshot EventSource = "AttackPathsSnapshot"
	// EventSourceRegulatoryComplianceAssessment - RegulatoryComplianceAssessment
	EventSourceRegulatoryComplianceAssessment EventSource = "RegulatoryComplianceAssessment"
	// EventSourceRegulatoryComplianceAssessmentSnapshot - RegulatoryComplianceAssessmentSnapshot
	EventSourceRegulatoryComplianceAssessmentSnapshot EventSource = "RegulatoryComplianceAssessmentSnapshot"
	// EventSourceSecureScoreControls - SecureScoreControls
	EventSourceSecureScoreControls EventSource = "SecureScoreControls"
	// EventSourceSecureScoreControlsSnapshot - SecureScoreControlsSnapshot
	EventSourceSecureScoreControlsSnapshot EventSource = "SecureScoreControlsSnapshot"
	// EventSourceSecureScores - SecureScores
	EventSourceSecureScores EventSource = "SecureScores"
	// EventSourceSecureScoresSnapshot - SecureScoresSnapshot
	EventSourceSecureScoresSnapshot EventSource = "SecureScoresSnapshot"
	// EventSourceSubAssessments - SubAssessments
	EventSourceSubAssessments EventSource = "SubAssessments"
	// EventSourceSubAssessmentsSnapshot - SubAssessmentsSnapshot
	EventSourceSubAssessmentsSnapshot EventSource = "SubAssessmentsSnapshot"
)

// PossibleEventSourceValues returns the possible values for the EventSource const type.
func PossibleEventSourceValues() []EventSource {
	return []EventSource{
		EventSourceAlerts,
		EventSourceAssessments,
		EventSourceAssessmentsSnapshot,
		EventSourceAttackPaths,
		EventSourceAttackPathsSnapshot,
		EventSourceRegulatoryComplianceAssessment,
		EventSourceRegulatoryComplianceAssessmentSnapshot,
		EventSourceSecureScoreControls,
		EventSourceSecureScoreControlsSnapshot,
		EventSourceSecureScores,
		EventSourceSecureScoresSnapshot,
		EventSourceSubAssessments,
		EventSourceSubAssessmentsSnapshot,
	}
}

// ExemptionCategory - Exemption category of this assignment
type ExemptionCategory string

const (
	// ExemptionCategoryMitigated - mitigated
	ExemptionCategoryMitigated ExemptionCategory = "mitigated"
	// ExemptionCategoryWaiver - waiver
	ExemptionCategoryWaiver ExemptionCategory = "waiver"
)

// PossibleExemptionCategoryValues returns the possible values for the ExemptionCategory const type.
func PossibleExemptionCategoryValues() []ExemptionCategory {
	return []ExemptionCategory{
		ExemptionCategoryMitigated,
		ExemptionCategoryWaiver,
	}
}

type ExpandControlsEnum string

const (
	// ExpandControlsEnumDefinition - Add definition object for each control
	ExpandControlsEnumDefinition ExpandControlsEnum = "definition"
)

// PossibleExpandControlsEnumValues returns the possible values for the ExpandControlsEnum const type.
func PossibleExpandControlsEnumValues() []ExpandControlsEnum {
	return []ExpandControlsEnum{
		ExpandControlsEnumDefinition,
	}
}

type ExpandEnum string

const (
	// ExpandEnumLinks - All links associated with an assessment
	ExpandEnumLinks ExpandEnum = "links"
	// ExpandEnumMetadata - Assessment metadata
	ExpandEnumMetadata ExpandEnum = "metadata"
)

// PossibleExpandEnumValues returns the possible values for the ExpandEnum const type.
func PossibleExpandEnumValues() []ExpandEnum {
	return []ExpandEnum{
		ExpandEnumLinks,
		ExpandEnumMetadata,
	}
}

type ExportData string

const (
	// ExportDataRawEvents - Agent raw events
	ExportDataRawEvents ExportData = "RawEvents"
)

// PossibleExportDataValues returns the possible values for the ExportData const type.
func PossibleExportDataValues() []ExportData {
	return []ExportData{
		ExportDataRawEvents,
	}
}

// ExternalSecuritySolutionKind - The kind of the external solution
type ExternalSecuritySolutionKind string

const (
	// ExternalSecuritySolutionKindAAD - AAD
	ExternalSecuritySolutionKindAAD ExternalSecuritySolutionKind = "AAD"
	// ExternalSecuritySolutionKindATA - ATA
	ExternalSecuritySolutionKindATA ExternalSecuritySolutionKind = "ATA"
	// ExternalSecuritySolutionKindCEF - CEF
	ExternalSecuritySolutionKindCEF ExternalSecuritySolutionKind = "CEF"
)

// PossibleExternalSecuritySolutionKindValues returns the possible values for the ExternalSecuritySolutionKind const type.
func PossibleExternalSecuritySolutionKindValues() []ExternalSecuritySolutionKind {
	return []ExternalSecuritySolutionKind{
		ExternalSecuritySolutionKindAAD,
		ExternalSecuritySolutionKindATA,
		ExternalSecuritySolutionKindCEF,
	}
}

// GovernanceRuleOwnerSourceType - The owner type for the governance rule owner source
type GovernanceRuleOwnerSourceType string

const (
	// GovernanceRuleOwnerSourceTypeByTag - The rule source type defined using resource tag
	GovernanceRuleOwnerSourceTypeByTag GovernanceRuleOwnerSourceType = "ByTag"
	// GovernanceRuleOwnerSourceTypeManually - The rule source type defined manually
	GovernanceRuleOwnerSourceTypeManually GovernanceRuleOwnerSourceType = "Manually"
)

// PossibleGovernanceRuleOwnerSourceTypeValues returns the possible values for the GovernanceRuleOwnerSourceType const type.
func PossibleGovernanceRuleOwnerSourceTypeValues() []GovernanceRuleOwnerSourceType {
	return []GovernanceRuleOwnerSourceType{
		GovernanceRuleOwnerSourceTypeByTag,
		GovernanceRuleOwnerSourceTypeManually,
	}
}

// GovernanceRuleSourceResourceType - The governance rule source, what the rule affects, e.g. Assessments
type GovernanceRuleSourceResourceType string

const (
	// GovernanceRuleSourceResourceTypeAssessments - The source of the governance rule is assessments
	GovernanceRuleSourceResourceTypeAssessments GovernanceRuleSourceResourceType = "Assessments"
)

// PossibleGovernanceRuleSourceResourceTypeValues returns the possible values for the GovernanceRuleSourceResourceType const type.
func PossibleGovernanceRuleSourceResourceTypeValues() []GovernanceRuleSourceResourceType {
	return []GovernanceRuleSourceResourceType{
		GovernanceRuleSourceResourceTypeAssessments,
	}
}

// GovernanceRuleType - The rule type of the governance rule, defines the source of the rule e.g. Integrated
type GovernanceRuleType string

const (
	// GovernanceRuleTypeIntegrated - The source of the rule type definition is integrated
	GovernanceRuleTypeIntegrated GovernanceRuleType = "Integrated"
	// GovernanceRuleTypeServiceNow - The source of the rule type definition is ServiceNow
	GovernanceRuleTypeServiceNow GovernanceRuleType = "ServiceNow"
)

// PossibleGovernanceRuleTypeValues returns the possible values for the GovernanceRuleType const type.
func PossibleGovernanceRuleTypeValues() []GovernanceRuleType {
	return []GovernanceRuleType{
		GovernanceRuleTypeIntegrated,
		GovernanceRuleTypeServiceNow,
	}
}

// ImplementationEffort - The implementation effort required to remediate this assessment
type ImplementationEffort string

const (
	// ImplementationEffortHigh - High
	ImplementationEffortHigh ImplementationEffort = "High"
	// ImplementationEffortLow - Low
	ImplementationEffortLow ImplementationEffort = "Low"
	// ImplementationEffortModerate - Moderate
	ImplementationEffortModerate ImplementationEffort = "Moderate"
)

// PossibleImplementationEffortValues returns the possible values for the ImplementationEffort const type.
func PossibleImplementationEffortValues() []ImplementationEffort {
	return []ImplementationEffort{
		ImplementationEffortHigh,
		ImplementationEffortLow,
		ImplementationEffortModerate,
	}
}

type InformationProtectionPolicyName string

const (
	// InformationProtectionPolicyNameCustom - custom
	InformationProtectionPolicyNameCustom InformationProtectionPolicyName = "custom"
	// InformationProtectionPolicyNameEffective - effective
	InformationProtectionPolicyNameEffective InformationProtectionPolicyName = "effective"
)

// PossibleInformationProtectionPolicyNameValues returns the possible values for the InformationProtectionPolicyName const type.
func PossibleInformationProtectionPolicyNameValues() []InformationProtectionPolicyName {
	return []InformationProtectionPolicyName{
		InformationProtectionPolicyNameCustom,
		InformationProtectionPolicyNameEffective,
	}
}

// InheritFromParentState - Update Settings.
// Enabled - Resource should inherit configurations from parent.
// Disabled - Resource should not inherit configurations from parent.
type InheritFromParentState string

const (
	// InheritFromParentStateDisabled - Disabled
	InheritFromParentStateDisabled InheritFromParentState = "Disabled"
	// InheritFromParentStateEnabled - Enabled
	InheritFromParentStateEnabled InheritFromParentState = "Enabled"
)

// PossibleInheritFromParentStateValues returns the possible values for the InheritFromParentState const type.
func PossibleInheritFromParentStateValues() []InheritFromParentState {
	return []InheritFromParentState{
		InheritFromParentStateDisabled,
		InheritFromParentStateEnabled,
	}
}

// Inherited - "inherited" = "True" indicates that the current scope inherits its pricing configuration from its parent. The
// ID of the parent scope that provides the inherited configuration is displayed in the "inheritedFrom" field. On the other
// hand, "inherited" = "False" indicates that the current scope has its own pricing configuration explicitly set, and does
// not inherit from its parent. This field is read only and available only for resource-level pricing.
type Inherited string

const (
	// InheritedFalse - Indicates that the current scope sets its own pricing configuration and does not inherit it from its parent
	InheritedFalse Inherited = "False"
	// InheritedTrue - Indicates that the current scope is inheriting its pricing configuration from its parent
	InheritedTrue Inherited = "True"
)

// PossibleInheritedValues returns the possible values for the Inherited const type.
func PossibleInheritedValues() []Inherited {
	return []Inherited{
		InheritedFalse,
		InheritedTrue,
	}
}

// Intent - The kill chain related intent behind the alert. For list of supported values, and explanations of Azure Security
// Center's supported kill chain intents.
type Intent string

const (
	// IntentCollection - Collection consists of techniques used to identify and gather information, such as sensitive files,
	// from a target network prior to exfiltration.
	IntentCollection Intent = "Collection"
	// IntentCommandAndControl - The command and control tactic represents how adversaries communicate with systems under their
	// control within a target network.
	IntentCommandAndControl Intent = "CommandAndControl"
	// IntentCredentialAccess - Credential access represents techniques resulting in access to or control over system, domain,
	// or service credentials that are used within an enterprise environment.
	IntentCredentialAccess Intent = "CredentialAccess"
	// IntentDefenseEvasion - Defense evasion consists of techniques an adversary may use to evade detection or avoid other defenses.
	IntentDefenseEvasion Intent = "DefenseEvasion"
	// IntentDiscovery - Discovery consists of techniques that allow the adversary to gain knowledge about the system and internal
	// network.
	IntentDiscovery Intent = "Discovery"
	// IntentExecution - The execution tactic represents techniques that result in execution of adversary-controlled code on a
	// local or remote system.
	IntentExecution Intent = "Execution"
	// IntentExfiltration - Exfiltration refers to techniques and attributes that result or aid in the adversary removing files
	// and information from a target network.
	IntentExfiltration Intent = "Exfiltration"
	// IntentExploitation - Exploitation is the stage where an attacker manages to get a foothold on the attacked resource. This
	// stage is relevant for compute hosts and resources such as user accounts, certificates etc.
	IntentExploitation Intent = "Exploitation"
	// IntentImpact - Impact events primarily try to directly reduce the availability or integrity of a system, service, or network;
	// including manipulation of data to impact a business or operational process.
	IntentImpact Intent = "Impact"
	// IntentInitialAccess - InitialAccess is the stage where an attacker manages to get foothold on the attacked resource.
	IntentInitialAccess Intent = "InitialAccess"
	// IntentLateralMovement - Lateral movement consists of techniques that enable an adversary to access and control remote systems
	// on a network and could, but does not necessarily, include execution of tools on remote systems.
	IntentLateralMovement Intent = "LateralMovement"
	// IntentPersistence - Persistence is any access, action, or configuration change to a system that gives a threat actor a
	// persistent presence on that system.
	IntentPersistence Intent = "Persistence"
	// IntentPreAttack - PreAttack could be either an attempt to access a certain resource regardless of a malicious intent, or
	// a failed attempt to gain access to a target system to gather information prior to exploitation. This step is usually detected
	// as an attempt, originating from outside the network, to scan the target system and find a way in. Further details on the
	// PreAttack stage can be read in [MITRE Pre-Att&ck matrix](https://attack.mitre.org/matrices/pre/).
	IntentPreAttack Intent = "PreAttack"
	// IntentPrivilegeEscalation - Privilege escalation is the result of actions that allow an adversary to obtain a higher level
	// of permissions on a system or network.
	IntentPrivilegeEscalation Intent = "PrivilegeEscalation"
	// IntentProbing - Probing could be either an attempt to access a certain resource regardless of a malicious intent, or a
	// failed attempt to gain access to a target system to gather information prior to exploitation.
	IntentProbing Intent = "Probing"
	// IntentUnknown - Unknown
	IntentUnknown Intent = "Unknown"
)

// PossibleIntentValues returns the possible values for the Intent const type.
func PossibleIntentValues() []Intent {
	return []Intent{
		IntentCollection,
		IntentCommandAndControl,
		IntentCredentialAccess,
		IntentDefenseEvasion,
		IntentDiscovery,
		IntentExecution,
		IntentExfiltration,
		IntentExploitation,
		IntentImpact,
		IntentInitialAccess,
		IntentLateralMovement,
		IntentPersistence,
		IntentPreAttack,
		IntentPrivilegeEscalation,
		IntentProbing,
		IntentUnknown,
	}
}

// InventoryKind - Types for inventory kind.
type InventoryKind string

const (
	// InventoryKindAzureDevOpsOrganization - AzureDevOpsOrganization
	InventoryKindAzureDevOpsOrganization InventoryKind = "AzureDevOpsOrganization"
	// InventoryKindAzureDevOpsProject - AzureDevOpsProject
	InventoryKindAzureDevOpsProject InventoryKind = "AzureDevOpsProject"
	// InventoryKindAzureDevOpsRepository - AzureDevOpsRepository
	InventoryKindAzureDevOpsRepository InventoryKind = "AzureDevOpsRepository"
	// InventoryKindGitHubOwner - GitHubOwner
	InventoryKindGitHubOwner InventoryKind = "GitHubOwner"
	// InventoryKindGitHubRepository - GitHubRepository
	InventoryKindGitHubRepository InventoryKind = "GitHubRepository"
)

// PossibleInventoryKindValues returns the possible values for the InventoryKind const type.
func PossibleInventoryKindValues() []InventoryKind {
	return []InventoryKind{
		InventoryKindAzureDevOpsOrganization,
		InventoryKindAzureDevOpsProject,
		InventoryKindAzureDevOpsRepository,
		InventoryKindGitHubOwner,
		InventoryKindGitHubRepository,
	}
}

// InventoryListKind - Types for inventory list.
type InventoryListKind string

const (
	// InventoryListKindExclusion - Exclusion
	InventoryListKindExclusion InventoryListKind = "Exclusion"
	// InventoryListKindInclusion - Inclusion
	InventoryListKindInclusion InventoryListKind = "Inclusion"
)

// PossibleInventoryListKindValues returns the possible values for the InventoryListKind const type.
func PossibleInventoryListKindValues() []InventoryListKind {
	return []InventoryListKind{
		InventoryListKindExclusion,
		InventoryListKindInclusion,
	}
}

// IsEnabled - Indicates whether the extension is enabled.
type IsEnabled string

const (
	// IsEnabledFalse - Indicates the extension is disabled
	IsEnabledFalse IsEnabled = "False"
	// IsEnabledTrue - Indicates the extension is enabled
	IsEnabledTrue IsEnabled = "True"
)

// PossibleIsEnabledValues returns the possible values for the IsEnabled const type.
func PossibleIsEnabledValues() []IsEnabled {
	return []IsEnabled{
		IsEnabledFalse,
		IsEnabledTrue,
	}
}

// Kind - The kind of alert simulation.
type Kind string

const (
	// KindBundles - Simulate alerts according to bundles
	KindBundles Kind = "Bundles"
)

// PossibleKindValues returns the possible values for the Kind const type.
func PossibleKindValues() []Kind {
	return []Kind{
		KindBundles,
	}
}

// MinimalRiskLevel - Defines the minimal attack path risk level which will be sent as email notifications
type MinimalRiskLevel string

const (
	// MinimalRiskLevelCritical - Get notifications on new attack paths with Critical risk level
	MinimalRiskLevelCritical MinimalRiskLevel = "Critical"
	// MinimalRiskLevelHigh - Get notifications on new attack paths with High or Critical risk level
	MinimalRiskLevelHigh MinimalRiskLevel = "High"
	// MinimalRiskLevelLow - Get notifications on new attach paths with Low, Medium, High or Critical risk level
	MinimalRiskLevelLow MinimalRiskLevel = "Low"
	// MinimalRiskLevelMedium - Get notifications on new attach paths with Medium, High or Critical risk level
	MinimalRiskLevelMedium MinimalRiskLevel = "Medium"
)

// PossibleMinimalRiskLevelValues returns the possible values for the MinimalRiskLevel const type.
func PossibleMinimalRiskLevelValues() []MinimalRiskLevel {
	return []MinimalRiskLevel{
		MinimalRiskLevelCritical,
		MinimalRiskLevelHigh,
		MinimalRiskLevelLow,
		MinimalRiskLevelMedium,
	}
}

// MinimalSeverity - Defines the minimal alert severity which will be sent as email notifications
type MinimalSeverity string

const (
	// MinimalSeverityHigh - Get notifications on new alerts with High severity
	MinimalSeverityHigh MinimalSeverity = "High"
	// MinimalSeverityLow - Get notifications on new alerts with Low, Medium or High severity
	MinimalSeverityLow MinimalSeverity = "Low"
	// MinimalSeverityMedium - Get notifications on new alerts with Medium or High severity
	MinimalSeverityMedium MinimalSeverity = "Medium"
)

// PossibleMinimalSeverityValues returns the possible values for the MinimalSeverity const type.
func PossibleMinimalSeverityValues() []MinimalSeverity {
	return []MinimalSeverity{
		MinimalSeverityHigh,
		MinimalSeverityLow,
		MinimalSeverityMedium,
	}
}

// MipIntegrationStatus - Microsoft information protection integration status
type MipIntegrationStatus string

const (
	// MipIntegrationStatusNoAutoLabelingRules - noAutoLabelingRules
	MipIntegrationStatusNoAutoLabelingRules MipIntegrationStatus = "noAutoLabelingRules"
	// MipIntegrationStatusNoConsent - noConsent
	MipIntegrationStatusNoConsent MipIntegrationStatus = "noConsent"
	// MipIntegrationStatusNoMipLabels - noMipLabels
	MipIntegrationStatusNoMipLabels MipIntegrationStatus = "noMipLabels"
	// MipIntegrationStatusOk - Ok
	MipIntegrationStatusOk MipIntegrationStatus = "Ok"
)

// PossibleMipIntegrationStatusValues returns the possible values for the MipIntegrationStatus const type.
func PossibleMipIntegrationStatusValues() []MipIntegrationStatus {
	return []MipIntegrationStatus{
		MipIntegrationStatusNoAutoLabelingRules,
		MipIntegrationStatusNoConsent,
		MipIntegrationStatusNoMipLabels,
		MipIntegrationStatusOk,
	}
}

// OfferingType - The type of the security offering.
type OfferingType string

const (
	// OfferingTypeCspmMonitorAws - CspmMonitorAws
	OfferingTypeCspmMonitorAws OfferingType = "CspmMonitorAws"
	// OfferingTypeCspmMonitorAzureDevOps - CspmMonitorAzureDevOps
	OfferingTypeCspmMonitorAzureDevOps OfferingType = "CspmMonitorAzureDevOps"
	// OfferingTypeCspmMonitorDockerHub - CspmMonitorDockerHub
	OfferingTypeCspmMonitorDockerHub OfferingType = "CspmMonitorDockerHub"
	// OfferingTypeCspmMonitorGcp - CspmMonitorGcp
	OfferingTypeCspmMonitorGcp OfferingType = "CspmMonitorGcp"
	// OfferingTypeCspmMonitorGitLab - CspmMonitorGitLab
	OfferingTypeCspmMonitorGitLab OfferingType = "CspmMonitorGitLab"
	// OfferingTypeCspmMonitorGithub - CspmMonitorGithub
	OfferingTypeCspmMonitorGithub OfferingType = "CspmMonitorGithub"
	// OfferingTypeCspmMonitorJFrog - CspmMonitorJFrog
	OfferingTypeCspmMonitorJFrog OfferingType = "CspmMonitorJFrog"
	// OfferingTypeDefenderCspmAws - DefenderCspmAws
	OfferingTypeDefenderCspmAws OfferingType = "DefenderCspmAws"
	// OfferingTypeDefenderCspmDockerHub - DefenderCspmDockerHub
	OfferingTypeDefenderCspmDockerHub OfferingType = "DefenderCspmDockerHub"
	// OfferingTypeDefenderCspmGcp - DefenderCspmGcp
	OfferingTypeDefenderCspmGcp OfferingType = "DefenderCspmGcp"
	// OfferingTypeDefenderCspmJFrog - DefenderCspmJFrog
	OfferingTypeDefenderCspmJFrog OfferingType = "DefenderCspmJFrog"
	// OfferingTypeDefenderForContainersAws - DefenderForContainersAws
	OfferingTypeDefenderForContainersAws OfferingType = "DefenderForContainersAws"
	// OfferingTypeDefenderForContainersDockerHub - DefenderForContainersDockerHub
	OfferingTypeDefenderForContainersDockerHub OfferingType = "DefenderForContainersDockerHub"
	// OfferingTypeDefenderForContainersGcp - DefenderForContainersGcp
	OfferingTypeDefenderForContainersGcp OfferingType = "DefenderForContainersGcp"
	// OfferingTypeDefenderForContainersJFrog - DefenderForContainersJFrog
	OfferingTypeDefenderForContainersJFrog OfferingType = "DefenderForContainersJFrog"
	// OfferingTypeDefenderForDatabasesAws - DefenderForDatabasesAws
	OfferingTypeDefenderForDatabasesAws OfferingType = "DefenderForDatabasesAws"
	// OfferingTypeDefenderForDatabasesGcp - DefenderForDatabasesGcp
	OfferingTypeDefenderForDatabasesGcp OfferingType = "DefenderForDatabasesGcp"
	// OfferingTypeDefenderForServersAws - DefenderForServersAws
	OfferingTypeDefenderForServersAws OfferingType = "DefenderForServersAws"
	// OfferingTypeDefenderForServersGcp - DefenderForServersGcp
	OfferingTypeDefenderForServersGcp OfferingType = "DefenderForServersGcp"
)

// PossibleOfferingTypeValues returns the possible values for the OfferingType const type.
func PossibleOfferingTypeValues() []OfferingType {
	return []OfferingType{
		OfferingTypeCspmMonitorAws,
		OfferingTypeCspmMonitorAzureDevOps,
		OfferingTypeCspmMonitorDockerHub,
		OfferingTypeCspmMonitorGcp,
		OfferingTypeCspmMonitorGitLab,
		OfferingTypeCspmMonitorGithub,
		OfferingTypeCspmMonitorJFrog,
		OfferingTypeDefenderCspmAws,
		OfferingTypeDefenderCspmDockerHub,
		OfferingTypeDefenderCspmGcp,
		OfferingTypeDefenderCspmJFrog,
		OfferingTypeDefenderForContainersAws,
		OfferingTypeDefenderForContainersDockerHub,
		OfferingTypeDefenderForContainersGcp,
		OfferingTypeDefenderForContainersJFrog,
		OfferingTypeDefenderForDatabasesAws,
		OfferingTypeDefenderForDatabasesGcp,
		OfferingTypeDefenderForServersAws,
		OfferingTypeDefenderForServersGcp,
	}
}

// OnboardingState - Details about resource onboarding status across all connectors.
// OnboardedByOtherConnector - this resource has already been onboarded to another connector. This is only applicable to top-level
// resources.
// Onboarded - this resource has already been onboarded by the specified connector.
// NotOnboarded - this resource has not been onboarded to any connector.
// NotApplicable - the onboarding state is not applicable to the current endpoint.
type OnboardingState string

const (
	// OnboardingStateNotApplicable - NotApplicable
	OnboardingStateNotApplicable OnboardingState = "NotApplicable"
	// OnboardingStateNotOnboarded - NotOnboarded
	OnboardingStateNotOnboarded OnboardingState = "NotOnboarded"
	// OnboardingStateOnboarded - Onboarded
	OnboardingStateOnboarded OnboardingState = "Onboarded"
	// OnboardingStateOnboardedByOtherConnector - OnboardedByOtherConnector
	OnboardingStateOnboardedByOtherConnector OnboardingState = "OnboardedByOtherConnector"
)

// PossibleOnboardingStateValues returns the possible values for the OnboardingState const type.
func PossibleOnboardingStateValues() []OnboardingState {
	return []OnboardingState{
		OnboardingStateNotApplicable,
		OnboardingStateNotOnboarded,
		OnboardingStateOnboarded,
		OnboardingStateOnboardedByOtherConnector,
	}
}

// OperationResultStatus - The status of the long run operation result of governance rule
type OperationResultStatus string

const (
	// OperationResultStatusCanceled - The operation canceled
	OperationResultStatusCanceled OperationResultStatus = "Canceled"
	// OperationResultStatusFailed - The operation failed
	OperationResultStatusFailed OperationResultStatus = "Failed"
	// OperationResultStatusSucceeded - The operation succeeded
	OperationResultStatusSucceeded OperationResultStatus = "Succeeded"
)

// PossibleOperationResultStatusValues returns the possible values for the OperationResultStatus const type.
func PossibleOperationResultStatusValues() []OperationResultStatus {
	return []OperationResultStatus{
		OperationResultStatusCanceled,
		OperationResultStatusFailed,
		OperationResultStatusSucceeded,
	}
}

// Operator - A valid comparer operator to use. A case-insensitive comparison will be applied for String PropertyType.
type Operator string

const (
	// OperatorContains - Applies only for non-decimal operands
	OperatorContains Operator = "Contains"
	// OperatorEndsWith - Applies only for non-decimal operands
	OperatorEndsWith Operator = "EndsWith"
	// OperatorEquals - Applies for decimal and non-decimal operands
	OperatorEquals Operator = "Equals"
	// OperatorGreaterThan - Applies only for decimal operands
	OperatorGreaterThan Operator = "GreaterThan"
	// OperatorGreaterThanOrEqualTo - Applies only for decimal operands
	OperatorGreaterThanOrEqualTo Operator = "GreaterThanOrEqualTo"
	// OperatorLesserThan - Applies only for decimal operands
	OperatorLesserThan Operator = "LesserThan"
	// OperatorLesserThanOrEqualTo - Applies only for decimal operands
	OperatorLesserThanOrEqualTo Operator = "LesserThanOrEqualTo"
	// OperatorNotEquals - Applies for decimal and non-decimal operands
	OperatorNotEquals Operator = "NotEquals"
	// OperatorStartsWith - Applies only for non-decimal operands
	OperatorStartsWith Operator = "StartsWith"
)

// PossibleOperatorValues returns the possible values for the Operator const type.
func PossibleOperatorValues() []Operator {
	return []Operator{
		OperatorContains,
		OperatorEndsWith,
		OperatorEquals,
		OperatorGreaterThan,
		OperatorGreaterThanOrEqualTo,
		OperatorLesserThan,
		OperatorLesserThanOrEqualTo,
		OperatorNotEquals,
		OperatorStartsWith,
	}
}

// OrganizationMembershipType - The multi cloud account's membership type in the organization
type OrganizationMembershipType string

const (
	// OrganizationMembershipTypeMember - Member
	OrganizationMembershipTypeMember OrganizationMembershipType = "Member"
	// OrganizationMembershipTypeOrganization - Organization
	OrganizationMembershipTypeOrganization OrganizationMembershipType = "Organization"
)

// PossibleOrganizationMembershipTypeValues returns the possible values for the OrganizationMembershipType const type.
func PossibleOrganizationMembershipTypeValues() []OrganizationMembershipType {
	return []OrganizationMembershipType{
		OrganizationMembershipTypeMember,
		OrganizationMembershipTypeOrganization,
	}
}

// Origin - The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
// value is "user,system"
type Origin string

const (
	// OriginSystem - Indicates the operation is initiated by a system.
	OriginSystem Origin = "system"
	// OriginUser - Indicates the operation is initiated by a user.
	OriginUser Origin = "user"
	// OriginUserSystem - Indicates the operation is initiated by a user or system.
	OriginUserSystem Origin = "user,system"
)

// PossibleOriginValues returns the possible values for the Origin const type.
func PossibleOriginValues() []Origin {
	return []Origin{
		OriginSystem,
		OriginUser,
		OriginUserSystem,
	}
}

// PricingTier - Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided
// in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers
// basic security features.
type PricingTier string

const (
	// PricingTierFree - Get free Microsoft Defender for Cloud experience with basic security features
	PricingTierFree PricingTier = "Free"
	// PricingTierStandard - Get the standard Microsoft Defender for Cloud experience with advanced security features
	PricingTierStandard PricingTier = "Standard"
)

// PossiblePricingTierValues returns the possible values for the PricingTier const type.
func PossiblePricingTierValues() []PricingTier {
	return []PricingTier{
		PricingTierFree,
		PricingTierStandard,
	}
}

// PrivateEndpointConnectionProvisioningState - The current provisioning state.
type PrivateEndpointConnectionProvisioningState string

const (
	// PrivateEndpointConnectionProvisioningStateCreating - Connection is being created
	PrivateEndpointConnectionProvisioningStateCreating PrivateEndpointConnectionProvisioningState = "Creating"
	// PrivateEndpointConnectionProvisioningStateDeleting - Connection is being deleted
	PrivateEndpointConnectionProvisioningStateDeleting PrivateEndpointConnectionProvisioningState = "Deleting"
	// PrivateEndpointConnectionProvisioningStateFailed - Connection provisioning has failed
	PrivateEndpointConnectionProvisioningStateFailed PrivateEndpointConnectionProvisioningState = "Failed"
	// PrivateEndpointConnectionProvisioningStateSucceeded - Connection has been provisioned
	PrivateEndpointConnectionProvisioningStateSucceeded PrivateEndpointConnectionProvisioningState = "Succeeded"
)

// PossiblePrivateEndpointConnectionProvisioningStateValues returns the possible values for the PrivateEndpointConnectionProvisioningState const type.
func PossiblePrivateEndpointConnectionProvisioningStateValues() []PrivateEndpointConnectionProvisioningState {
	return []PrivateEndpointConnectionProvisioningState{
		PrivateEndpointConnectionProvisioningStateCreating,
		PrivateEndpointConnectionProvisioningStateDeleting,
		PrivateEndpointConnectionProvisioningStateFailed,
		PrivateEndpointConnectionProvisioningStateSucceeded,
	}
}

// PrivateEndpointServiceConnectionStatus - The private endpoint connection status.
type PrivateEndpointServiceConnectionStatus string

const (
	// PrivateEndpointServiceConnectionStatusApproved - Connection approved
	PrivateEndpointServiceConnectionStatusApproved PrivateEndpointServiceConnectionStatus = "Approved"
	// PrivateEndpointServiceConnectionStatusPending - Connection waiting for approval or rejection
	PrivateEndpointServiceConnectionStatusPending PrivateEndpointServiceConnectionStatus = "Pending"
	// PrivateEndpointServiceConnectionStatusRejected - Connection Rejected
	PrivateEndpointServiceConnectionStatusRejected PrivateEndpointServiceConnectionStatus = "Rejected"
)

// PossiblePrivateEndpointServiceConnectionStatusValues returns the possible values for the PrivateEndpointServiceConnectionStatus const type.
func PossiblePrivateEndpointServiceConnectionStatusValues() []PrivateEndpointServiceConnectionStatus {
	return []PrivateEndpointServiceConnectionStatus{
		PrivateEndpointServiceConnectionStatusApproved,
		PrivateEndpointServiceConnectionStatusPending,
		PrivateEndpointServiceConnectionStatusRejected,
	}
}

// PropertyType - The data type of the compared operands (string, integer, floating point number or a boolean [true/false]]
type PropertyType string

const (
	// PropertyTypeBoolean - Boolean
	PropertyTypeBoolean PropertyType = "Boolean"
	// PropertyTypeInteger - Integer
	PropertyTypeInteger PropertyType = "Integer"
	// PropertyTypeNumber - Number
	PropertyTypeNumber PropertyType = "Number"
	// PropertyTypeString - String
	PropertyTypeString PropertyType = "String"
)

// PossiblePropertyTypeValues returns the possible values for the PropertyType const type.
func PossiblePropertyTypeValues() []PropertyType {
	return []PropertyType{
		PropertyTypeBoolean,
		PropertyTypeInteger,
		PropertyTypeNumber,
		PropertyTypeString,
	}
}

type Protocol string

const (
	// ProtocolAll - *
	ProtocolAll Protocol = "*"
	// ProtocolTCP - TCP
	ProtocolTCP Protocol = "TCP"
	// ProtocolUDP - UDP
	ProtocolUDP Protocol = "UDP"
)

// PossibleProtocolValues returns the possible values for the Protocol const type.
func PossibleProtocolValues() []Protocol {
	return []Protocol{
		ProtocolAll,
		ProtocolTCP,
		ProtocolUDP,
	}
}

// ProvisioningState - The current provisioning state of the resource. Indicates the status of the last operation performed
// on the resource.
type ProvisioningState string

const (
	// ProvisioningStateCanceled - The operation was canceled before completion.
	ProvisioningStateCanceled ProvisioningState = "Canceled"
	// ProvisioningStateCreating - The resource is being created. This is a transitional state.
	ProvisioningStateCreating ProvisioningState = "Creating"
	// ProvisioningStateDeleting - The resource is being deleted. This is a transitional state.
	ProvisioningStateDeleting ProvisioningState = "Deleting"
	// ProvisioningStateFailed - The last operation on the resource failed. Check the error details for more information.
	ProvisioningStateFailed ProvisioningState = "Failed"
	// ProvisioningStateInProgress - InProgress
	ProvisioningStateInProgress ProvisioningState = "InProgress"
	// ProvisioningStateSucceeded - The resource has been successfully provisioned and is ready for use.
	ProvisioningStateSucceeded ProvisioningState = "Succeeded"
	// ProvisioningStateUpdating - The resource is being updated. This is a transitional state.
	ProvisioningStateUpdating ProvisioningState = "Updating"
)

// PossibleProvisioningStateValues returns the possible values for the ProvisioningState const type.
func PossibleProvisioningStateValues() []ProvisioningState {
	return []ProvisioningState{
		ProvisioningStateCanceled,
		ProvisioningStateCreating,
		ProvisioningStateDeleting,
		ProvisioningStateFailed,
		ProvisioningStateInProgress,
		ProvisioningStateSucceeded,
		ProvisioningStateUpdating,
	}
}

// PublicNetworkAccess - This determines if traffic is allowed over public network. By default it is disabled.
type PublicNetworkAccess string

const (
	// PublicNetworkAccessDisabled - Disabled
	PublicNetworkAccessDisabled PublicNetworkAccess = "Disabled"
	// PublicNetworkAccessEnabled - Enabled
	PublicNetworkAccessEnabled PublicNetworkAccess = "Enabled"
)

// PossiblePublicNetworkAccessValues returns the possible values for the PublicNetworkAccess const type.
func PossiblePublicNetworkAccessValues() []PublicNetworkAccess {
	return []PublicNetworkAccess{
		PublicNetworkAccessDisabled,
		PublicNetworkAccessEnabled,
	}
}

// Rank - The rank of the sensitivity label.
type Rank string

const (
	// RankCritical - Critical
	RankCritical Rank = "Critical"
	// RankHigh - High
	RankHigh Rank = "High"
	// RankLow - Low
	RankLow Rank = "Low"
	// RankMedium - Medium
	RankMedium Rank = "Medium"
	// RankNone - None
	RankNone Rank = "None"
)

// PossibleRankValues returns the possible values for the Rank const type.
func PossibleRankValues() []Rank {
	return []Rank{
		RankCritical,
		RankHigh,
		RankLow,
		RankMedium,
		RankNone,
	}
}

// RecommendationConfigStatus - Recommendation status. When the recommendation status is disabled recommendations are not
// generated.
type RecommendationConfigStatus string

const (
	// RecommendationConfigStatusDisabled - Disabled
	RecommendationConfigStatusDisabled RecommendationConfigStatus = "Disabled"
	// RecommendationConfigStatusEnabled - Enabled
	RecommendationConfigStatusEnabled RecommendationConfigStatus = "Enabled"
)

// PossibleRecommendationConfigStatusValues returns the possible values for the RecommendationConfigStatus const type.
func PossibleRecommendationConfigStatusValues() []RecommendationConfigStatus {
	return []RecommendationConfigStatus{
		RecommendationConfigStatusDisabled,
		RecommendationConfigStatusEnabled,
	}
}

// RecommendationSupportedClouds - The cloud that the recommendation is supported on.
type RecommendationSupportedClouds string

const (
	// RecommendationSupportedCloudsAWS - AWS
	RecommendationSupportedCloudsAWS RecommendationSupportedClouds = "AWS"
	// RecommendationSupportedCloudsAzure - Azure
	RecommendationSupportedCloudsAzure RecommendationSupportedClouds = "Azure"
	// RecommendationSupportedCloudsGCP - GCP
	RecommendationSupportedCloudsGCP RecommendationSupportedClouds = "GCP"
)

// PossibleRecommendationSupportedCloudsValues returns the possible values for the RecommendationSupportedClouds const type.
func PossibleRecommendationSupportedCloudsValues() []RecommendationSupportedClouds {
	return []RecommendationSupportedClouds{
		RecommendationSupportedCloudsAWS,
		RecommendationSupportedCloudsAzure,
		RecommendationSupportedCloudsGCP,
	}
}

// RecommendationType - The type of IoT Security recommendation.
type RecommendationType string

const (
	// RecommendationTypeIoTAcrauthentication - Authentication schema used for pull an edge module from an ACR repository does
	// not use Service Principal Authentication.
	RecommendationTypeIoTAcrauthentication RecommendationType = "IoT_ACRAuthentication"
	// RecommendationTypeIoTAgentSendsUnutilizedMessages - IoT agent message size capacity is currently underutilized, causing
	// an increase in the number of sent messages. Adjust message intervals for better utilization.
	RecommendationTypeIoTAgentSendsUnutilizedMessages RecommendationType = "IoT_AgentSendsUnutilizedMessages"
	// RecommendationTypeIoTBaseline - Identified security related system configuration issues.
	RecommendationTypeIoTBaseline RecommendationType = "IoT_Baseline"
	// RecommendationTypeIoTEdgeHubMemOptimize - You can optimize Edge Hub memory usage by turning off protocol heads for any
	// protocols not used by Edge modules in your solution.
	RecommendationTypeIoTEdgeHubMemOptimize RecommendationType = "IoT_EdgeHubMemOptimize"
	// RecommendationTypeIoTEdgeLoggingOptions - Logging is disabled for this edge module.
	RecommendationTypeIoTEdgeLoggingOptions RecommendationType = "IoT_EdgeLoggingOptions"
	// RecommendationTypeIoTInconsistentModuleSettings - A minority within a device security group has inconsistent Edge Module
	// settings with the rest of their group.
	RecommendationTypeIoTInconsistentModuleSettings RecommendationType = "IoT_InconsistentModuleSettings"
	// RecommendationTypeIoTInstallAgent - Install the Azure Security of Things Agent.
	RecommendationTypeIoTInstallAgent RecommendationType = "IoT_InstallAgent"
	// RecommendationTypeIoTIpfilterDenyAll - IP Filter Configuration should have rules defined for allowed traffic and should
	// deny all other traffic by default.
	RecommendationTypeIoTIpfilterDenyAll RecommendationType = "IoT_IPFilter_DenyAll"
	// RecommendationTypeIoTIpfilterPermissiveRule - An Allow IP Filter rules source IP range is too large. Overly permissive
	// rules might expose your IoT hub to malicious intenders.
	RecommendationTypeIoTIpfilterPermissiveRule RecommendationType = "IoT_IPFilter_PermissiveRule"
	// RecommendationTypeIoTOpenPorts - A listening endpoint was found on the device.
	RecommendationTypeIoTOpenPorts RecommendationType = "IoT_OpenPorts"
	// RecommendationTypeIoTPermissiveFirewallPolicy - An Allowed firewall policy was found (INPUT/OUTPUT). The policy should
	// Deny all traffic by default and define rules to allow necessary communication to/from the device.
	RecommendationTypeIoTPermissiveFirewallPolicy RecommendationType = "IoT_PermissiveFirewallPolicy"
	// RecommendationTypeIoTPermissiveInputFirewallRules - A rule in the firewall has been found that contains a permissive pattern
	// for a wide range of IP addresses or Ports.
	RecommendationTypeIoTPermissiveInputFirewallRules RecommendationType = "IoT_PermissiveInputFirewallRules"
	// RecommendationTypeIoTPermissiveOutputFirewallRules - A rule in the firewall has been found that contains a permissive pattern
	// for a wide range of IP addresses or Ports.
	RecommendationTypeIoTPermissiveOutputFirewallRules RecommendationType = "IoT_PermissiveOutputFirewallRules"
	// RecommendationTypeIoTPrivilegedDockerOptions - Edge module is configured to run in privileged mode, with extensive Linux
	// capabilities or with host-level network access (send/receive data to host machine).
	RecommendationTypeIoTPrivilegedDockerOptions RecommendationType = "IoT_PrivilegedDockerOptions"
	// RecommendationTypeIoTSharedCredentials - Same authentication credentials to the IoT Hub used by multiple devices. This
	// could indicate an illegitimate device impersonating a legitimate device. It also exposes the risk of device impersonation
	// by an attacker.
	RecommendationTypeIoTSharedCredentials RecommendationType = "IoT_SharedCredentials"
	// RecommendationTypeIoTVulnerableTLSCipherSuite - Insecure TLS configurations detected. Immediate upgrade recommended.
	RecommendationTypeIoTVulnerableTLSCipherSuite RecommendationType = "IoT_VulnerableTLSCipherSuite"
)

// PossibleRecommendationTypeValues returns the possible values for the RecommendationType const type.
func PossibleRecommendationTypeValues() []RecommendationType {
	return []RecommendationType{
		RecommendationTypeIoTAcrauthentication,
		RecommendationTypeIoTAgentSendsUnutilizedMessages,
		RecommendationTypeIoTBaseline,
		RecommendationTypeIoTEdgeHubMemOptimize,
		RecommendationTypeIoTEdgeLoggingOptions,
		RecommendationTypeIoTInconsistentModuleSettings,
		RecommendationTypeIoTInstallAgent,
		RecommendationTypeIoTIpfilterDenyAll,
		RecommendationTypeIoTIpfilterPermissiveRule,
		RecommendationTypeIoTOpenPorts,
		RecommendationTypeIoTPermissiveFirewallPolicy,
		RecommendationTypeIoTPermissiveInputFirewallRules,
		RecommendationTypeIoTPermissiveOutputFirewallRules,
		RecommendationTypeIoTPrivilegedDockerOptions,
		RecommendationTypeIoTSharedCredentials,
		RecommendationTypeIoTVulnerableTLSCipherSuite,
	}
}

// ReportedSeverity - Assessed alert severity.
type ReportedSeverity string

const (
	// ReportedSeverityHigh - High
	ReportedSeverityHigh ReportedSeverity = "High"
	// ReportedSeverityInformational - Informational
	ReportedSeverityInformational ReportedSeverity = "Informational"
	// ReportedSeverityLow - Low
	ReportedSeverityLow ReportedSeverity = "Low"
	// ReportedSeverityMedium - Medium
	ReportedSeverityMedium ReportedSeverity = "Medium"
)

// PossibleReportedSeverityValues returns the possible values for the ReportedSeverity const type.
func PossibleReportedSeverityValues() []ReportedSeverity {
	return []ReportedSeverity{
		ReportedSeverityHigh,
		ReportedSeverityInformational,
		ReportedSeverityLow,
		ReportedSeverityMedium,
	}
}

// ResourceIdentifierType - There can be multiple identifiers of different type per alert, this field specify the identifier
// type.
type ResourceIdentifierType string

const (
	// ResourceIdentifierTypeAzureResource - AzureResource
	ResourceIdentifierTypeAzureResource ResourceIdentifierType = "AzureResource"
	// ResourceIdentifierTypeLogAnalytics - LogAnalytics
	ResourceIdentifierTypeLogAnalytics ResourceIdentifierType = "LogAnalytics"
)

// PossibleResourceIdentifierTypeValues returns the possible values for the ResourceIdentifierType const type.
func PossibleResourceIdentifierTypeValues() []ResourceIdentifierType {
	return []ResourceIdentifierType{
		ResourceIdentifierTypeAzureResource,
		ResourceIdentifierTypeLogAnalytics,
	}
}

// ResourceStatus - The status of the resource regarding a single assessment
type ResourceStatus string

const (
	// ResourceStatusHealthy - This assessment on the resource is healthy
	ResourceStatusHealthy ResourceStatus = "Healthy"
	// ResourceStatusNotApplicable - This assessment is not applicable to this resource
	ResourceStatusNotApplicable ResourceStatus = "NotApplicable"
	// ResourceStatusNotHealthy - This assessment on the resource is not healthy
	ResourceStatusNotHealthy ResourceStatus = "NotHealthy"
	// ResourceStatusOffByPolicy - This assessment is turned off by policy on this subscription
	ResourceStatusOffByPolicy ResourceStatus = "OffByPolicy"
)

// PossibleResourceStatusValues returns the possible values for the ResourceStatus const type.
func PossibleResourceStatusValues() []ResourceStatus {
	return []ResourceStatus{
		ResourceStatusHealthy,
		ResourceStatusNotApplicable,
		ResourceStatusNotHealthy,
		ResourceStatusOffByPolicy,
	}
}

// ResourcesCoverageStatus - This field is available for subscription-level only, and reflects the coverage status of the
// resources under the subscription. Please note: The "pricingTier" field reflects the plan status of the subscription. However,
// since the plan status can also be defined at the resource level, there might be misalignment between the subscription's
// plan status and the resource status. This field helps indicate the coverage status of the resources.
type ResourcesCoverageStatus string

const (
	// ResourcesCoverageStatusFullyCovered - This value indicates that all resources associated with the subscription have the
	// Defender plan enabled.
	ResourcesCoverageStatusFullyCovered ResourcesCoverageStatus = "FullyCovered"
	// ResourcesCoverageStatusNotCovered - This value indicates that the Defender plan is disabled for all resources under the
	// subscription. None of the resources are protected by the Defender plan.
	ResourcesCoverageStatusNotCovered ResourcesCoverageStatus = "NotCovered"
	// ResourcesCoverageStatusPartiallyCovered - This value indicates that some resources under the subscription have the Defender
	// plan enabled, while others have it disabled. There is a mixed coverage status among resources.
	ResourcesCoverageStatusPartiallyCovered ResourcesCoverageStatus = "PartiallyCovered"
)

// PossibleResourcesCoverageStatusValues returns the possible values for the ResourcesCoverageStatus const type.
func PossibleResourcesCoverageStatusValues() []ResourcesCoverageStatus {
	return []ResourcesCoverageStatus{
		ResourcesCoverageStatusFullyCovered,
		ResourcesCoverageStatusNotCovered,
		ResourcesCoverageStatusPartiallyCovered,
	}
}

// RiskLevel - The risk level
type RiskLevel string

const (
	// RiskLevelCritical - Critical
	RiskLevelCritical RiskLevel = "Critical"
	// RiskLevelHigh - High
	RiskLevelHigh RiskLevel = "High"
	// RiskLevelLow - Low
	RiskLevelLow RiskLevel = "Low"
	// RiskLevelMedium - Medium
	RiskLevelMedium RiskLevel = "Medium"
	// RiskLevelNone - None
	RiskLevelNone RiskLevel = "None"
)

// PossibleRiskLevelValues returns the possible values for the RiskLevel const type.
func PossibleRiskLevelValues() []RiskLevel {
	return []RiskLevel{
		RiskLevelCritical,
		RiskLevelHigh,
		RiskLevelLow,
		RiskLevelMedium,
		RiskLevelNone,
	}
}

// RuleCategory - Rule categories.
// Code - code scanning results.
// Artifact scanning results.
// Dependencies scanning results.
// IaC results.
// Secrets scanning results.
// Container scanning results.
type RuleCategory string

const (
	// RuleCategoryArtifacts - Artifacts
	RuleCategoryArtifacts RuleCategory = "Artifacts"
	// RuleCategoryCode - Code
	RuleCategoryCode RuleCategory = "Code"
	// RuleCategoryContainers - Containers
	RuleCategoryContainers RuleCategory = "Containers"
	// RuleCategoryDependencies - Dependencies
	RuleCategoryDependencies RuleCategory = "Dependencies"
	// RuleCategoryIaC - IaC
	RuleCategoryIaC RuleCategory = "IaC"
	// RuleCategorySecrets - Secrets
	RuleCategorySecrets RuleCategory = "Secrets"
)

// PossibleRuleCategoryValues returns the possible values for the RuleCategory const type.
func PossibleRuleCategoryValues() []RuleCategory {
	return []RuleCategory{
		RuleCategoryArtifacts,
		RuleCategoryCode,
		RuleCategoryContainers,
		RuleCategoryDependencies,
		RuleCategoryIaC,
		RuleCategorySecrets,
	}
}

// RuleSeverity - The rule severity.
type RuleSeverity string

const (
	// RuleSeverityHigh - High severity vulnerability requiring immediate attention.
	RuleSeverityHigh RuleSeverity = "High"
	// RuleSeverityInformational - Informational finding that does not indicate a vulnerability.
	RuleSeverityInformational RuleSeverity = "Informational"
	// RuleSeverityLow - Low severity vulnerability with minimal risk.
	RuleSeverityLow RuleSeverity = "Low"
	// RuleSeverityMedium - Medium severity vulnerability that should be addressed.
	RuleSeverityMedium RuleSeverity = "Medium"
	// RuleSeverityObsolete - The rule is obsolete and no longer applicable.
	RuleSeverityObsolete RuleSeverity = "Obsolete"
)

// PossibleRuleSeverityValues returns the possible values for the RuleSeverity const type.
func PossibleRuleSeverityValues() []RuleSeverity {
	return []RuleSeverity{
		RuleSeverityHigh,
		RuleSeverityInformational,
		RuleSeverityLow,
		RuleSeverityMedium,
		RuleSeverityObsolete,
	}
}

// RuleState - Possible states of the rule
type RuleState string

const (
	// RuleStateDisabled - Disabled
	RuleStateDisabled RuleState = "Disabled"
	// RuleStateEnabled - Enabled
	RuleStateEnabled RuleState = "Enabled"
	// RuleStateExpired - Expired
	RuleStateExpired RuleState = "Expired"
)

// PossibleRuleStateValues returns the possible values for the RuleState const type.
func PossibleRuleStateValues() []RuleState {
	return []RuleState{
		RuleStateDisabled,
		RuleStateEnabled,
		RuleStateExpired,
	}
}

// RuleStatus - The rule result status.
type RuleStatus string

const (
	// RuleStatusFinding - A vulnerability was found for this rule.
	RuleStatusFinding RuleStatus = "Finding"
	// RuleStatusInternalError - An internal error occurred while evaluating this rule.
	RuleStatusInternalError RuleStatus = "InternalError"
	// RuleStatusNonFinding - No vulnerability was found for this rule.
	RuleStatusNonFinding RuleStatus = "NonFinding"
	// RuleStatusNotApplicable - The rule is not applicable to the assessed resource.
	RuleStatusNotApplicable RuleStatus = "NotApplicable"
)

// PossibleRuleStatusValues returns the possible values for the RuleStatus const type.
func PossibleRuleStatusValues() []RuleStatus {
	return []RuleStatus{
		RuleStatusFinding,
		RuleStatusInternalError,
		RuleStatusNonFinding,
		RuleStatusNotApplicable,
	}
}

// RuleType - The rule type.
type RuleType string

const (
	// RuleTypeBaselineExpected - BaselineExpected
	RuleTypeBaselineExpected RuleType = "BaselineExpected"
	// RuleTypeBinary - Binary
	RuleTypeBinary RuleType = "Binary"
	// RuleTypeNegativeList - NegativeList
	RuleTypeNegativeList RuleType = "NegativeList"
	// RuleTypePositiveList - PositiveList
	RuleTypePositiveList RuleType = "PositiveList"
)

// PossibleRuleTypeValues returns the possible values for the RuleType const type.
func PossibleRuleTypeValues() []RuleType {
	return []RuleType{
		RuleTypeBaselineExpected,
		RuleTypeBinary,
		RuleTypeNegativeList,
		RuleTypePositiveList,
	}
}

// SQLVulnerabilityAssessmentState - Represents the state of a SQL Vulnerability Assessment.
type SQLVulnerabilityAssessmentState string

const (
	// SQLVulnerabilityAssessmentStateDisabled - Disabled
	SQLVulnerabilityAssessmentStateDisabled SQLVulnerabilityAssessmentState = "Disabled"
	// SQLVulnerabilityAssessmentStateEnabled - Enabled
	SQLVulnerabilityAssessmentStateEnabled SQLVulnerabilityAssessmentState = "Enabled"
)

// PossibleSQLVulnerabilityAssessmentStateValues returns the possible values for the SQLVulnerabilityAssessmentState const type.
func PossibleSQLVulnerabilityAssessmentStateValues() []SQLVulnerabilityAssessmentState {
	return []SQLVulnerabilityAssessmentState{
		SQLVulnerabilityAssessmentStateDisabled,
		SQLVulnerabilityAssessmentStateEnabled,
	}
}

// ScanOperationStatus - The scan operation status.
type ScanOperationStatus string

const (
	// ScanOperationStatusFailed - The scan completed but found vulnerabilities.
	ScanOperationStatusFailed ScanOperationStatus = "Failed"
	// ScanOperationStatusFailedToRun - The scan failed to execute.
	ScanOperationStatusFailedToRun ScanOperationStatus = "FailedToRun"
	// ScanOperationStatusInProgress - The scan is currently running.
	ScanOperationStatusInProgress ScanOperationStatus = "InProgress"
	// ScanOperationStatusPassed - The scan completed successfully with no vulnerabilities found.
	ScanOperationStatusPassed ScanOperationStatus = "Passed"
)

// PossibleScanOperationStatusValues returns the possible values for the ScanOperationStatus const type.
func PossibleScanOperationStatusValues() []ScanOperationStatus {
	return []ScanOperationStatus{
		ScanOperationStatusFailed,
		ScanOperationStatusFailedToRun,
		ScanOperationStatusInProgress,
		ScanOperationStatusPassed,
	}
}

// ScanState - The scan status.
type ScanState string

const (
	// ScanStateFailed - Failed
	ScanStateFailed ScanState = "Failed"
	// ScanStateFailedToRun - FailedToRun
	ScanStateFailedToRun ScanState = "FailedToRun"
	// ScanStateInProgress - InProgress
	ScanStateInProgress ScanState = "InProgress"
	// ScanStatePassed - Passed
	ScanStatePassed ScanState = "Passed"
)

// PossibleScanStateValues returns the possible values for the ScanState const type.
func PossibleScanStateValues() []ScanState {
	return []ScanState{
		ScanStateFailed,
		ScanStateFailedToRun,
		ScanStateInProgress,
		ScanStatePassed,
	}
}

// ScanTriggerType - The scan trigger type.
type ScanTriggerType string

const (
	// ScanTriggerTypeOnDemand - OnDemand
	ScanTriggerTypeOnDemand ScanTriggerType = "OnDemand"
	// ScanTriggerTypeRecurring - Recurring
	ScanTriggerTypeRecurring ScanTriggerType = "Recurring"
)

// PossibleScanTriggerTypeValues returns the possible values for the ScanTriggerType const type.
func PossibleScanTriggerTypeValues() []ScanTriggerType {
	return []ScanTriggerType{
		ScanTriggerTypeOnDemand,
		ScanTriggerTypeRecurring,
	}
}

// ScanningMode - The scanning mode for the VM scan.
type ScanningMode string

const (
	// ScanningModeDefault - Default
	ScanningModeDefault ScanningMode = "Default"
)

// PossibleScanningModeValues returns the possible values for the ScanningMode const type.
func PossibleScanningModeValues() []ScanningMode {
	return []ScanningMode{
		ScanningModeDefault,
	}
}

type SecurityContactName string

const (
	// SecurityContactNameDefault - The single applicable name of the security contact object
	SecurityContactNameDefault SecurityContactName = "default"
)

// PossibleSecurityContactNameValues returns the possible values for the SecurityContactName const type.
func PossibleSecurityContactNameValues() []SecurityContactName {
	return []SecurityContactName{
		SecurityContactNameDefault,
	}
}

// SecurityContactRole - A possible role to configure sending security notification alerts to
type SecurityContactRole string

const (
	// SecurityContactRoleAccountAdmin - If enabled, send notification on new alerts to the account admins
	SecurityContactRoleAccountAdmin SecurityContactRole = "AccountAdmin"
	// SecurityContactRoleContributor - If enabled, send notification on new alerts to the subscription contributors
	SecurityContactRoleContributor SecurityContactRole = "Contributor"
	// SecurityContactRoleOwner - If enabled, send notification on new alerts to the subscription owners
	SecurityContactRoleOwner SecurityContactRole = "Owner"
	// SecurityContactRoleServiceAdmin - If enabled, send notification on new alerts to the service admins
	SecurityContactRoleServiceAdmin SecurityContactRole = "ServiceAdmin"
)

// PossibleSecurityContactRoleValues returns the possible values for the SecurityContactRole const type.
func PossibleSecurityContactRoleValues() []SecurityContactRole {
	return []SecurityContactRole{
		SecurityContactRoleAccountAdmin,
		SecurityContactRoleContributor,
		SecurityContactRoleOwner,
		SecurityContactRoleServiceAdmin,
	}
}

// SecurityFamily - The security family of the discovered solution
type SecurityFamily string

const (
	// SecurityFamilyNgfw - Ngfw
	SecurityFamilyNgfw SecurityFamily = "Ngfw"
	// SecurityFamilySaasWaf - SaasWaf
	SecurityFamilySaasWaf SecurityFamily = "SaasWaf"
	// SecurityFamilyVa - Va
	SecurityFamilyVa SecurityFamily = "Va"
	// SecurityFamilyWaf - Waf
	SecurityFamilyWaf SecurityFamily = "Waf"
)

// PossibleSecurityFamilyValues returns the possible values for the SecurityFamily const type.
func PossibleSecurityFamilyValues() []SecurityFamily {
	return []SecurityFamily{
		SecurityFamilyNgfw,
		SecurityFamilySaasWaf,
		SecurityFamilyVa,
		SecurityFamilyWaf,
	}
}

// SecurityIssue - The severity to relate to the assessments generated by this Recommendation.
type SecurityIssue string

const (
	// SecurityIssueAnonymousAccess - AnonymousAccess
	SecurityIssueAnonymousAccess SecurityIssue = "AnonymousAccess"
	// SecurityIssueBestPractices - BestPractices
	SecurityIssueBestPractices SecurityIssue = "BestPractices"
	// SecurityIssueExcessivePermissions - ExcessivePermissions
	SecurityIssueExcessivePermissions SecurityIssue = "ExcessivePermissions"
	// SecurityIssueNetworkExposure - NetworkExposure
	SecurityIssueNetworkExposure SecurityIssue = "NetworkExposure"
	// SecurityIssueTrafficEncryption - TrafficEncryption
	SecurityIssueTrafficEncryption SecurityIssue = "TrafficEncryption"
	// SecurityIssueVulnerability - Vulnerability
	SecurityIssueVulnerability SecurityIssue = "Vulnerability"
)

// PossibleSecurityIssueValues returns the possible values for the SecurityIssue const type.
func PossibleSecurityIssueValues() []SecurityIssue {
	return []SecurityIssue{
		SecurityIssueAnonymousAccess,
		SecurityIssueBestPractices,
		SecurityIssueExcessivePermissions,
		SecurityIssueNetworkExposure,
		SecurityIssueTrafficEncryption,
		SecurityIssueVulnerability,
	}
}

// SecuritySolutionStatus - Status of the IoT Security solution.
type SecuritySolutionStatus string

const (
	// SecuritySolutionStatusDisabled - Disabled
	SecuritySolutionStatusDisabled SecuritySolutionStatus = "Disabled"
	// SecuritySolutionStatusEnabled - Enabled
	SecuritySolutionStatusEnabled SecuritySolutionStatus = "Enabled"
)

// PossibleSecuritySolutionStatusValues returns the possible values for the SecuritySolutionStatus const type.
func PossibleSecuritySolutionStatusValues() []SecuritySolutionStatus {
	return []SecuritySolutionStatus{
		SecuritySolutionStatusDisabled,
		SecuritySolutionStatusEnabled,
	}
}

// ServerVulnerabilityAssessmentPropertiesProvisioningState - The provisioningState of the vulnerability assessment capability
// on the VM
type ServerVulnerabilityAssessmentPropertiesProvisioningState string

const (
	// ServerVulnerabilityAssessmentPropertiesProvisioningStateCanceled - Canceled
	ServerVulnerabilityAssessmentPropertiesProvisioningStateCanceled ServerVulnerabilityAssessmentPropertiesProvisioningState = "Canceled"
	// ServerVulnerabilityAssessmentPropertiesProvisioningStateDeprovisioning - Deprovisioning
	ServerVulnerabilityAssessmentPropertiesProvisioningStateDeprovisioning ServerVulnerabilityAssessmentPropertiesProvisioningState = "Deprovisioning"
	// ServerVulnerabilityAssessmentPropertiesProvisioningStateFailed - Failed
	ServerVulnerabilityAssessmentPropertiesProvisioningStateFailed ServerVulnerabilityAssessmentPropertiesProvisioningState = "Failed"
	// ServerVulnerabilityAssessmentPropertiesProvisioningStateProvisioning - Provisioning
	ServerVulnerabilityAssessmentPropertiesProvisioningStateProvisioning ServerVulnerabilityAssessmentPropertiesProvisioningState = "Provisioning"
	// ServerVulnerabilityAssessmentPropertiesProvisioningStateSucceeded - Succeeded
	ServerVulnerabilityAssessmentPropertiesProvisioningStateSucceeded ServerVulnerabilityAssessmentPropertiesProvisioningState = "Succeeded"
)

// PossibleServerVulnerabilityAssessmentPropertiesProvisioningStateValues returns the possible values for the ServerVulnerabilityAssessmentPropertiesProvisioningState const type.
func PossibleServerVulnerabilityAssessmentPropertiesProvisioningStateValues() []ServerVulnerabilityAssessmentPropertiesProvisioningState {
	return []ServerVulnerabilityAssessmentPropertiesProvisioningState{
		ServerVulnerabilityAssessmentPropertiesProvisioningStateCanceled,
		ServerVulnerabilityAssessmentPropertiesProvisioningStateDeprovisioning,
		ServerVulnerabilityAssessmentPropertiesProvisioningStateFailed,
		ServerVulnerabilityAssessmentPropertiesProvisioningStateProvisioning,
		ServerVulnerabilityAssessmentPropertiesProvisioningStateSucceeded,
	}
}

// ServerVulnerabilityAssessmentsAzureSettingSelectedProvider - The selected vulnerability assessments provider on Azure servers
// in the defined scope.
type ServerVulnerabilityAssessmentsAzureSettingSelectedProvider string

const (
	// ServerVulnerabilityAssessmentsAzureSettingSelectedProviderMdeTvm - Microsoft Defender for Endpoints threat and vulnerability
	// management.
	ServerVulnerabilityAssessmentsAzureSettingSelectedProviderMdeTvm ServerVulnerabilityAssessmentsAzureSettingSelectedProvider = "MdeTvm"
)

// PossibleServerVulnerabilityAssessmentsAzureSettingSelectedProviderValues returns the possible values for the ServerVulnerabilityAssessmentsAzureSettingSelectedProvider const type.
func PossibleServerVulnerabilityAssessmentsAzureSettingSelectedProviderValues() []ServerVulnerabilityAssessmentsAzureSettingSelectedProvider {
	return []ServerVulnerabilityAssessmentsAzureSettingSelectedProvider{
		ServerVulnerabilityAssessmentsAzureSettingSelectedProviderMdeTvm,
	}
}

// ServerVulnerabilityAssessmentsSettingKind - The kind of the server vulnerability assessments setting
type ServerVulnerabilityAssessmentsSettingKind string

const (
	// ServerVulnerabilityAssessmentsSettingKindAzureServersSetting - AzureServersSetting
	ServerVulnerabilityAssessmentsSettingKindAzureServersSetting ServerVulnerabilityAssessmentsSettingKind = "AzureServersSetting"
)

// PossibleServerVulnerabilityAssessmentsSettingKindValues returns the possible values for the ServerVulnerabilityAssessmentsSettingKind const type.
func PossibleServerVulnerabilityAssessmentsSettingKindValues() []ServerVulnerabilityAssessmentsSettingKind {
	return []ServerVulnerabilityAssessmentsSettingKind{
		ServerVulnerabilityAssessmentsSettingKindAzureServersSetting,
	}
}

type ServerVulnerabilityAssessmentsSettingKindName string

const (
	// ServerVulnerabilityAssessmentsSettingKindNameAzureServersSetting - azureServersSetting
	ServerVulnerabilityAssessmentsSettingKindNameAzureServersSetting ServerVulnerabilityAssessmentsSettingKindName = "azureServersSetting"
)

// PossibleServerVulnerabilityAssessmentsSettingKindNameValues returns the possible values for the ServerVulnerabilityAssessmentsSettingKindName const type.
func PossibleServerVulnerabilityAssessmentsSettingKindNameValues() []ServerVulnerabilityAssessmentsSettingKindName {
	return []ServerVulnerabilityAssessmentsSettingKindName{
		ServerVulnerabilityAssessmentsSettingKindNameAzureServersSetting,
	}
}

// SettingKind - the kind of the settings string
type SettingKind string

const (
	// SettingKindAlertSuppressionSetting - AlertSuppressionSetting
	SettingKindAlertSuppressionSetting SettingKind = "AlertSuppressionSetting"
	// SettingKindAlertSyncSettings - AlertSyncSettings
	SettingKindAlertSyncSettings SettingKind = "AlertSyncSettings"
	// SettingKindDataExportSettings - DataExportSettings
	SettingKindDataExportSettings SettingKind = "DataExportSettings"
)

// PossibleSettingKindValues returns the possible values for the SettingKind const type.
func PossibleSettingKindValues() []SettingKind {
	return []SettingKind{
		SettingKindAlertSuppressionSetting,
		SettingKindAlertSyncSettings,
		SettingKindDataExportSettings,
	}
}

type SettingName string

const (
	// SettingNameCurrent - Name of the Defender for Storage Settings name.
	SettingNameCurrent SettingName = "current"
	// SettingNameMCAS - MCAS
	SettingNameMCAS SettingName = "MCAS"
	// SettingNameSentinel - Sentinel
	SettingNameSentinel SettingName = "Sentinel"
	// SettingNameWDATP - WDATP
	SettingNameWDATP SettingName = "WDATP"
	// SettingNameWDATPEXCLUDELINUXPUBLICPREVIEW - WDATP_EXCLUDE_LINUX_PUBLIC_PREVIEW
	SettingNameWDATPEXCLUDELINUXPUBLICPREVIEW SettingName = "WDATP_EXCLUDE_LINUX_PUBLIC_PREVIEW"
	// SettingNameWDATPUNIFIEDSOLUTION - WDATP_UNIFIED_SOLUTION
	SettingNameWDATPUNIFIEDSOLUTION SettingName = "WDATP_UNIFIED_SOLUTION"
)

// PossibleSettingNameValues returns the possible values for the SettingName const type.
func PossibleSettingNameValues() []SettingName {
	return []SettingName{
		SettingNameCurrent,
		SettingNameMCAS,
		SettingNameSentinel,
		SettingNameWDATP,
		SettingNameWDATPEXCLUDELINUXPUBLICPREVIEW,
		SettingNameWDATPUNIFIEDSOLUTION,
	}
}

// Severity - The severity level of the assessment
type Severity string

const (
	// SeverityCritical - Critical
	SeverityCritical Severity = "Critical"
	// SeverityHigh - High
	SeverityHigh Severity = "High"
	// SeverityLow - Low
	SeverityLow Severity = "Low"
	// SeverityMedium - Medium
	SeverityMedium Severity = "Medium"
)

// PossibleSeverityValues returns the possible values for the Severity const type.
func PossibleSeverityValues() []Severity {
	return []Severity{
		SeverityCritical,
		SeverityHigh,
		SeverityLow,
		SeverityMedium,
	}
}

// SeverityEnum - The severity to relate to the assessments generated by this Recommendation.
type SeverityEnum string

const (
	// SeverityEnumHigh - High
	SeverityEnumHigh SeverityEnum = "High"
	// SeverityEnumLow - Low
	SeverityEnumLow SeverityEnum = "Low"
	// SeverityEnumMedium - Medium
	SeverityEnumMedium SeverityEnum = "Medium"
)

// PossibleSeverityEnumValues returns the possible values for the SeverityEnum const type.
func PossibleSeverityEnumValues() []SeverityEnum {
	return []SeverityEnum{
		SeverityEnumHigh,
		SeverityEnumLow,
		SeverityEnumMedium,
	}
}

// Source - The platform where the assessed resource resides
type Source string

const (
	// SourceAws - Aws
	SourceAws Source = "Aws"
	// SourceAzure - Resource is in Azure
	SourceAzure Source = "Azure"
	// SourceGcp - Gcp
	SourceGcp Source = "Gcp"
	// SourceOnPremise - Resource in an on premise machine connected to Azure cloud
	SourceOnPremise Source = "OnPremise"
	// SourceOnPremiseResourceDetails - On premise resource details
	SourceOnPremiseResourceDetails Source = "OnPremiseResourceDetails"
	// SourceOnPremiseSQL - SQL Resource in an on premise machine connected to Azure cloud
	SourceOnPremiseSQL Source = "OnPremiseSql"
)

// PossibleSourceValues returns the possible values for the Source const type.
func PossibleSourceValues() []Source {
	return []Source{
		SourceAws,
		SourceAzure,
		SourceGcp,
		SourceOnPremise,
		SourceOnPremiseResourceDetails,
		SourceOnPremiseSQL,
	}
}

// SourceType - The source type that will trigger the notification
type SourceType string

const (
	// SourceTypeAlert - Alert
	SourceTypeAlert SourceType = "Alert"
	// SourceTypeAttackPath - AttackPath
	SourceTypeAttackPath SourceType = "AttackPath"
)

// PossibleSourceTypeValues returns the possible values for the SourceType const type.
func PossibleSourceTypeValues() []SourceType {
	return []SourceType{
		SourceTypeAlert,
		SourceTypeAttackPath,
	}
}

// StandardSupportedCloud - The cloud that the standard is supported on.
type StandardSupportedCloud string

const (
	// StandardSupportedCloudAWS - AWS
	StandardSupportedCloudAWS StandardSupportedCloud = "AWS"
	// StandardSupportedCloudAzure - Azure
	StandardSupportedCloudAzure StandardSupportedCloud = "Azure"
	// StandardSupportedCloudGCP - GCP
	StandardSupportedCloudGCP StandardSupportedCloud = "GCP"
)

// PossibleStandardSupportedCloudValues returns the possible values for the StandardSupportedCloud const type.
func PossibleStandardSupportedCloudValues() []StandardSupportedCloud {
	return []StandardSupportedCloud{
		StandardSupportedCloudAWS,
		StandardSupportedCloudAzure,
		StandardSupportedCloudGCP,
	}
}

// StandardSupportedClouds - The cloud that the standard is supported on.
type StandardSupportedClouds string

const (
	// StandardSupportedCloudsAWS - AWS
	StandardSupportedCloudsAWS StandardSupportedClouds = "AWS"
	// StandardSupportedCloudsGCP - GCP
	StandardSupportedCloudsGCP StandardSupportedClouds = "GCP"
)

// PossibleStandardSupportedCloudsValues returns the possible values for the StandardSupportedClouds const type.
func PossibleStandardSupportedCloudsValues() []StandardSupportedClouds {
	return []StandardSupportedClouds{
		StandardSupportedCloudsAWS,
		StandardSupportedCloudsGCP,
	}
}

// StandardType - Standard type (Custom or Default or Compliance only currently)
type StandardType string

const (
	// StandardTypeCompliance - Compliance
	StandardTypeCompliance StandardType = "Compliance"
	// StandardTypeCustom - Custom
	StandardTypeCustom StandardType = "Custom"
	// StandardTypeDefault - Default
	StandardTypeDefault StandardType = "Default"
)

// PossibleStandardTypeValues returns the possible values for the StandardType const type.
func PossibleStandardTypeValues() []StandardType {
	return []StandardType{
		StandardTypeCompliance,
		StandardTypeCustom,
		StandardTypeDefault,
	}
}

// State - Aggregative state based on the standard's supported controls states
type State string

const (
	// StateFailed - At least one supported regulatory compliance control in the given standard has a state of failed
	StateFailed State = "Failed"
	// StateOff - Don't send notification on new alerts to the subscription's admins
	StateOff State = "Off"
	// StateOn - Send notification on new alerts to the subscription's admins
	StateOn State = "On"
	// StatePassed - All supported regulatory compliance controls in the given standard have a passed state
	StatePassed State = "Passed"
	// StateSkipped - All supported regulatory compliance controls in the given standard have a state of skipped
	StateSkipped State = "Skipped"
	// StateUnsupported - No supported regulatory compliance data for the given standard
	StateUnsupported State = "Unsupported"
)

// PossibleStateValues returns the possible values for the State const type.
func PossibleStateValues() []State {
	return []State{
		StateFailed,
		StateOff,
		StateOn,
		StatePassed,
		StateSkipped,
		StateUnsupported,
	}
}

// Status - The status of the port
type Status string

const (
	// StatusInitiated - Initiated
	StatusInitiated Status = "Initiated"
	// StatusRevoked - Revoked
	StatusRevoked Status = "Revoked"
)

// PossibleStatusValues returns the possible values for the Status const type.
func PossibleStatusValues() []Status {
	return []Status{
		StatusInitiated,
		StatusRevoked,
	}
}

// StatusName - The status of the health report
type StatusName string

const (
	// StatusNameHealthy - Healthy
	StatusNameHealthy StatusName = "Healthy"
	// StatusNameNotApplicable - NotApplicable
	StatusNameNotApplicable StatusName = "NotApplicable"
	// StatusNameNotHealthy - NotHealthy
	StatusNameNotHealthy StatusName = "NotHealthy"
)

// PossibleStatusNameValues returns the possible values for the StatusName const type.
func PossibleStatusNameValues() []StatusName {
	return []StatusName{
		StatusNameHealthy,
		StatusNameNotApplicable,
		StatusNameNotHealthy,
	}
}

// StatusReason - A description of why the `status` has its value
type StatusReason string

const (
	// StatusReasonExpired - Expired
	StatusReasonExpired StatusReason = "Expired"
	// StatusReasonNewerRequestInitiated - NewerRequestInitiated
	StatusReasonNewerRequestInitiated StatusReason = "NewerRequestInitiated"
	// StatusReasonUserRequested - UserRequested
	StatusReasonUserRequested StatusReason = "UserRequested"
)

// PossibleStatusReasonValues returns the possible values for the StatusReason const type.
func PossibleStatusReasonValues() []StatusReason {
	return []StatusReason{
		StatusReasonExpired,
		StatusReasonNewerRequestInitiated,
		StatusReasonUserRequested,
	}
}

// SubAssessmentStatusCode - Programmatic code for the status of the assessment
type SubAssessmentStatusCode string

const (
	// SubAssessmentStatusCodeHealthy - The resource is healthy
	SubAssessmentStatusCodeHealthy SubAssessmentStatusCode = "Healthy"
	// SubAssessmentStatusCodeNotApplicable - Assessment for this resource did not happen
	SubAssessmentStatusCodeNotApplicable SubAssessmentStatusCode = "NotApplicable"
	// SubAssessmentStatusCodeUnhealthy - The resource has a security issue that needs to be addressed
	SubAssessmentStatusCodeUnhealthy SubAssessmentStatusCode = "Unhealthy"
)

// PossibleSubAssessmentStatusCodeValues returns the possible values for the SubAssessmentStatusCode const type.
func PossibleSubAssessmentStatusCodeValues() []SubAssessmentStatusCode {
	return []SubAssessmentStatusCode{
		SubAssessmentStatusCodeHealthy,
		SubAssessmentStatusCodeNotApplicable,
		SubAssessmentStatusCodeUnhealthy,
	}
}

// SubPlan - The available sub plans
type SubPlan string

const (
	// SubPlanP1 - P1
	SubPlanP1 SubPlan = "P1"
	// SubPlanP2 - P2
	SubPlanP2 SubPlan = "P2"
)

// PossibleSubPlanValues returns the possible values for the SubPlan const type.
func PossibleSubPlanValues() []SubPlan {
	return []SubPlan{
		SubPlanP1,
		SubPlanP2,
	}
}

// Tactics - Tactic of the assessment
type Tactics string

const (
	// TacticsCollection - Collection
	TacticsCollection Tactics = "Collection"
	// TacticsCommandAndControl - Command and Control
	TacticsCommandAndControl Tactics = "Command and Control"
	// TacticsCredentialAccess - Credential Access
	TacticsCredentialAccess Tactics = "Credential Access"
	// TacticsDefenseEvasion - Defense Evasion
	TacticsDefenseEvasion Tactics = "Defense Evasion"
	// TacticsDiscovery - Discovery
	TacticsDiscovery Tactics = "Discovery"
	// TacticsExecution - Execution
	TacticsExecution Tactics = "Execution"
	// TacticsExfiltration - Exfiltration
	TacticsExfiltration Tactics = "Exfiltration"
	// TacticsImpact - Impact
	TacticsImpact Tactics = "Impact"
	// TacticsInitialAccess - Initial Access
	TacticsInitialAccess Tactics = "Initial Access"
	// TacticsLateralMovement - Lateral Movement
	TacticsLateralMovement Tactics = "Lateral Movement"
	// TacticsPersistence - Persistence
	TacticsPersistence Tactics = "Persistence"
	// TacticsPrivilegeEscalation - Privilege Escalation
	TacticsPrivilegeEscalation Tactics = "Privilege Escalation"
	// TacticsReconnaissance - Reconnaissance
	TacticsReconnaissance Tactics = "Reconnaissance"
	// TacticsResourceDevelopment - Resource Development
	TacticsResourceDevelopment Tactics = "Resource Development"
)

// PossibleTacticsValues returns the possible values for the Tactics const type.
func PossibleTacticsValues() []Tactics {
	return []Tactics{
		TacticsCollection,
		TacticsCommandAndControl,
		TacticsCredentialAccess,
		TacticsDefenseEvasion,
		TacticsDiscovery,
		TacticsExecution,
		TacticsExfiltration,
		TacticsImpact,
		TacticsInitialAccess,
		TacticsLateralMovement,
		TacticsPersistence,
		TacticsPrivilegeEscalation,
		TacticsReconnaissance,
		TacticsResourceDevelopment,
	}
}

type TaskUpdateActionType string

const (
	// TaskUpdateActionTypeActivate - Activate
	TaskUpdateActionTypeActivate TaskUpdateActionType = "Activate"
	// TaskUpdateActionTypeClose - Close
	TaskUpdateActionTypeClose TaskUpdateActionType = "Close"
	// TaskUpdateActionTypeDismiss - Dismiss
	TaskUpdateActionTypeDismiss TaskUpdateActionType = "Dismiss"
	// TaskUpdateActionTypeResolve - Resolve
	TaskUpdateActionTypeResolve TaskUpdateActionType = "Resolve"
	// TaskUpdateActionTypeStart - Start
	TaskUpdateActionTypeStart TaskUpdateActionType = "Start"
)

// PossibleTaskUpdateActionTypeValues returns the possible values for the TaskUpdateActionType const type.
func PossibleTaskUpdateActionTypeValues() []TaskUpdateActionType {
	return []TaskUpdateActionType{
		TaskUpdateActionTypeActivate,
		TaskUpdateActionTypeClose,
		TaskUpdateActionTypeDismiss,
		TaskUpdateActionTypeResolve,
		TaskUpdateActionTypeStart,
	}
}

// Techniques - Techniques of the assessment
type Techniques string

const (
	// TechniquesAbuseElevationControlMechanism - Abuse Elevation Control Mechanism
	TechniquesAbuseElevationControlMechanism Techniques = "Abuse Elevation Control Mechanism"
	// TechniquesAccessTokenManipulation - Access Token Manipulation
	TechniquesAccessTokenManipulation Techniques = "Access Token Manipulation"
	// TechniquesAccountDiscovery - Account Discovery
	TechniquesAccountDiscovery Techniques = "Account Discovery"
	// TechniquesAccountManipulation - Account Manipulation
	TechniquesAccountManipulation Techniques = "Account Manipulation"
	// TechniquesActiveScanning - Active Scanning
	TechniquesActiveScanning Techniques = "Active Scanning"
	// TechniquesApplicationLayerProtocol - Application Layer Protocol
	TechniquesApplicationLayerProtocol Techniques = "Application Layer Protocol"
	// TechniquesAudioCapture - Audio Capture
	TechniquesAudioCapture Techniques = "Audio Capture"
	// TechniquesBootOrLogonAutostartExecution - Boot or Logon Autostart Execution
	TechniquesBootOrLogonAutostartExecution Techniques = "Boot or Logon Autostart Execution"
	// TechniquesBootOrLogonInitializationScripts - Boot or Logon Initialization Scripts
	TechniquesBootOrLogonInitializationScripts Techniques = "Boot or Logon Initialization Scripts"
	// TechniquesBruteForce - Brute Force
	TechniquesBruteForce Techniques = "Brute Force"
	// TechniquesCloudInfrastructureDiscovery - Cloud Infrastructure Discovery
	TechniquesCloudInfrastructureDiscovery Techniques = "Cloud Infrastructure Discovery"
	// TechniquesCloudServiceDashboard - Cloud Service Dashboard
	TechniquesCloudServiceDashboard Techniques = "Cloud Service Dashboard"
	// TechniquesCloudServiceDiscovery - Cloud Service Discovery
	TechniquesCloudServiceDiscovery Techniques = "Cloud Service Discovery"
	// TechniquesCommandAndScriptingInterpreter - Command and Scripting Interpreter
	TechniquesCommandAndScriptingInterpreter Techniques = "Command and Scripting Interpreter"
	// TechniquesCompromiseClientSoftwareBinary - Compromise Client Software Binary
	TechniquesCompromiseClientSoftwareBinary Techniques = "Compromise Client Software Binary"
	// TechniquesCompromiseInfrastructure - Compromise Infrastructure
	TechniquesCompromiseInfrastructure Techniques = "Compromise Infrastructure"
	// TechniquesContainerAndResourceDiscovery - Container and Resource Discovery
	TechniquesContainerAndResourceDiscovery Techniques = "Container and Resource Discovery"
	// TechniquesCreateAccount - Create Account
	TechniquesCreateAccount Techniques = "Create Account"
	// TechniquesCreateOrModifySystemProcess - Create or Modify System Process
	TechniquesCreateOrModifySystemProcess Techniques = "Create or Modify System Process"
	// TechniquesCredentialsFromPasswordStores - Credentials from Password Stores
	TechniquesCredentialsFromPasswordStores Techniques = "Credentials from Password Stores"
	// TechniquesDataDestruction - Data Destruction
	TechniquesDataDestruction Techniques = "Data Destruction"
	// TechniquesDataEncryptedForImpact - Data Encrypted for Impact
	TechniquesDataEncryptedForImpact Techniques = "Data Encrypted for Impact"
	// TechniquesDataFromCloudStorageObject - Data from Cloud Storage Object
	TechniquesDataFromCloudStorageObject Techniques = "Data from Cloud Storage Object"
	// TechniquesDataFromConfigurationRepository - Data from Configuration Repository
	TechniquesDataFromConfigurationRepository Techniques = "Data from Configuration Repository"
	// TechniquesDataFromInformationRepositories - Data from Information Repositories
	TechniquesDataFromInformationRepositories Techniques = "Data from Information Repositories"
	// TechniquesDataFromLocalSystem - Data from Local System
	TechniquesDataFromLocalSystem Techniques = "Data from Local System"
	// TechniquesDataManipulation - Data Manipulation
	TechniquesDataManipulation Techniques = "Data Manipulation"
	// TechniquesDataStaged - Data Staged
	TechniquesDataStaged Techniques = "Data Staged"
	// TechniquesDefacement - Defacement
	TechniquesDefacement Techniques = "Defacement"
	// TechniquesDeobfuscateDecodeFilesOrInformation - Deobfuscate/Decode Files or Information
	TechniquesDeobfuscateDecodeFilesOrInformation Techniques = "Deobfuscate/Decode Files or Information"
	// TechniquesDiskWipe - Disk Wipe
	TechniquesDiskWipe Techniques = "Disk Wipe"
	// TechniquesDomainTrustDiscovery - Domain Trust Discovery
	TechniquesDomainTrustDiscovery Techniques = "Domain Trust Discovery"
	// TechniquesDriveByCompromise - Drive-by Compromise
	TechniquesDriveByCompromise Techniques = "Drive-by Compromise"
	// TechniquesDynamicResolution - Dynamic Resolution
	TechniquesDynamicResolution Techniques = "Dynamic Resolution"
	// TechniquesEndpointDenialOfService - Endpoint Denial of Service
	TechniquesEndpointDenialOfService Techniques = "Endpoint Denial of Service"
	// TechniquesEventTriggeredExecution - Event Triggered Execution
	TechniquesEventTriggeredExecution Techniques = "Event Triggered Execution"
	// TechniquesExfiltrationOverAlternativeProtocol - Exfiltration Over Alternative Protocol
	TechniquesExfiltrationOverAlternativeProtocol Techniques = "Exfiltration Over Alternative Protocol"
	// TechniquesExploitPublicFacingApplication - Exploit Public-Facing Application
	TechniquesExploitPublicFacingApplication Techniques = "Exploit Public-Facing Application"
	// TechniquesExploitationForClientExecution - Exploitation for Client Execution
	TechniquesExploitationForClientExecution Techniques = "Exploitation for Client Execution"
	// TechniquesExploitationForCredentialAccess - Exploitation for Credential Access
	TechniquesExploitationForCredentialAccess Techniques = "Exploitation for Credential Access"
	// TechniquesExploitationForDefenseEvasion - Exploitation for Defense Evasion
	TechniquesExploitationForDefenseEvasion Techniques = "Exploitation for Defense Evasion"
	// TechniquesExploitationForPrivilegeEscalation - Exploitation for Privilege Escalation
	TechniquesExploitationForPrivilegeEscalation Techniques = "Exploitation for Privilege Escalation"
	// TechniquesExploitationOfRemoteServices - Exploitation of Remote Services
	TechniquesExploitationOfRemoteServices Techniques = "Exploitation of Remote Services"
	// TechniquesExternalRemoteServices - External Remote Services
	TechniquesExternalRemoteServices Techniques = "External Remote Services"
	// TechniquesFallbackChannels - Fallback Channels
	TechniquesFallbackChannels Techniques = "Fallback Channels"
	// TechniquesFileAndDirectoryDiscovery - File and Directory Discovery
	TechniquesFileAndDirectoryDiscovery Techniques = "File and Directory Discovery"
	// TechniquesFileAndDirectoryPermissionsModification - File and Directory Permissions Modification
	TechniquesFileAndDirectoryPermissionsModification Techniques = "File and Directory Permissions Modification"
	// TechniquesGatherVictimNetworkInformation - Gather Victim Network Information
	TechniquesGatherVictimNetworkInformation Techniques = "Gather Victim Network Information"
	// TechniquesHideArtifacts - Hide Artifacts
	TechniquesHideArtifacts Techniques = "Hide Artifacts"
	// TechniquesHijackExecutionFlow - Hijack Execution Flow
	TechniquesHijackExecutionFlow Techniques = "Hijack Execution Flow"
	// TechniquesImpairDefenses - Impair Defenses
	TechniquesImpairDefenses Techniques = "Impair Defenses"
	// TechniquesImplantContainerImage - Implant Container Image
	TechniquesImplantContainerImage Techniques = "Implant Container Image"
	// TechniquesIndicatorRemovalOnHost - Indicator Removal on Host
	TechniquesIndicatorRemovalOnHost Techniques = "Indicator Removal on Host"
	// TechniquesIndirectCommandExecution - Indirect Command Execution
	TechniquesIndirectCommandExecution Techniques = "Indirect Command Execution"
	// TechniquesIngressToolTransfer - Ingress Tool Transfer
	TechniquesIngressToolTransfer Techniques = "Ingress Tool Transfer"
	// TechniquesInputCapture - Input Capture
	TechniquesInputCapture Techniques = "Input Capture"
	// TechniquesInterProcessCommunication - Inter-Process Communication
	TechniquesInterProcessCommunication Techniques = "Inter-Process Communication"
	// TechniquesLateralToolTransfer - Lateral Tool Transfer
	TechniquesLateralToolTransfer Techniques = "Lateral Tool Transfer"
	// TechniquesManInTheMiddle - Man-in-the-Middle
	TechniquesManInTheMiddle Techniques = "Man-in-the-Middle"
	// TechniquesMasquerading - Masquerading
	TechniquesMasquerading Techniques = "Masquerading"
	// TechniquesModifyAuthenticationProcess - Modify Authentication Process
	TechniquesModifyAuthenticationProcess Techniques = "Modify Authentication Process"
	// TechniquesModifyRegistry - Modify Registry
	TechniquesModifyRegistry Techniques = "Modify Registry"
	// TechniquesNetworkDenialOfService - Network Denial of Service
	TechniquesNetworkDenialOfService Techniques = "Network Denial of Service"
	// TechniquesNetworkServiceScanning - Network Service Scanning
	TechniquesNetworkServiceScanning Techniques = "Network Service Scanning"
	// TechniquesNetworkSniffing - Network Sniffing
	TechniquesNetworkSniffing Techniques = "Network Sniffing"
	// TechniquesNonApplicationLayerProtocol - Non-Application Layer Protocol
	TechniquesNonApplicationLayerProtocol Techniques = "Non-Application Layer Protocol"
	// TechniquesNonStandardPort - Non-Standard Port
	TechniquesNonStandardPort Techniques = "Non-Standard Port"
	// TechniquesOSCredentialDumping - OS Credential Dumping
	TechniquesOSCredentialDumping Techniques = "OS Credential Dumping"
	// TechniquesObfuscatedFilesOrInformation - Obfuscated Files or Information
	TechniquesObfuscatedFilesOrInformation Techniques = "Obfuscated Files or Information"
	// TechniquesObtainCapabilities - Obtain Capabilities
	TechniquesObtainCapabilities Techniques = "Obtain Capabilities"
	// TechniquesOfficeApplicationStartup - Office Application Startup
	TechniquesOfficeApplicationStartup Techniques = "Office Application Startup"
	// TechniquesPermissionGroupsDiscovery - Permission Groups Discovery
	TechniquesPermissionGroupsDiscovery Techniques = "Permission Groups Discovery"
	// TechniquesPhishing - Phishing
	TechniquesPhishing Techniques = "Phishing"
	// TechniquesPreOSBoot - Pre-OS Boot
	TechniquesPreOSBoot Techniques = "Pre-OS Boot"
	// TechniquesProcessDiscovery - Process Discovery
	TechniquesProcessDiscovery Techniques = "Process Discovery"
	// TechniquesProcessInjection - Process Injection
	TechniquesProcessInjection Techniques = "Process Injection"
	// TechniquesProtocolTunneling - Protocol Tunneling
	TechniquesProtocolTunneling Techniques = "Protocol Tunneling"
	// TechniquesProxy - Proxy
	TechniquesProxy Techniques = "Proxy"
	// TechniquesQueryRegistry - Query Registry
	TechniquesQueryRegistry Techniques = "Query Registry"
	// TechniquesRemoteAccessSoftware - Remote Access Software
	TechniquesRemoteAccessSoftware Techniques = "Remote Access Software"
	// TechniquesRemoteServiceSessionHijacking - Remote Service Session Hijacking
	TechniquesRemoteServiceSessionHijacking Techniques = "Remote Service Session Hijacking"
	// TechniquesRemoteServices - Remote Services
	TechniquesRemoteServices Techniques = "Remote Services"
	// TechniquesRemoteSystemDiscovery - Remote System Discovery
	TechniquesRemoteSystemDiscovery Techniques = "Remote System Discovery"
	// TechniquesResourceHijacking - Resource Hijacking
	TechniquesResourceHijacking Techniques = "Resource Hijacking"
	// TechniquesSQLStoredProcedures - SQL Stored Procedures
	TechniquesSQLStoredProcedures Techniques = "SQL Stored Procedures"
	// TechniquesScheduledTaskJob - Scheduled Task/Job
	TechniquesScheduledTaskJob Techniques = "Scheduled Task/Job"
	// TechniquesScreenCapture - Screen Capture
	TechniquesScreenCapture Techniques = "Screen Capture"
	// TechniquesSearchVictimOwnedWebsites - Search Victim-Owned Websites
	TechniquesSearchVictimOwnedWebsites Techniques = "Search Victim-Owned Websites"
	// TechniquesServerSoftwareComponent - Server Software Component
	TechniquesServerSoftwareComponent Techniques = "Server Software Component"
	// TechniquesServiceStop - Service Stop
	TechniquesServiceStop Techniques = "Service Stop"
	// TechniquesSignedBinaryProxyExecution - Signed Binary Proxy Execution
	TechniquesSignedBinaryProxyExecution Techniques = "Signed Binary Proxy Execution"
	// TechniquesSoftwareDeploymentTools - Software Deployment Tools
	TechniquesSoftwareDeploymentTools Techniques = "Software Deployment Tools"
	// TechniquesStealOrForgeKerberosTickets - Steal or Forge Kerberos Tickets
	TechniquesStealOrForgeKerberosTickets Techniques = "Steal or Forge Kerberos Tickets"
	// TechniquesSubvertTrustControls - Subvert Trust Controls
	TechniquesSubvertTrustControls Techniques = "Subvert Trust Controls"
	// TechniquesSupplyChainCompromise - Supply Chain Compromise
	TechniquesSupplyChainCompromise Techniques = "Supply Chain Compromise"
	// TechniquesSystemInformationDiscovery - System Information Discovery
	TechniquesSystemInformationDiscovery Techniques = "System Information Discovery"
	// TechniquesTaintSharedContent - Taint Shared Content
	TechniquesTaintSharedContent Techniques = "Taint Shared Content"
	// TechniquesTrafficSignaling - Traffic Signaling
	TechniquesTrafficSignaling Techniques = "Traffic Signaling"
	// TechniquesTransferDataToCloudAccount - Transfer Data to Cloud Account
	TechniquesTransferDataToCloudAccount Techniques = "Transfer Data to Cloud Account"
	// TechniquesTrustedRelationship - Trusted Relationship
	TechniquesTrustedRelationship Techniques = "Trusted Relationship"
	// TechniquesUnsecuredCredentials - Unsecured Credentials
	TechniquesUnsecuredCredentials Techniques = "Unsecured Credentials"
	// TechniquesUserExecution - User Execution
	TechniquesUserExecution Techniques = "User Execution"
	// TechniquesValidAccounts - Valid Accounts
	TechniquesValidAccounts Techniques = "Valid Accounts"
	// TechniquesWindowsManagementInstrumentation - Windows Management Instrumentation
	TechniquesWindowsManagementInstrumentation Techniques = "Windows Management Instrumentation"
)

// PossibleTechniquesValues returns the possible values for the Techniques const type.
func PossibleTechniquesValues() []Techniques {
	return []Techniques{
		TechniquesAbuseElevationControlMechanism,
		TechniquesAccessTokenManipulation,
		TechniquesAccountDiscovery,
		TechniquesAccountManipulation,
		TechniquesActiveScanning,
		TechniquesApplicationLayerProtocol,
		TechniquesAudioCapture,
		TechniquesBootOrLogonAutostartExecution,
		TechniquesBootOrLogonInitializationScripts,
		TechniquesBruteForce,
		TechniquesCloudInfrastructureDiscovery,
		TechniquesCloudServiceDashboard,
		TechniquesCloudServiceDiscovery,
		TechniquesCommandAndScriptingInterpreter,
		TechniquesCompromiseClientSoftwareBinary,
		TechniquesCompromiseInfrastructure,
		TechniquesContainerAndResourceDiscovery,
		TechniquesCreateAccount,
		TechniquesCreateOrModifySystemProcess,
		TechniquesCredentialsFromPasswordStores,
		TechniquesDataDestruction,
		TechniquesDataEncryptedForImpact,
		TechniquesDataFromCloudStorageObject,
		TechniquesDataFromConfigurationRepository,
		TechniquesDataFromInformationRepositories,
		TechniquesDataFromLocalSystem,
		TechniquesDataManipulation,
		TechniquesDataStaged,
		TechniquesDefacement,
		TechniquesDeobfuscateDecodeFilesOrInformation,
		TechniquesDiskWipe,
		TechniquesDomainTrustDiscovery,
		TechniquesDriveByCompromise,
		TechniquesDynamicResolution,
		TechniquesEndpointDenialOfService,
		TechniquesEventTriggeredExecution,
		TechniquesExfiltrationOverAlternativeProtocol,
		TechniquesExploitPublicFacingApplication,
		TechniquesExploitationForClientExecution,
		TechniquesExploitationForCredentialAccess,
		TechniquesExploitationForDefenseEvasion,
		TechniquesExploitationForPrivilegeEscalation,
		TechniquesExploitationOfRemoteServices,
		TechniquesExternalRemoteServices,
		TechniquesFallbackChannels,
		TechniquesFileAndDirectoryDiscovery,
		TechniquesFileAndDirectoryPermissionsModification,
		TechniquesGatherVictimNetworkInformation,
		TechniquesHideArtifacts,
		TechniquesHijackExecutionFlow,
		TechniquesImpairDefenses,
		TechniquesImplantContainerImage,
		TechniquesIndicatorRemovalOnHost,
		TechniquesIndirectCommandExecution,
		TechniquesIngressToolTransfer,
		TechniquesInputCapture,
		TechniquesInterProcessCommunication,
		TechniquesLateralToolTransfer,
		TechniquesManInTheMiddle,
		TechniquesMasquerading,
		TechniquesModifyAuthenticationProcess,
		TechniquesModifyRegistry,
		TechniquesNetworkDenialOfService,
		TechniquesNetworkServiceScanning,
		TechniquesNetworkSniffing,
		TechniquesNonApplicationLayerProtocol,
		TechniquesNonStandardPort,
		TechniquesOSCredentialDumping,
		TechniquesObfuscatedFilesOrInformation,
		TechniquesObtainCapabilities,
		TechniquesOfficeApplicationStartup,
		TechniquesPermissionGroupsDiscovery,
		TechniquesPhishing,
		TechniquesPreOSBoot,
		TechniquesProcessDiscovery,
		TechniquesProcessInjection,
		TechniquesProtocolTunneling,
		TechniquesProxy,
		TechniquesQueryRegistry,
		TechniquesRemoteAccessSoftware,
		TechniquesRemoteServiceSessionHijacking,
		TechniquesRemoteServices,
		TechniquesRemoteSystemDiscovery,
		TechniquesResourceHijacking,
		TechniquesSQLStoredProcedures,
		TechniquesScheduledTaskJob,
		TechniquesScreenCapture,
		TechniquesSearchVictimOwnedWebsites,
		TechniquesServerSoftwareComponent,
		TechniquesServiceStop,
		TechniquesSignedBinaryProxyExecution,
		TechniquesSoftwareDeploymentTools,
		TechniquesStealOrForgeKerberosTickets,
		TechniquesSubvertTrustControls,
		TechniquesSupplyChainCompromise,
		TechniquesSystemInformationDiscovery,
		TechniquesTaintSharedContent,
		TechniquesTrafficSignaling,
		TechniquesTransferDataToCloudAccount,
		TechniquesTrustedRelationship,
		TechniquesUnsecuredCredentials,
		TechniquesUserExecution,
		TechniquesValidAccounts,
		TechniquesWindowsManagementInstrumentation,
	}
}

// Threats - Threats impact of the assessment
type Threats string

const (
	// ThreatsAccountBreach - accountBreach
	ThreatsAccountBreach Threats = "accountBreach"
	// ThreatsDataExfiltration - dataExfiltration
	ThreatsDataExfiltration Threats = "dataExfiltration"
	// ThreatsDataSpillage - dataSpillage
	ThreatsDataSpillage Threats = "dataSpillage"
	// ThreatsDenialOfService - denialOfService
	ThreatsDenialOfService Threats = "denialOfService"
	// ThreatsElevationOfPrivilege - elevationOfPrivilege
	ThreatsElevationOfPrivilege Threats = "elevationOfPrivilege"
	// ThreatsMaliciousInsider - maliciousInsider
	ThreatsMaliciousInsider Threats = "maliciousInsider"
	// ThreatsMissingCoverage - missingCoverage
	ThreatsMissingCoverage Threats = "missingCoverage"
	// ThreatsThreatResistance - threatResistance
	ThreatsThreatResistance Threats = "threatResistance"
)

// PossibleThreatsValues returns the possible values for the Threats const type.
func PossibleThreatsValues() []Threats {
	return []Threats{
		ThreatsAccountBreach,
		ThreatsDataExfiltration,
		ThreatsDataSpillage,
		ThreatsDenialOfService,
		ThreatsElevationOfPrivilege,
		ThreatsMaliciousInsider,
		ThreatsMissingCoverage,
		ThreatsThreatResistance,
	}
}

// Type - The Vulnerability Assessment solution to be provisioned. Can be either 'TVM' or 'Qualys'
type Type string

const (
	// TypeQualys - Qualys
	TypeQualys Type = "Qualys"
	// TypeTVM - TVM
	TypeTVM Type = "TVM"
)

// PossibleTypeValues returns the possible values for the Type const type.
func PossibleTypeValues() []Type {
	return []Type{
		TypeQualys,
		TypeTVM,
	}
}

// UnmaskedIPLoggingStatus - Unmasked IP address logging status
type UnmaskedIPLoggingStatus string

const (
	// UnmaskedIPLoggingStatusDisabled - Unmasked IP logging is disabled
	UnmaskedIPLoggingStatusDisabled UnmaskedIPLoggingStatus = "Disabled"
	// UnmaskedIPLoggingStatusEnabled - Unmasked IP logging is enabled
	UnmaskedIPLoggingStatusEnabled UnmaskedIPLoggingStatus = "Enabled"
)

// PossibleUnmaskedIPLoggingStatusValues returns the possible values for the UnmaskedIPLoggingStatus const type.
func PossibleUnmaskedIPLoggingStatusValues() []UnmaskedIPLoggingStatus {
	return []UnmaskedIPLoggingStatus{
		UnmaskedIPLoggingStatusDisabled,
		UnmaskedIPLoggingStatusEnabled,
	}
}

// UserImpact - The user impact of the assessment
type UserImpact string

const (
	// UserImpactHigh - High
	UserImpactHigh UserImpact = "High"
	// UserImpactLow - Low
	UserImpactLow UserImpact = "Low"
	// UserImpactModerate - Moderate
	UserImpactModerate UserImpact = "Moderate"
)

// PossibleUserImpactValues returns the possible values for the UserImpact const type.
func PossibleUserImpactValues() []UserImpact {
	return []UserImpact{
		UserImpactHigh,
		UserImpactLow,
		UserImpactModerate,
	}
}

// ValueType - The value type of the items in the list.
type ValueType string

const (
	// ValueTypeIPCidr - An IP range in CIDR format (e.g. '192.168.0.1/8').
	ValueTypeIPCidr ValueType = "IpCidr"
	// ValueTypeString - Any string value.
	ValueTypeString ValueType = "String"
)

// PossibleValueTypeValues returns the possible values for the ValueType const type.
func PossibleValueTypeValues() []ValueType {
	return []ValueType{
		ValueTypeIPCidr,
		ValueTypeString,
	}
}
