// 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 armcloudhealth

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

const (
	// ActionTypeInternal - Actions are for internal-only APIs.
	ActionTypeInternal ActionType = "Internal"
)

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

// AlertSeverity - Severity of an alert
type AlertSeverity string

const (
	// AlertSeveritySev0 - Critical
	AlertSeveritySev0 AlertSeverity = "Sev0"
	// AlertSeveritySev1 - Error
	AlertSeveritySev1 AlertSeverity = "Sev1"
	// AlertSeveritySev2 - Warning
	AlertSeveritySev2 AlertSeverity = "Sev2"
	// AlertSeveritySev3 - Informational
	AlertSeveritySev3 AlertSeverity = "Sev3"
	// AlertSeveritySev4 - Verbose
	AlertSeveritySev4 AlertSeverity = "Sev4"
)

// PossibleAlertSeverityValues returns the possible values for the AlertSeverity const type.
func PossibleAlertSeverityValues() []AlertSeverity {
	return []AlertSeverity{
		AlertSeveritySev0,
		AlertSeveritySev1,
		AlertSeveritySev2,
		AlertSeveritySev3,
		AlertSeveritySev4,
	}
}

// AuthenticationKind - Supported kinds of authentication settings as discriminator
type AuthenticationKind string

const (
	AuthenticationKindManagedIdentity AuthenticationKind = "ManagedIdentity"
)

// PossibleAuthenticationKindValues returns the possible values for the AuthenticationKind const type.
func PossibleAuthenticationKindValues() []AuthenticationKind {
	return []AuthenticationKind{
		AuthenticationKindManagedIdentity,
	}
}

// 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,
	}
}

// DependenciesAggregationType - Aggregation type for child dependencies.
type DependenciesAggregationType string

const (
	// DependenciesAggregationTypeThresholds - Based on configurable thresholds.
	DependenciesAggregationTypeThresholds DependenciesAggregationType = "Thresholds"
	// DependenciesAggregationTypeWorstOf - Default behavior: Worst child health state is propagated.
	DependenciesAggregationTypeWorstOf DependenciesAggregationType = "WorstOf"
)

// PossibleDependenciesAggregationTypeValues returns the possible values for the DependenciesAggregationType const type.
func PossibleDependenciesAggregationTypeValues() []DependenciesAggregationType {
	return []DependenciesAggregationType{
		DependenciesAggregationTypeThresholds,
		DependenciesAggregationTypeWorstOf,
	}
}

// DiscoveryRuleRecommendedSignalsBehavior - Discovery rule recommended signal behavior
type DiscoveryRuleRecommendedSignalsBehavior string

const (
	// DiscoveryRuleRecommendedSignalsBehaviorDisabled - Do not automatically add recommended signals
	DiscoveryRuleRecommendedSignalsBehaviorDisabled DiscoveryRuleRecommendedSignalsBehavior = "Disabled"
	// DiscoveryRuleRecommendedSignalsBehaviorEnabled - Automatically add recommended signals
	DiscoveryRuleRecommendedSignalsBehaviorEnabled DiscoveryRuleRecommendedSignalsBehavior = "Enabled"
)

// PossibleDiscoveryRuleRecommendedSignalsBehaviorValues returns the possible values for the DiscoveryRuleRecommendedSignalsBehavior const type.
func PossibleDiscoveryRuleRecommendedSignalsBehaviorValues() []DiscoveryRuleRecommendedSignalsBehavior {
	return []DiscoveryRuleRecommendedSignalsBehavior{
		DiscoveryRuleRecommendedSignalsBehaviorDisabled,
		DiscoveryRuleRecommendedSignalsBehaviorEnabled,
	}
}

// DiscoveryRuleRelationshipDiscoveryBehavior - Discovery rule relationship discovery behavior
type DiscoveryRuleRelationshipDiscoveryBehavior string

const (
	// DiscoveryRuleRelationshipDiscoveryBehaviorDisabled - Do not automatically attempt to discover relationships
	DiscoveryRuleRelationshipDiscoveryBehaviorDisabled DiscoveryRuleRelationshipDiscoveryBehavior = "Disabled"
	// DiscoveryRuleRelationshipDiscoveryBehaviorEnabled - Automatically attempt to discover relationships
	DiscoveryRuleRelationshipDiscoveryBehaviorEnabled DiscoveryRuleRelationshipDiscoveryBehavior = "Enabled"
)

// PossibleDiscoveryRuleRelationshipDiscoveryBehaviorValues returns the possible values for the DiscoveryRuleRelationshipDiscoveryBehavior const type.
func PossibleDiscoveryRuleRelationshipDiscoveryBehaviorValues() []DiscoveryRuleRelationshipDiscoveryBehavior {
	return []DiscoveryRuleRelationshipDiscoveryBehavior{
		DiscoveryRuleRelationshipDiscoveryBehaviorDisabled,
		DiscoveryRuleRelationshipDiscoveryBehaviorEnabled,
	}
}

