// Code generated by protoc-gen-go.
// source: config.proto
// DO NOT EDIT!

package io_prometheus

import proto "code.google.com/p/goprotobuf/proto"
import json "encoding/json"
import math "math"

// Reference proto, json, and math imports to suppress error if they are not otherwise used.
var _ = proto.Marshal
var _ = &json.SyntaxError{}
var _ = math.Inf

// A label/value pair suitable for attaching to timeseries.
type LabelPair struct {
	// The name of the label. Must adhere to the regex "[a-zA-Z_][a-zA-Z0-9_]*".
	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// The value of the label. May contain any characters.
	Value            *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *LabelPair) Reset()         { *m = LabelPair{} }
func (m *LabelPair) String() string { return proto.CompactTextString(m) }
func (*LabelPair) ProtoMessage()    {}

func (m *LabelPair) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *LabelPair) GetValue() string {
	if m != nil && m.Value != nil {
		return *m.Value
	}
	return ""
}

// A set of label/value pairs.
type LabelPairs struct {
	Label            []*LabelPair `protobuf:"bytes,1,rep,name=label" json:"label,omitempty"`
	XXX_unrecognized []byte       `json:"-"`
}

func (m *LabelPairs) Reset()         { *m = LabelPairs{} }
func (m *LabelPairs) String() string { return proto.CompactTextString(m) }
func (*LabelPairs) ProtoMessage()    {}

func (m *LabelPairs) GetLabel() []*LabelPair {
	if m != nil {
		return m.Label
	}
	return nil
}

// The global Prometheus configuration section.
type GlobalConfig struct {
	// How frequently to scrape targets by default. Must be a valid Prometheus
	// duration string in the form "[0-9]+[smhdwy]".
	ScrapeInterval *string `protobuf:"bytes,1,opt,name=scrape_interval,def=1m" json:"scrape_interval,omitempty"`
	// How frequently to evaluate rules by default. Must be a valid Prometheus
	// duration string in the form "[0-9]+[smhdwy]".
	EvaluationInterval *string `protobuf:"bytes,2,opt,name=evaluation_interval,def=1m" json:"evaluation_interval,omitempty"`
	// The labels to add to any timeseries that this Prometheus instance scrapes.
	Labels *LabelPairs `protobuf:"bytes,3,opt,name=labels" json:"labels,omitempty"`
	// The list of file names of rule files to load.
	RuleFile         []string `protobuf:"bytes,4,rep,name=rule_file" json:"rule_file,omitempty"`
	XXX_unrecognized []byte   `json:"-"`
}

func (m *GlobalConfig) Reset()         { *m = GlobalConfig{} }
func (m *GlobalConfig) String() string { return proto.CompactTextString(m) }
func (*GlobalConfig) ProtoMessage()    {}

const Default_GlobalConfig_ScrapeInterval string = "1m"
const Default_GlobalConfig_EvaluationInterval string = "1m"

func (m *GlobalConfig) GetScrapeInterval() string {
	if m != nil && m.ScrapeInterval != nil {
		return *m.ScrapeInterval
	}
	return Default_GlobalConfig_ScrapeInterval
}

func (m *GlobalConfig) GetEvaluationInterval() string {
	if m != nil && m.EvaluationInterval != nil {
		return *m.EvaluationInterval
	}
	return Default_GlobalConfig_EvaluationInterval
}

func (m *GlobalConfig) GetLabels() *LabelPairs {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *GlobalConfig) GetRuleFile() []string {
	if m != nil {
		return m.RuleFile
	}
	return nil
}

// A labeled group of targets to scrape for a job.
type TargetGroup struct {
	// The list of endpoints to scrape via HTTP.
	Target []string `protobuf:"bytes,1,rep,name=target" json:"target,omitempty"`
	// The labels to add to any timeseries scraped for this target group.
	Labels           *LabelPairs `protobuf:"bytes,2,opt,name=labels" json:"labels,omitempty"`
	XXX_unrecognized []byte      `json:"-"`
}

func (m *TargetGroup) Reset()         { *m = TargetGroup{} }
func (m *TargetGroup) String() string { return proto.CompactTextString(m) }
func (*TargetGroup) ProtoMessage()    {}

func (m *TargetGroup) GetTarget() []string {
	if m != nil {
		return m.Target
	}
	return nil
}

