// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"

type SmartDetectorAlertRule_STATUS struct {
	// Id: The resource ID.
	Id *string `json:"id,omitempty"`

	// Location: The resource location.
	Location *string `json:"location,omitempty"`

	// Name: The resource name.
	Name *string `json:"name,omitempty"`

	// Properties: The properties of the alert rule.
	Properties *AlertRuleProperties_STATUS `json:"properties,omitempty"`

	// Tags: The resource tags.
	Tags map[string]string `json:"tags,omitempty"`

	// Type: The resource type.
	Type *string `json:"type,omitempty"`
}

// The alert rule properties.
type AlertRuleProperties_STATUS struct {
	// ActionGroups: The alert rule actions.
	ActionGroups *ActionGroupsInformation_STATUS `json:"actionGroups,omitempty"`

	// Description: The alert rule description.
	Description *string `json:"description,omitempty"`

	// Detector: The alert rule's detector.
	Detector *Detector_STATUS `json:"detector,omitempty"`

	// Frequency: The alert rule frequency in ISO8601 format. The time granularity must be in minutes and minimum value is 1
	// minute, depending on the detector.
	Frequency *string `json:"frequency,omitempty"`

	// Scope: The alert rule resources scope.
	Scope []string `json:"scope,omitempty"`

	// Severity: The alert rule severity.
	Severity *AlertRuleProperties_Severity_STATUS `json:"severity,omitempty"`

	// State: The alert rule state.
	State *AlertRuleProperties_State_STATUS `json:"state,omitempty"`

	// Throttling: The alert rule throttling information.
	Throttling *ThrottlingInformation_STATUS `json:"throttling,omitempty"`
}

// The Action Groups information, used by the alert rule.
type ActionGroupsInformation_STATUS struct {
	// CustomEmailSubject: An optional custom email subject to use in email notifications.
	CustomEmailSubject *string `json:"customEmailSubject,omitempty"`

	// CustomWebhookPayload: An optional custom web-hook payload to use in web-hook notifications.
	CustomWebhookPayload *string `json:"customWebhookPayload,omitempty"`

	// GroupIds: The Action Group resource IDs.
	GroupIds []string `json:"groupIds,omitempty"`
}

type AlertRuleProperties_Severity_STATUS string

const (
	AlertRuleProperties_Severity_STATUS_Sev0 = AlertRuleProperties_Severity_STATUS("Sev0")
	AlertRuleProperties_Severity_STATUS_Sev1 = AlertRuleProperties_Severity_STATUS("Sev1")
	AlertRuleProperties_Severity_STATUS_Sev2 = AlertRuleProperties_Severity_STATUS("Sev2")
	AlertRuleProperties_Severity_STATUS_Sev3 = AlertRuleProperties_Severity_STATUS("Sev3")
	AlertRuleProperties_Severity_STATUS_Sev4 = AlertRuleProperties_Severity_STATUS("Sev4")
)

// Mapping from string to AlertRuleProperties_Severity_STATUS
var alertRuleProperties_Severity_STATUS_Values = map[string]AlertRuleProperties_Severity_STATUS{
	"sev0": AlertRuleProperties_Severity_STATUS_Sev0,
	"sev1": AlertRuleProperties_Severity_STATUS_Sev1,
	"sev2": AlertRuleProperties_Severity_STATUS_Sev2,
	"sev3": AlertRuleProperties_Severity_STATUS_Sev3,
	"sev4": AlertRuleProperties_Severity_STATUS_Sev4,
}

type AlertRuleProperties_State_STATUS string

const (
	AlertRuleProperties_State_STATUS_Disabled = AlertRuleProperties_State_STATUS("Disabled")
	AlertRuleProperties_State_STATUS_Enabled  = AlertRuleProperties_State_STATUS("Enabled")
)

// Mapping from string to AlertRuleProperties_State_STATUS
var alertRuleProperties_State_STATUS_Values = map[string]AlertRuleProperties_State_STATUS{
	"disabled": AlertRuleProperties_State_STATUS_Disabled,
	"enabled":  AlertRuleProperties_State_STATUS_Enabled,
}

// The detector information. By default this is not populated, unless it's specified in expandDetector
type Detector_STATUS struct {
	// Description: The Smart Detector description.
	Description *string `json:"description,omitempty"`

	// Id: The detector id.
	Id *string `json:"id,omitempty"`

	// ImagePaths: The Smart Detector image path. By default this is not populated, unless it's specified in expandDetector
	ImagePaths []string `json:"imagePaths,omitempty"`

	// Name: The Smart Detector name.
	Name *string `json:"name,omitempty"`

	// ParameterDefinitions: The Smart Detector parameters definitions.'
	ParameterDefinitions []DetectorParameterDefinition_STATUS `json:"parameterDefinitions,omitempty"`

	// Parameters: The detector's parameters.'
	Parameters map[string]v1.JSON `json:"parameters,omitempty"`

	// SupportedCadences: The Smart Detector supported cadences.
	SupportedCadences []int `json:"supportedCadences,omitempty"`

	// SupportedResourceTypes: The Smart Detector supported resource types.
	SupportedResourceTypes []string `json:"supportedResourceTypes,omitempty"`
}

// Optional throttling information for the alert rule.
type ThrottlingInformation_STATUS struct {
	// Duration: The required duration (in ISO8601 format) to wait before notifying on the alert rule again. The time
	// granularity must be in minutes and minimum value is 0 minutes
	Duration *string `json:"duration,omitempty"`
}

// The detector parameter definition.
type DetectorParameterDefinition_STATUS struct {
	// Description: The detector parameter description.
	Description *string `json:"description,omitempty"`

	// DisplayName: The detector parameter display name.
	DisplayName *string `json:"displayName,omitempty"`

	// IsMandatory: A value indicating whether this detector parameter is mandatory.
	IsMandatory *bool `json:"isMandatory,omitempty"`

	// Name: The detector parameter name.
	Name *string `json:"name,omitempty"`

	// Type: The detector parameter type.
	Type *DetectorParameterDefinition_Type_STATUS `json:"type,omitempty"`
}

type DetectorParameterDefinition_Type_STATUS string

const (
	DetectorParameterDefinition_Type_STATUS_Boolean  = DetectorParameterDefinition_Type_STATUS("Boolean")
	DetectorParameterDefinition_Type_STATUS_DateTime = DetectorParameterDefinition_Type_STATUS("DateTime")
	DetectorParameterDefinition_Type_STATUS_Double   = DetectorParameterDefinition_Type_STATUS("Double")
	DetectorParameterDefinition_Type_STATUS_Integer  = DetectorParameterDefinition_Type_STATUS("Integer")
	DetectorParameterDefinition_Type_STATUS_String   = DetectorParameterDefinition_Type_STATUS("String")
)

// Mapping from string to DetectorParameterDefinition_Type_STATUS
var detectorParameterDefinition_Type_STATUS_Values = map[string]DetectorParameterDefinition_Type_STATUS{
	"boolean":  DetectorParameterDefinition_Type_STATUS_Boolean,
	"datetime": DetectorParameterDefinition_Type_STATUS_DateTime,
	"double":   DetectorParameterDefinition_Type_STATUS_Double,
	"integer":  DetectorParameterDefinition_Type_STATUS_Integer,
	"string":   DetectorParameterDefinition_Type_STATUS_String,
}
