// Code generated by go-swagger; DO NOT EDIT.

package models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"

	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// AlertFilters alert filters
//
// swagger:model AlertFilters
type AlertFilters struct {

	// Displayed alerts must have an acknowledgement status that satisfies this criteria
	Acked string `json:"acked,omitempty"`

	// Displayed alerts must be routed to an escalation chain that satisfies this filter. Glob is accepted, and * and an empty string both match all escalation chains
	Chain string `json:"chain,omitempty"`

	// Displayed alerts must be active if cleared=no,  display alerts must be closed if cleared=yes, and must have cleared in the past 7 days if cleared=all
	Cleared string `json:"cleared,omitempty"`

	// Displayed alerts must be associated with datapoints that meet this filter criteria. Glob is accepted, and * and an empty string both match all datapoints
	DataPoint string `json:"dataPoint,omitempty"`

	// Displayed alerts must be associated with datasources that meet this filter criteria. Glob is accepted, and * and an empty string both indicate all datasources
	DataSource string `json:"dataSource,omitempty"`

	// Displayed alerts must be associated with groups that meet this filter criteria. Glob is accepted, and * and an empty string both indicate all groups
	Group string `json:"group,omitempty"`

	// Displayed alerts must be associated with devices that meet this filter criteria. Glob is accepted, and * and an empty string both indicate all devices
	Host string `json:"host,omitempty"`

	// Displayed alerts must be associated with instances that meet this filter criteria. Glob is accepted, and * and an empty string both match all instances
	Instance string `json:"instance,omitempty"`

	// The key word for free search
	Keyword string `json:"keyword,omitempty"`

	// Displayed alerts must match a rule that satisfies this filter. Glob is accepted, and * and an empty string both match all rules
	Rule string `json:"rule,omitempty"`

	// Displayed alerts must have an SDT status that meets this criteria
	Sdted string `json:"sdted,omitempty"`

	// Displayed alerts must have a severity that satisfies this criteria. Multiple severities are separated by commas
	Severity string `json:"severity,omitempty"`
}

// Validate validates this alert filters
func (m *AlertFilters) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this alert filters based on context it is used
func (m *AlertFilters) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *AlertFilters) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *AlertFilters) UnmarshalBinary(b []byte) error {
	var res AlertFilters
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