func (m *TargetGroup) GetLabels() *LabelPairs {
	if m != nil {
		return m.Labels
	}
	return nil
}

// The configuration for a Prometheus job to scrape.
//
// The next field no. is 8.
type JobConfig struct {
	// The job name. Must adhere to the regex "[a-zA-Z_][a-zA-Z0-9_-]*".
	Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
	// How frequently to scrape targets from this job. Overrides the global
	// default. Must be a valid Prometheus duration string in the form
	// "[0-9]+[smhdwy]".
	ScrapeInterval *string `protobuf:"bytes,2,opt,name=scrape_interval" json:"scrape_interval,omitempty"`
	// Per-target timeout when scraping this job. Must be a valid Prometheus
	// duration string in the form "[0-9]+[smhdwy]".
	ScrapeTimeout *string `protobuf:"bytes,7,opt,name=scrape_timeout,def=10s" json:"scrape_timeout,omitempty"`
	// The DNS-SD service name pointing to SRV records containing endpoint
	// information for a job. When this field is provided, no target_group
	// elements may be set.
	SdName *string `protobuf:"bytes,3,opt,name=sd_name" json:"sd_name,omitempty"`
	// Discovery refresh period when using DNS-SD to discover targets. Must be a
	// valid Prometheus duration string in the form "[0-9]+[smhdwy]".
	SdRefreshInterval *string `protobuf:"bytes,4,opt,name=sd_refresh_interval,def=30s" json:"sd_refresh_interval,omitempty"`
	// List of labeled target groups for this job. Only legal when DNS-SD isn't
	// used for a job.
	TargetGroup []*TargetGroup `protobuf:"bytes,5,rep,name=target_group" json:"target_group,omitempty"`
	// The HTTP resource path to fetch metrics from on targets.
	MetricsPath      *string `protobuf:"bytes,6,opt,name=metrics_path,def=/metrics" json:"metrics_path,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *JobConfig) Reset()         { *m = JobConfig{} }
func (m *JobConfig) String() string { return proto.CompactTextString(m) }
func (*JobConfig) ProtoMessage()    {}

const Default_JobConfig_ScrapeTimeout string = "10s"
const Default_JobConfig_SdRefreshInterval string = "30s"
const Default_JobConfig_MetricsPath string = "/metrics"

func (m *JobConfig) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *JobConfig) GetScrapeInterval() string {
	if m != nil && m.ScrapeInterval != nil {
		return *m.ScrapeInterval
	}
	return ""
}

func (m *JobConfig) GetScrapeTimeout() string {
	if m != nil && m.ScrapeTimeout != nil {
		return *m.ScrapeTimeout
	}
	return Default_JobConfig_ScrapeTimeout
}

func (m *JobConfig) GetSdName() string {
	if m != nil && m.SdName != nil {
		return *m.SdName
	}
	return ""
}

func (m *JobConfig) GetSdRefreshInterval() string {
	if m != nil && m.SdRefreshInterval != nil {
		return *m.SdRefreshInterval
	}
	return Default_JobConfig_SdRefreshInterval
}

func (m *JobConfig) GetTargetGroup() []*TargetGroup {
	if m != nil {
		return m.TargetGroup
	}
	return nil
}

func (m *JobConfig) GetMetricsPath() string {
	if m != nil && m.MetricsPath != nil {
		return *m.MetricsPath
	}
	return Default_JobConfig_MetricsPath
}

// The top-level Prometheus configuration.
type PrometheusConfig struct {
	// Global Prometheus configuration options. If omitted, an empty global
	// configuration with default values (see GlobalConfig definition) will be
	// created.
	Global *GlobalConfig `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"`
	// The list of jobs to scrape.
	Job              []*JobConfig `protobuf:"bytes,2,rep,name=job" json:"job,omitempty"`
	XXX_unrecognized []byte       `json:"-"`
}

func (m *PrometheusConfig) Reset()         { *m = PrometheusConfig{} }
func (m *PrometheusConfig) String() string { return proto.CompactTextString(m) }
func (*PrometheusConfig) ProtoMessage()    {}

func (m *PrometheusConfig) GetGlobal() *GlobalConfig {
	if m != nil {
		return m.Global
	}
	return nil
}

func (m *PrometheusConfig) GetJob() []*JobConfig {
	if m != nil {
		return m.Job
	}
	return nil
}

func init() {
}