nuclei/v2/pkg/templates/templates.go

41 lines
1.8 KiB
Go
Raw Normal View History

package templates
import (
2020-12-29 16:33:25 +05:30
"github.com/projectdiscovery/nuclei/v2/pkg/protocols"
"github.com/projectdiscovery/nuclei/v2/pkg/protocols/dns"
2021-01-01 15:28:28 +05:30
"github.com/projectdiscovery/nuclei/v2/pkg/protocols/file"
"github.com/projectdiscovery/nuclei/v2/pkg/protocols/headless"
"github.com/projectdiscovery/nuclei/v2/pkg/protocols/http"
2020-12-30 14:54:20 +05:30
"github.com/projectdiscovery/nuclei/v2/pkg/protocols/network"
"github.com/projectdiscovery/nuclei/v2/pkg/workflows"
)
// Template is a request template parsed from a yaml file
type Template struct {
// ID is the unique id for the template
ID string `yaml:"id"`
// Info contains information about the template
Info map[string]interface{} `yaml:"info"`
// RequestsHTTP contains the http request to make in the template
2021-05-01 18:28:24 +05:30
RequestsHTTP []*http.Request `yaml:"requests,omitempty" json:"requests"`
2020-07-18 21:42:23 +02:00
// RequestsDNS contains the dns request to make in the template
2021-05-01 18:28:24 +05:30
RequestsDNS []*dns.Request `yaml:"dns,omitempty" json:"dns"`
2021-01-01 15:28:28 +05:30
// RequestsFile contains the file request to make in the template
2021-05-01 18:28:24 +05:30
RequestsFile []*file.Request `yaml:"file,omitempty" json:"file"`
2020-12-30 14:54:20 +05:30
// RequestsNetwork contains the network request to make in the template
2021-05-01 18:28:24 +05:30
RequestsNetwork []*network.Request `yaml:"network,omitempty" json:"network"`
// RequestsHeadless contains the headless request to make in the template.
2021-05-01 18:28:24 +05:30
RequestsHeadless []*headless.Request `yaml:"headless,omitempty" json:"headless"`
// Workflows is a yaml based workflow declaration code.
workflows.Workflow `yaml:",inline,omitempty"`
2021-05-01 18:28:24 +05:30
CompiledWorkflow *workflows.Workflow `yaml:"-" json:"-" jsonschema:"-"`
2020-12-30 13:26:55 +05:30
// TotalRequests is the total number of requests for the template.
2021-05-01 18:28:24 +05:30
TotalRequests int `yaml:"-" json:"-"`
// Executer is the actual template executor for running template requests
2021-05-01 18:28:24 +05:30
Executer protocols.Executer `yaml:"-" json:"-"`
2021-06-05 23:00:59 +05:30
Path string `yaml:"-" json:"-"`
2020-07-31 17:13:51 +02:00
}