// Package api provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
package api

// ApiBlockingStatus defines model for api.BlockingStatus.
type ApiBlockingStatus struct {
	// AutoEnableInSec If blocking is temporary disabled: amount of seconds until blocking will be enabled
	AutoEnableInSec *int `json:"autoEnableInSec,omitempty"`

	// DisabledGroups Disabled group names
	DisabledGroups *[]string `json:"disabledGroups,omitempty"`

	// Enabled True if blocking is enabled
	Enabled bool `json:"enabled"`
}

// ApiQueryRequest defines model for api.QueryRequest.
type ApiQueryRequest struct {
	// Query query for DNS request
	Query string `json:"query"`

	// Type request type (A, AAAA, ...)
	Type string `json:"type"`
}

// ApiQueryResult defines model for api.QueryResult.
type ApiQueryResult struct {
	// Reason blocky reason for resolution
	Reason string `json:"reason"`

	// Response actual DNS response
	Response string `json:"response"`

	// ResponseType response type (CACHED, BLOCKED, ...)
	ResponseType string `json:"responseType"`

	// ReturnCode DNS return code (NOERROR, NXDOMAIN, ...)
	ReturnCode string `json:"returnCode"`
}

// DisableBlockingParams defines parameters for DisableBlocking.
type DisableBlockingParams struct {
	// Duration duration of blocking (Example: 300s, 5m, 1h, 5m30s)
	Duration *string `form:"duration,omitempty" json:"duration,omitempty"`

	// Groups groups to disable (comma separated). If empty, disable all groups
	Groups *string `form:"groups,omitempty" json:"groups,omitempty"`
}

// QueryJSONRequestBody defines body for Query for application/json ContentType.
type QueryJSONRequestBody = ApiQueryRequest