// DynamicThresholdDirection - Threshold direction for dynamic thresholds
type DynamicThresholdDirection string

const (
	// DynamicThresholdDirectionGreaterOrLowerThan - Greater or Lower Than
	DynamicThresholdDirectionGreaterOrLowerThan DynamicThresholdDirection = "GreaterOrLowerThan"
	// DynamicThresholdDirectionGreaterThan - Greater than
	DynamicThresholdDirectionGreaterThan DynamicThresholdDirection = "GreaterThan"
	// DynamicThresholdDirectionLowerThan - Lower than
	DynamicThresholdDirectionLowerThan DynamicThresholdDirection = "LowerThan"
)

// PossibleDynamicThresholdDirectionValues returns the possible values for the DynamicThresholdDirection const type.
func PossibleDynamicThresholdDirectionValues() []DynamicThresholdDirection {
	return []DynamicThresholdDirection{
		DynamicThresholdDirectionGreaterOrLowerThan,
		DynamicThresholdDirectionGreaterThan,
		DynamicThresholdDirectionLowerThan,
	}
}

// DynamicThresholdModel - ML-based model variants
type DynamicThresholdModel string

const (
	// DynamicThresholdModelAnomalyDetection - Anomaly detection model
	DynamicThresholdModelAnomalyDetection DynamicThresholdModel = "AnomalyDetection"
)

// PossibleDynamicThresholdModelValues returns the possible values for the DynamicThresholdModel const type.
func PossibleDynamicThresholdModelValues() []DynamicThresholdModel {
	return []DynamicThresholdModel{
		DynamicThresholdModelAnomalyDetection,
	}
}

// EntityImpact - Type of impact an entity has on health state propagation
type EntityImpact string

const (
	// EntityImpactLimited - Limited impact
	EntityImpactLimited EntityImpact = "Limited"
	// EntityImpactStandard - Standard impact
	EntityImpactStandard EntityImpact = "Standard"
	// EntityImpactSuppressed - Suppressed impact
	EntityImpactSuppressed EntityImpact = "Suppressed"
)

// PossibleEntityImpactValues returns the possible values for the EntityImpact const type.
func PossibleEntityImpactValues() []EntityImpact {
	return []EntityImpact{
		EntityImpactLimited,
		EntityImpactStandard,
		EntityImpactSuppressed,
	}
}

// HealthModelProvisioningState - Health Model provisioning states
type HealthModelProvisioningState string

const (
	// HealthModelProvisioningStateCanceled - Resource creation was canceled.
	HealthModelProvisioningStateCanceled HealthModelProvisioningState = "Canceled"
	HealthModelProvisioningStateCreating HealthModelProvisioningState = "Creating"
	HealthModelProvisioningStateDeleting HealthModelProvisioningState = "Deleting"
	// HealthModelProvisioningStateFailed - Resource creation failed.
	HealthModelProvisioningStateFailed HealthModelProvisioningState = "Failed"
	// HealthModelProvisioningStateSucceeded - Resource has been created.
	HealthModelProvisioningStateSucceeded HealthModelProvisioningState = "Succeeded"
)

// PossibleHealthModelProvisioningStateValues returns the possible values for the HealthModelProvisioningState const type.
func PossibleHealthModelProvisioningStateValues() []HealthModelProvisioningState {
	return []HealthModelProvisioningState{
		HealthModelProvisioningStateCanceled,
		HealthModelProvisioningStateCreating,
		HealthModelProvisioningStateDeleting,
		HealthModelProvisioningStateFailed,
		HealthModelProvisioningStateSucceeded,
	}
}

// HealthState - Health state of an entity
type HealthState string

const (
	// HealthStateDegraded - Degraded status
	HealthStateDegraded HealthState = "Degraded"
	// HealthStateDeleted - Deleted status
	HealthStateDeleted HealthState = "Deleted"
	// HealthStateError - Error status (Unhealthy)
	HealthStateError HealthState = "Error"
	// HealthStateHealthy - Healthy status
	HealthStateHealthy HealthState = "Healthy"
	// HealthStateUnknown - Unknown status
	HealthStateUnknown HealthState = "Unknown"
)

// PossibleHealthStateValues returns the possible values for the HealthState const type.
func PossibleHealthStateValues() []HealthState {
	return []HealthState{
		HealthStateDegraded,
		HealthStateDeleted,
		HealthStateError,
		HealthStateHealthy,
		HealthStateUnknown,
	}
}

// ManagedServiceIdentityType - Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
type ManagedServiceIdentityType string

const (
	// ManagedServiceIdentityTypeNone - No managed identity.
	ManagedServiceIdentityTypeNone ManagedServiceIdentityType = "None"
	// ManagedServiceIdentityTypeSystemAssigned - System assigned managed identity.
	ManagedServiceIdentityTypeSystemAssigned ManagedServiceIdentityType = "SystemAssigned"
	// ManagedServiceIdentityTypeSystemAssignedUserAssigned - System and user assigned managed identity.
	ManagedServiceIdentityTypeSystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned,UserAssigned"
	// ManagedServiceIdentityTypeUserAssigned - User assigned managed identity.
	ManagedServiceIdentityTypeUserAssigned ManagedServiceIdentityType = "UserAssigned"
)

// PossibleManagedServiceIdentityTypeValues returns the possible values for the ManagedServiceIdentityType const type.
func PossibleManagedServiceIdentityTypeValues() []ManagedServiceIdentityType {
	return []ManagedServiceIdentityType{
		ManagedServiceIdentityTypeNone,
		ManagedServiceIdentityTypeSystemAssigned,
		ManagedServiceIdentityTypeSystemAssignedUserAssigned,
		ManagedServiceIdentityTypeUserAssigned,
	}
}

// MetricAggregationType - Metric aggregation type
type MetricAggregationType string

const (
	MetricAggregationTypeAverage MetricAggregationType = "Average"
	MetricAggregationTypeCount   MetricAggregationType = "Count"
	MetricAggregationTypeMaximum MetricAggregationType = "Maximum"
	MetricAggregationTypeMinimum MetricAggregationType = "Minimum"
	MetricAggregationTypeNone    MetricAggregationType = "None"
	MetricAggregationTypeTotal   MetricAggregationType = "Total"
)

// PossibleMetricAggregationTypeValues returns the possible values for the MetricAggregationType const type.
func PossibleMetricAggregationTypeValues() []MetricAggregationType {
	return []MetricAggregationType{
		MetricAggregationTypeAverage,
		MetricAggregationTypeCount,
		MetricAggregationTypeMaximum,
		MetricAggregationTypeMinimum,
		MetricAggregationTypeNone,
		MetricAggregationTypeTotal,
	}
}

// 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,
	}
}

// RefreshInterval - Refresh interval in ISO duration format
type RefreshInterval string

const (
	// RefreshIntervalPT10M - Ten Minutes
	RefreshIntervalPT10M RefreshInterval = "PT10M"
	// RefreshIntervalPT1H - One Hour
	RefreshIntervalPT1H RefreshInterval = "PT1H"
	// RefreshIntervalPT1M - One Minute
	RefreshIntervalPT1M RefreshInterval = "PT1M"
	// RefreshIntervalPT2H - Two Hours
	RefreshIntervalPT2H RefreshInterval = "PT2H"
	// RefreshIntervalPT30M - Thirty Minutes
	RefreshIntervalPT30M RefreshInterval = "PT30M"
	// RefreshIntervalPT5M - Five Minutes
	RefreshIntervalPT5M RefreshInterval = "PT5M"
)

// PossibleRefreshIntervalValues returns the possible values for the RefreshInterval const type.
func PossibleRefreshIntervalValues() []RefreshInterval {
	return []RefreshInterval{
		RefreshIntervalPT10M,
		RefreshIntervalPT1H,
		RefreshIntervalPT1M,
		RefreshIntervalPT2H,
		RefreshIntervalPT30M,
		RefreshIntervalPT5M,
	}
}

// SignalKind - Supported signal kinds as discriminator
type SignalKind string

const (
	SignalKindAzureResourceMetric    SignalKind = "AzureResourceMetric"
	SignalKindLogAnalyticsQuery      SignalKind = "LogAnalyticsQuery"
	SignalKindPrometheusMetricsQuery SignalKind = "PrometheusMetricsQuery"
)

// PossibleSignalKindValues returns the possible values for the SignalKind const type.
func PossibleSignalKindValues() []SignalKind {
	return []SignalKind{
		SignalKindAzureResourceMetric,
		SignalKindLogAnalyticsQuery,
		SignalKindPrometheusMetricsQuery,
	}
}

// SignalOperator - Signal operator
type SignalOperator string

const (
	// SignalOperatorEquals - Equal to
	SignalOperatorEquals SignalOperator = "Equals"
	// SignalOperatorGreaterOrEquals - Greater than or equal to
	SignalOperatorGreaterOrEquals SignalOperator = "GreaterOrEquals"
	// SignalOperatorGreaterThan - Greater than
	SignalOperatorGreaterThan SignalOperator = "GreaterThan"
	// SignalOperatorLowerOrEquals - Lower than or equal to
	SignalOperatorLowerOrEquals SignalOperator = "LowerOrEquals"
	// SignalOperatorLowerThan - Lower than
	SignalOperatorLowerThan SignalOperator = "LowerThan"
)

// PossibleSignalOperatorValues returns the possible values for the SignalOperator const type.
func PossibleSignalOperatorValues() []SignalOperator {
	return []SignalOperator{
		SignalOperatorEquals,
		SignalOperatorGreaterOrEquals,
		SignalOperatorGreaterThan,
		SignalOperatorLowerOrEquals,
		SignalOperatorLowerThan,
	}
}
