diff --git a/.github/workflows/reusable-java.yml b/.github/workflows/reusable-java.yml
index 34b49a1fd..657d4955c 100644
--- a/.github/workflows/reusable-java.yml
+++ b/.github/workflows/reusable-java.yml
@@ -36,6 +36,11 @@ on:
type: string
default: "clean install"
description: "Maven goals to execute"
+ copy_filters_and_rules:
+ required: false
+ type: boolean
+ default: false
+ description: "Copy filters and rules folders to build context"
jobs:
build:
@@ -99,6 +104,13 @@ jobs:
username: utmstack
password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Copy filters and rules to build context
+ if: ${{ inputs.copy_filters_and_rules }}
+ run: |
+ cp -r filters ./${{ inputs.image_name }}/
+ cp -r rules ./${{ inputs.image_name }}/
+ echo "✅ Copied filters and rules to ./${{ inputs.image_name }}/"
+
- name: Build and Push the Image
uses: docker/build-push-action@v6
with:
diff --git a/.github/workflows/v11-deployment-pipeline.yml b/.github/workflows/v11-deployment-pipeline.yml
index 93cb8d925..cf15b2677 100644
--- a/.github/workflows/v11-deployment-pipeline.yml
+++ b/.github/workflows/v11-deployment-pipeline.yml
@@ -493,6 +493,7 @@ jobs:
use_tag_as_version: true
maven_profile: 'prod'
maven_goals: 'clean package'
+ copy_filters_and_rules: true
build_frontend:
name: Build Frontend Microservice
diff --git a/agent-manager/agent/agent_imp.go b/agent-manager/agent/agent_imp.go
index fafa7d97d..b3b2029aa 100644
--- a/agent-manager/agent/agent_imp.go
+++ b/agent-manager/agent/agent_imp.go
@@ -29,13 +29,20 @@ type AgentService struct {
AgentStreamMap map[uint]AgentService_AgentStreamServer
AgentStreamMutex sync.Mutex
CacheAgentKey map[uint]string
- CacheAgentKeyMutex sync.Mutex
+ CacheAgentKeyMutex sync.RWMutex
CommandResultChannel map[string]chan *CommandResult
CommandResultChannelM sync.Mutex
DBConnection *database.DB
}
+func (s *AgentService) ValidateAgentKey(key string, id uint) bool {
+ s.CacheAgentKeyMutex.RLock()
+ defer s.CacheAgentKeyMutex.RUnlock()
+ _, valid := utils.IsKeyPairValid(key, id, s.CacheAgentKey)
+ return valid
+}
+
func InitAgentService() error {
var err error
agentServOnce.Do(func() {
@@ -338,20 +345,35 @@ func (s *AgentService) ProcessCommand(stream PanelService_ProcessCommandServer)
return status.Errorf(codes.Internal, "failed to send command to agent: %v", err)
}
- result := <-s.CommandResultChannel[cmdID]
- err = s.DBConnection.Upsert(
- &models.AgentCommand{},
- "agent_id = ? AND cmd_id = ?",
- map[string]interface{}{"command_status": models.Executed, "result": result.Result},
- cmd.AgentId, cmdID,
- )
- if err != nil {
- catcher.Error("failed to update command status", err, map[string]any{"process": "agent-manager"})
- }
+ select {
+ case result := <-s.CommandResultChannel[cmdID]:
+ err = s.DBConnection.Upsert(
+ &models.AgentCommand{},
+ "agent_id = ? AND cmd_id = ?",
+ map[string]interface{}{"command_status": models.Executed, "result": result.Result},
+ cmd.AgentId, cmdID,
+ )
+ if err != nil {
+ catcher.Error("failed to update command status", err, map[string]any{"process": "agent-manager"})
+ }
- err = stream.Send(result)
- if err != nil {
- return err
+ err = stream.Send(result)
+ if err != nil {
+ return err
+ }
+ case <-time.After(5 * time.Minute):
+ s.CommandResultChannelM.Lock()
+ delete(s.CommandResultChannel, cmdID)
+ s.CommandResultChannelM.Unlock()
+
+ _ = s.DBConnection.Upsert(
+ &models.AgentCommand{},
+ "agent_id = ? AND cmd_id = ?",
+ map[string]interface{}{"command_status": models.Error, "result": "command timed out after 5 minutes"},
+ cmd.AgentId, cmdID,
+ )
+
+ return status.Errorf(codes.DeadlineExceeded, "agent did not respond within 5 minutes")
}
s.CommandResultChannelM.Lock()
diff --git a/agent-manager/agent/collector_imp.go b/agent-manager/agent/collector_imp.go
index a4b9e3ee0..133c2a857 100644
--- a/agent-manager/agent/collector_imp.go
+++ b/agent-manager/agent/collector_imp.go
@@ -43,13 +43,20 @@ type CollectorService struct {
CollectorConfigsCache map[uint][]*CollectorConfigGroup
CollectorConfigsCacheM sync.Mutex
CacheCollectorKey map[uint]string
- CacheCollectorKeyMutex sync.Mutex
+ CacheCollectorKeyMutex sync.RWMutex
CollectorPendigConfigChan chan *CollectorConfig
CollectorTypes []enum.UTMModule
DBConnection *database.DB
}
+func (s *CollectorService) ValidateCollectorKey(key string, id uint) bool {
+ s.CacheCollectorKeyMutex.RLock()
+ defer s.CacheCollectorKeyMutex.RUnlock()
+ _, valid := utils.IsKeyPairValid(key, id, s.CacheCollectorKey)
+ return valid
+}
+
func InitCollectorService() {
collectorServOnce.Do(func() {
CollectorServ = &CollectorService{
diff --git a/agent-manager/agent/interceptor.go b/agent-manager/agent/interceptor.go
index a86ccbe01..45c06db19 100644
--- a/agent-manager/agent/interceptor.go
+++ b/agent-manager/agent/interceptor.go
@@ -2,7 +2,7 @@ package agent
import (
"context"
- _ "errors"
+ "crypto/subtle"
"fmt"
"strconv"
"strings"
@@ -79,11 +79,11 @@ func authHeaders(md metadata.MD, fullMethod string) error {
typ := strings.ToLower(connectorType[0])
switch typ {
case "agent":
- if _, isValid := utils.IsKeyPairValid(key, uint(id), AgentServ.CacheAgentKey); !isValid {
+ if !AgentServ.ValidateAgentKey(key, uint(id)) {
return status.Error(codes.PermissionDenied, "invalid key")
}
case "collector":
- if _, isValid := utils.IsKeyPairValid(key, uint(id), CollectorServ.CacheCollectorKey); !isValid {
+ if !CollectorServ.ValidateCollectorKey(key, uint(id)) {
return status.Error(codes.PermissionDenied, "invalid key")
}
default:
@@ -102,7 +102,7 @@ func authHeaders(md metadata.MD, fullMethod string) error {
}
func isInternalKeyValid(token string) bool {
- return token == config.InternalKey
+ return subtle.ConstantTimeCompare([]byte(token), []byte(config.InternalKey)) == 1
}
func isInRoute(route string, list []string) bool {
diff --git a/agent-manager/agent/parser.go b/agent-manager/agent/parser.go
index 3dae283d7..01ff84345 100644
--- a/agent-manager/agent/parser.go
+++ b/agent-manager/agent/parser.go
@@ -100,7 +100,11 @@ func replaceSecretValues(input string) string {
return match
}
encryptedValue := matches[2]
- decryptedValue, _ := utils.DecryptValue(config.EncryptionKey, encryptedValue)
+ decryptedValue, err := utils.DecryptValue(config.EncryptionKey, encryptedValue)
+ if err != nil {
+ catcher.Error("failed to decrypt secret value in command", err, map[string]any{"process": "agent-manager"})
+ return match
+ }
return decryptedValue
})
}
diff --git a/agent-manager/utils/auth.go b/agent-manager/utils/auth.go
index ed552e21d..27b88d030 100644
--- a/agent-manager/utils/auth.go
+++ b/agent-manager/utils/auth.go
@@ -1,6 +1,7 @@
package utils
import (
+ "crypto/subtle"
"crypto/tls"
"net/http"
"strings"
@@ -19,10 +20,12 @@ func IsConnectionKeyValid(panelUrl string, token string) bool {
}
func IsKeyPairValid(key string, id uint, cache map[uint]string) (string, bool) {
- for agentId, agentKey := range cache {
- if key == agentKey && id == agentId {
- return agentKey, true
- }
+ agentKey, ok := cache[id]
+ if !ok {
+ return "", false
+ }
+ if subtle.ConstantTimeCompare([]byte(key), []byte(agentKey)) == 1 {
+ return agentKey, true
}
return "", false
}
diff --git a/agent-manager/utils/filter.go b/agent-manager/utils/filter.go
index dbb7f960a..60a50651f 100644
--- a/agent-manager/utils/filter.go
+++ b/agent-manager/utils/filter.go
@@ -2,6 +2,7 @@ package utils
import (
"fmt"
+ "regexp"
"strings"
"gorm.io/gorm"
@@ -24,14 +25,14 @@ type Filter struct {
Value interface{}
}
-func NewFilter(searchQuery string) []Filter {
- defer func() {
- if r := recover(); r != nil {
- // Handle the panic here
- fmt.Println("Panic occurred:", r)
- }
- }()
+// validFieldName ensures the field name only contains safe characters (letters, digits, underscores)
+var validFieldName = regexp.MustCompile(`^[a-zA-Z_][a-zA-Z0-9_]*$`)
+func IsValidFieldName(field string) bool {
+ return validFieldName.MatchString(field)
+}
+
+func NewFilter(searchQuery string) []Filter {
filters := make([]Filter, 0)
if searchQuery == "" {
return filters
@@ -42,11 +43,27 @@ func NewFilter(searchQuery string) []Filter {
}
for _, v := range query {
filter := strings.Split(v, "=")
+ if len(filter) != 2 {
+ continue
+ }
filerQuery := strings.Split(filter[0], ".")
+ if len(filerQuery) != 2 {
+ continue
+ }
+ field := filerQuery[0]
+ if !IsValidFieldName(field) {
+ fmt.Printf("Rejected invalid filter field: %s\n", field)
+ continue
+ }
+ op := resolveOperator(filerQuery[1])
+ if op == "" {
+ continue
+ }
filters = append(filters, Filter{
- Field: filerQuery[0],
- Op: resolveOperator(filerQuery[1]),
- Value: filter[1]})
+ Field: field,
+ Op: op,
+ Value: filter[1],
+ })
}
return filters
}
diff --git a/agent-manager/utils/paginator.go b/agent-manager/utils/paginator.go
index 52aed1dcb..1a25e8178 100644
--- a/agent-manager/utils/paginator.go
+++ b/agent-manager/utils/paginator.go
@@ -28,7 +28,19 @@ func NewPaginator(limit int, page int, sort string) Pagination {
if len(sort) > 0 {
srt := make([]string, 0)
for _, s := range strings.Split(sort, "&") {
- srt = append(srt, strings.Replace(s, ",", " ", 1))
+ parts := strings.SplitN(s, ",", 2)
+ field := parts[0]
+ if !IsValidFieldName(field) {
+ continue
+ }
+ direction := "asc"
+ if len(parts) == 2 {
+ d := strings.ToLower(strings.TrimSpace(parts[1]))
+ if d == "desc" {
+ direction = "desc"
+ }
+ }
+ srt = append(srt, field+" "+direction)
}
p.Sort = strings.Join(srt, ",")
}
diff --git a/agent/cmd/uninstall.go b/agent/cmd/uninstall.go
index 996ad0f49..b388be0e7 100644
--- a/agent/cmd/uninstall.go
+++ b/agent/cmd/uninstall.go
@@ -47,6 +47,15 @@ var uninstallCmd = &cobra.Command{
if err = pb.DeleteAgent(cnf); err != nil {
utils.Logger.ErrorF("error deleting agent: %v", err)
}
+
+ // Uninstall dependencies (cleanup auditd rules, etc.)
+ fmt.Print("Cleaning up dependencies... ")
+ if err = dependency.UninstallAll(); err != nil {
+ fmt.Printf("Warning: %v\n", err)
+ } else {
+ fmt.Println("[OK]")
+ }
+
if err = collector.UninstallAll(); err != nil {
fmt.Printf("error uninstalling collectors: %v\n", err)
os.Exit(1)
diff --git a/agent/collector/auditd/auditd.go b/agent/collector/auditd/auditd.go
new file mode 100644
index 000000000..9b72c2b3c
--- /dev/null
+++ b/agent/collector/auditd/auditd.go
@@ -0,0 +1,24 @@
+// Package auditd provides a native collector for Linux Audit Framework events.
+// It uses go-libaudit to receive events via netlink multicast and reassembles
+// them before sending to the log queue.
+package auditd
+
+import "time"
+
+const (
+ // auditdRestartDelay is the initial delay between reconnection attempts
+ auditdRestartDelay = 5 * time.Second
+
+ // auditdMaxRestartDelay is the maximum backoff delay for reconnection
+ auditdMaxRestartDelay = 5 * time.Minute
+
+ // reassemblerMaxInFlight is the maximum number of events held for reassembly
+ // Increased from 50 to 2048 to prevent buffer overflow under high event load
+ reassemblerMaxInFlight = 2048
+
+ // reassemblerTimeout is how long to wait for related messages before flushing
+ reassemblerTimeout = 2 * time.Second
+
+ // maintainInterval is how often to run Reassembler.Maintain() to flush stale events
+ maintainInterval = 500 * time.Millisecond
+)
diff --git a/agent/collector/auditd/auditd_linux.go b/agent/collector/auditd/auditd_linux.go
new file mode 100644
index 000000000..71b5d1d0c
--- /dev/null
+++ b/agent/collector/auditd/auditd_linux.go
@@ -0,0 +1,210 @@
+//go:build linux
+// +build linux
+
+package auditd
+
+import (
+ "context"
+ "os"
+ "sync"
+ "time"
+
+ libaudit "github.com/elastic/go-libaudit/v2"
+ "github.com/elastic/go-libaudit/v2/auparse"
+ "github.com/threatwinds/go-sdk/plugins"
+ "github.com/utmstack/UTMStack/agent/utils"
+)
+
+// AuditdCollector collects Linux Audit events via netlink multicast
+type AuditdCollector struct {
+ client auditReceiver
+ reassembler *libaudit.Reassembler
+ cancel context.CancelFunc
+ mu sync.Mutex
+}
+
+// New creates a new AuditdCollector
+func New() *AuditdCollector {
+ return &AuditdCollector{}
+}
+
+// Name returns the collector name
+func (a *AuditdCollector) Name() string {
+ return "auditd"
+}
+
+// Start begins collecting audit events and sending them to the queue
+func (a *AuditdCollector) Start(ctx context.Context, queue chan *plugins.Log) {
+ // Preflight check for audit capability
+ if err := checkAuditCapability(); err != nil {
+ utils.Logger.ErrorF("auditd: preflight check failed: %v", err)
+ return
+ }
+
+ host, err := os.Hostname()
+ if err != nil {
+ utils.Logger.ErrorF("auditd: error getting hostname: %v", err)
+ host = "unknown"
+ }
+
+ restartDelay := auditdRestartDelay
+
+ for {
+ select {
+ case <-ctx.Done():
+ utils.Logger.Info("auditd collector stopping due to context cancellation")
+ return
+ default:
+ }
+
+ exitCode := a.runAuditClient(ctx, host, queue)
+
+ if exitCode == 0 {
+ utils.Logger.Info("auditd client exited normally")
+ } else {
+ utils.Logger.ErrorF("auditd client exited with code %d, restarting in %v", exitCode, restartDelay)
+ }
+
+ select {
+ case <-ctx.Done():
+ return
+ case <-time.After(restartDelay):
+ }
+
+ // Exponential backoff
+ restartDelay *= 2
+ if restartDelay > auditdMaxRestartDelay {
+ restartDelay = auditdMaxRestartDelay
+ }
+ }
+}
+
+// runAuditClient creates the audit client and runs the receive loop
+func (a *AuditdCollector) runAuditClient(ctx context.Context, host string, queue chan *plugins.Log) int {
+ a.mu.Lock()
+ clientCtx, cancel := context.WithCancel(ctx)
+ a.cancel = cancel
+
+ // Attempt to set kernel backlog limit to prevent event loss under high load.
+ // This requires CAP_AUDIT_CONTROL; log warning if it fails but continue.
+ if err := setKernelBacklogLimit(kernelBacklogLimit); err != nil {
+ utils.Logger.ErrorF("auditd: failed to set kernel backlog limit to %d: %v (continuing with default)", kernelBacklogLimit, err)
+ } else {
+ utils.Logger.Info("auditd: kernel backlog limit set to %d", kernelBacklogLimit)
+ }
+
+ // Set backlog wait time to 0 to prevent audited processes from blocking
+ // when the audit backlog queue is full. The kernel will drop events instead.
+ // This is the "kernel" backpressure mitigation strategy from Elastic Auditbeat.
+ if err := setBacklogWaitTime(0); err != nil {
+ utils.Logger.ErrorF("auditd: failed to set backlog wait time to 0: %v (continuing)", err)
+ } else {
+ utils.Logger.Info("auditd: backlog wait time set to 0 (non-blocking mode)")
+ }
+
+ // Create multicast audit client
+ client, err := newAuditClient()
+ if err != nil {
+ a.mu.Unlock()
+ utils.Logger.ErrorF("auditd: error creating audit client: %v", err)
+ return -1
+ }
+ a.client = client
+
+ // Create event stream for reassembled events
+ stream := newEventStream(queue, host)
+
+ // Create reassembler
+ reassembler, err := libaudit.NewReassembler(reassemblerMaxInFlight, reassemblerTimeout, stream)
+ if err != nil {
+ client.Close()
+ a.mu.Unlock()
+ utils.Logger.ErrorF("auditd: error creating reassembler: %v", err)
+ return -1
+ }
+ a.reassembler = reassembler
+ a.mu.Unlock()
+
+ utils.Logger.Info("auditd collector started (netlink multicast)")
+
+ // Start maintenance goroutine for reassembler
+ go a.runMaintenance(clientCtx)
+
+ // Main receive loop
+ for {
+ select {
+ case <-clientCtx.Done():
+ a.cleanup()
+ return 0
+ default:
+ }
+
+ // Receive with non-blocking to allow checking context
+ msg, err := client.Receive(false)
+ if err != nil {
+ utils.Logger.ErrorF("auditd: error receiving message: %v", err)
+ a.cleanup()
+ return -1
+ }
+
+ if msg == nil {
+ // No message available, brief sleep to avoid busy loop
+ time.Sleep(10 * time.Millisecond)
+ continue
+ }
+
+ // Parse message type from raw data
+ msgType := auparse.AuditMessageType(msg.Type)
+
+ // Push to reassembler for event grouping
+ if err := reassembler.Push(msgType, msg.Data); err != nil {
+ utils.Logger.ErrorF("auditd: error pushing to reassembler: %v", err)
+ }
+ }
+}
+
+// runMaintenance periodically calls Maintain() to flush stale events
+func (a *AuditdCollector) runMaintenance(ctx context.Context) {
+ ticker := time.NewTicker(maintainInterval)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ a.mu.Lock()
+ if a.reassembler != nil {
+ if err := a.reassembler.Maintain(); err != nil {
+ utils.Logger.ErrorF("auditd: error in reassembler maintenance: %v", err)
+ }
+ }
+ a.mu.Unlock()
+ }
+ }
+}
+
+// cleanup closes the client and reassembler
+func (a *AuditdCollector) cleanup() {
+ a.mu.Lock()
+ defer a.mu.Unlock()
+
+ if a.reassembler != nil {
+ a.reassembler.Close()
+ a.reassembler = nil
+ }
+ if a.client != nil {
+ a.client.Close()
+ a.client = nil
+ }
+}
+
+// Stop stops the collector
+func (a *AuditdCollector) Stop() {
+ a.mu.Lock()
+ defer a.mu.Unlock()
+
+ if a.cancel != nil {
+ a.cancel()
+ }
+}
diff --git a/agent/collector/auditd/auditd_other.go b/agent/collector/auditd/auditd_other.go
new file mode 100644
index 000000000..91ab06dcc
--- /dev/null
+++ b/agent/collector/auditd/auditd_other.go
@@ -0,0 +1,32 @@
+//go:build !linux
+// +build !linux
+
+package auditd
+
+import (
+ "context"
+
+ "github.com/threatwinds/go-sdk/plugins"
+ "github.com/utmstack/UTMStack/agent/utils"
+)
+
+// AuditdCollector is a no-op stub for non-Linux platforms
+type AuditdCollector struct{}
+
+// New creates a new AuditdCollector (no-op on non-Linux)
+func New() *AuditdCollector {
+ return &AuditdCollector{}
+}
+
+// Name returns the collector name
+func (a *AuditdCollector) Name() string {
+ return "auditd"
+}
+
+// Start is a no-op on non-Linux platforms
+func (a *AuditdCollector) Start(ctx context.Context, queue chan *plugins.Log) {
+ utils.Logger.Info("auditd collector not supported on this platform, skipping")
+}
+
+// Stop is a no-op on non-Linux platforms
+func (a *AuditdCollector) Stop() {}
diff --git a/agent/collector/auditd/capabilities.go b/agent/collector/auditd/capabilities.go
new file mode 100644
index 000000000..928a9e7c7
--- /dev/null
+++ b/agent/collector/auditd/capabilities.go
@@ -0,0 +1,40 @@
+//go:build linux
+// +build linux
+
+package auditd
+
+import (
+ "os/exec"
+ "strings"
+
+ "github.com/utmstack/UTMStack/agent/utils"
+)
+
+// checkAuditCapability checks if the audit system is available and enabled.
+// Uses auditctl -s to verify audit status since /proc/sys/kernel/auditing
+// doesn't exist on all kernel versions.
+func checkAuditCapability() error {
+ // Check if auditctl exists
+ auditctlPath, err := exec.LookPath("auditctl")
+ if err != nil {
+ utils.Logger.ErrorF("auditd: auditctl not found in PATH: %v", err)
+ return err
+ }
+
+ // Run auditctl -s to check audit status
+ cmd := exec.Command(auditctlPath, "-s")
+ output, err := cmd.Output()
+ if err != nil {
+ utils.Logger.ErrorF("auditd: failed to run auditctl -s: %v", err)
+ return err
+ }
+
+ // Check if enabled=1 in output
+ if !strings.Contains(string(output), "enabled 1") && !strings.Contains(string(output), "enabled=1") {
+ utils.Logger.Info("auditd: kernel auditing is disabled (enabled != 1), collector will not start")
+ return nil
+ }
+
+ utils.Logger.Info("auditd: audit system is enabled and ready")
+ return nil
+}
diff --git a/agent/collector/auditd/client.go b/agent/collector/auditd/client.go
new file mode 100644
index 000000000..0b734364f
--- /dev/null
+++ b/agent/collector/auditd/client.go
@@ -0,0 +1,73 @@
+//go:build linux
+// +build linux
+
+package auditd
+
+import (
+ libaudit "github.com/elastic/go-libaudit/v2"
+)
+
+const (
+ // kernelBacklogLimit is the audit backlog limit to set in the kernel.
+ // Higher values prevent event loss under high load.
+ kernelBacklogLimit uint32 = 8192
+)
+
+// auditReceiver interface wraps the go-libaudit client for testability
+type auditReceiver interface {
+ Receive(nonBlocking bool) (*libaudit.RawAuditMessage, error)
+ Close() error
+}
+
+// auditClientWrapper wraps the go-libaudit AuditClient to implement auditReceiver
+type auditClientWrapper struct {
+ client *libaudit.AuditClient
+}
+
+// Receive receives a raw audit message from the netlink socket
+func (w *auditClientWrapper) Receive(nonBlocking bool) (*libaudit.RawAuditMessage, error) {
+ return w.client.Receive(nonBlocking)
+}
+
+// Close closes the underlying audit client
+func (w *auditClientWrapper) Close() error {
+ return w.client.Close()
+}
+
+// newAuditClient creates a new multicast audit client wrapped in the auditReceiver interface
+func newAuditClient() (auditReceiver, error) {
+ client, err := libaudit.NewMulticastAuditClient(nil)
+ if err != nil {
+ return nil, err
+ }
+ return &auditClientWrapper{client: client}, nil
+}
+
+// setKernelBacklogLimit sets the kernel audit backlog limit using a separate
+// control client. This requires root/CAP_AUDIT_CONTROL privileges.
+// The multicast client cannot set kernel parameters, so we create a temporary
+// unicast client specifically for this configuration.
+func setKernelBacklogLimit(limit uint32) error {
+ controlClient, err := libaudit.NewAuditClient(nil)
+ if err != nil {
+ return err
+ }
+ defer controlClient.Close()
+
+ return controlClient.SetBacklogLimit(limit, libaudit.WaitForReply)
+}
+
+// setBacklogWaitTime configures the kernel to not block processes when the
+// audit backlog queue is full. With waitTime=0, the kernel will drop events
+// instead of stalling audited processes. This is the "kernel" backpressure
+// mitigation strategy used by Elastic Auditbeat.
+// Requires CAP_AUDIT_CONTROL and kernel 3.14+.
+func setBacklogWaitTime(waitTime int32) error {
+ controlClient, err := libaudit.NewAuditClient(nil)
+ if err != nil {
+ return err
+ }
+ defer controlClient.Close()
+
+ return controlClient.SetBacklogWaitTime(waitTime, libaudit.WaitForReply)
+}
diff --git a/agent/collector/auditd/parser.go b/agent/collector/auditd/parser.go
new file mode 100644
index 000000000..ed6c0128e
--- /dev/null
+++ b/agent/collector/auditd/parser.go
@@ -0,0 +1,180 @@
+//go:build linux
+// +build linux
+
+package auditd
+
+import (
+ "encoding/json"
+ "strings"
+ "time"
+
+ "github.com/elastic/go-libaudit/v2/auparse"
+)
+
+// formatAuditEvent converts reassembled audit messages to a FLAT JSON format.
+// This ensures ZERO DATA LOSS - every field from every record appears in output.
+//
+// Flattening rules:
+// - SYSCALL: all fields merged directly to root
+// - CWD: extracts "cwd" field to root
+// - PROCTITLE: extracts "proctitle" field to root
+// - EXECVE: all fields in "execve" object (avoids a0-aN collision with SYSCALL)
+// - PATH: all records collected in "paths" array
+// - SOCKADDR: all fields in "sockaddr" object
+// - Any other record type: all fields in "{lowercase_type}" object (fallback)
+func formatAuditEvent(msgs []*auparse.AuditMessage) (string, error) {
+ if len(msgs) == 0 {
+ return "", nil
+ }
+
+ // Get timestamp and sequence from first message
+ firstMsg := msgs[0]
+
+ // Initialize the flat event structure using map for flexibility
+ event := make(map[string]interface{})
+ event["@timestamp"] = firstMsg.Timestamp.Format(time.RFC3339Nano)
+ event["type"] = "auditd"
+ event["sequence"] = firstMsg.Sequence
+
+ // Determine category (SYSCALL takes priority, otherwise first record type)
+ var category string
+
+ // Collect PATH records for the "paths" array
+ var paths []map[string]interface{}
+
+ // Process each message according to flattening rules
+ for _, msg := range msgs {
+ recordType := msg.RecordType
+ recordTypeName := recordType.String()
+
+ // Set category: SYSCALL takes priority, otherwise use first record type
+ if category == "" {
+ category = recordTypeName
+ }
+ if recordType == auparse.AUDIT_SYSCALL {
+ category = "SYSCALL"
+ }
+
+ // Extract data from message - ZERO DATA LOSS requirement
+ data, err := msg.Data()
+ if err != nil {
+ // Even on error, try to continue with empty data
+ data = make(map[string]string)
+ }
+
+ // Apply flattening rules based on record type
+ switch recordType {
+ case auparse.AUDIT_SYSCALL:
+ // SYSCALL: merge ALL fields directly to root
+ mergeSyscallToRoot(event, data)
+
+ case auparse.AUDIT_CWD:
+ // CWD: extract "cwd" field to root
+ if cwd, ok := data["cwd"]; ok {
+ event["cwd"] = cwd
+ }
+ // Also include any other fields from CWD record (ZERO DATA LOSS)
+ for k, v := range data {
+ if k != "cwd" {
+ // Prefix with "cwd_" to avoid collisions
+ event["cwd_"+k] = v
+ }
+ }
+
+ case auparse.AUDIT_PROCTITLE:
+ // PROCTITLE: extract "proctitle" field to root
+ if proctitle, ok := data["proctitle"]; ok {
+ event["proctitle"] = proctitle
+ }
+ // Also include any other fields (ZERO DATA LOSS)
+ for k, v := range data {
+ if k != "proctitle" {
+ event["proctitle_"+k] = v
+ }
+ }
+
+ case auparse.AUDIT_EXECVE:
+ // EXECVE: all fields go into "execve" object to avoid a0-aN collision
+ execveObj := make(map[string]interface{})
+ for k, v := range data {
+ execveObj[k] = v
+ }
+ event["execve"] = execveObj
+
+ case auparse.AUDIT_PATH:
+ // PATH: collect all records into "paths" array
+ pathRecord := make(map[string]interface{})
+ for k, v := range data {
+ pathRecord[k] = v
+ }
+ paths = append(paths, pathRecord)
+
+ case auparse.AUDIT_SOCKADDR:
+ // SOCKADDR: all fields in "sockaddr" object
+ sockaddrObj := make(map[string]interface{})
+ for k, v := range data {
+ sockaddrObj[k] = v
+ }
+ event["sockaddr"] = sockaddrObj
+
+ default:
+ // FALLBACK: any other record type goes into "{lowercase_type}" object
+ // This ensures ZERO DATA LOSS for unknown/future record types
+ fallbackKey := strings.ToLower(recordTypeName)
+ // Handle special characters in record type names
+ fallbackKey = strings.ReplaceAll(fallbackKey, "_", "")
+
+ // Check if we already have this type (could be multiple records of same type)
+ if existing, ok := event[fallbackKey]; ok {
+ // Already exists - convert to array if not already
+ switch v := existing.(type) {
+ case []map[string]interface{}:
+ // Already an array, append
+ record := make(map[string]interface{})
+ for k, val := range data {
+ record[k] = val
+ }
+ event[fallbackKey] = append(v, record)
+ case map[string]interface{}:
+ // Convert to array
+ record := make(map[string]interface{})
+ for k, val := range data {
+ record[k] = val
+ }
+ event[fallbackKey] = []map[string]interface{}{v, record}
+ }
+ } else {
+ // First occurrence - create object
+ fallbackObj := make(map[string]interface{})
+ for k, v := range data {
+ fallbackObj[k] = v
+ }
+ event[fallbackKey] = fallbackObj
+ }
+ }
+ }
+
+ // Add category to event
+ event["category"] = category
+
+ // Add paths array if we collected any PATH records
+ if len(paths) > 0 {
+ event["paths"] = paths
+ }
+
+ // Marshal to JSON - deterministic output with sorted keys
+ jsonBytes, err := json.Marshal(event)
+ if err != nil {
+ return "", err
+ }
+
+ return string(jsonBytes), nil
+}
+
+// mergeSyscallToRoot merges all SYSCALL fields directly to the event root.
+// This is the primary record type and its fields become top-level.
+func mergeSyscallToRoot(event map[string]interface{}, data map[string]string) {
+ for k, v := range data {
+ event[k] = v
+ }
+}
diff --git a/agent/collector/auditd/stream.go b/agent/collector/auditd/stream.go
new file mode 100644
index 000000000..33ba3bf58
--- /dev/null
+++ b/agent/collector/auditd/stream.go
@@ -0,0 +1,74 @@
+//go:build linux
+// +build linux
+
+package auditd
+
+import (
+ "github.com/elastic/go-libaudit/v2/auparse"
+ "github.com/threatwinds/go-sdk/plugins"
+ "github.com/utmstack/UTMStack/agent/config"
+ "github.com/utmstack/UTMStack/agent/utils"
+)
+
+const (
+ // eventsLostThreshold - only log when this many events are lost at once.
+ // Small losses (1-10) are normal under high load and not worth logging.
+ eventsLostThreshold = 50
+
+ // eventsLostMaxReasonable is the maximum "reasonable" number of lost events.
+ eventsLostMaxReasonable = 1000000
+)
+
+// eventStream implements libaudit.Stream interface for reassembled events
+type eventStream struct {
+ queue chan *plugins.Log
+ hostname string
+}
+
+// newEventStream creates a new eventStream
+func newEventStream(queue chan *plugins.Log, hostname string) *eventStream {
+ return &eventStream{
+ queue: queue,
+ hostname: hostname,
+ }
+}
+
+// ReassemblyComplete is called when a complete group of events has been received.
+// Uses non-blocking send to prevent backpressure from propagating to the kernel.
+// If the queue is full, events are dropped rather than blocking.
+func (s *eventStream) ReassemblyComplete(msgs []*auparse.AuditMessage) {
+ if len(msgs) == 0 {
+ return
+ }
+
+ jsonOutput, err := formatAuditEvent(msgs)
+ if err != nil {
+ utils.Logger.ErrorF("auditd: error formatting event: %v", err)
+ return
+ }
+
+ log := &plugins.Log{
+ DataType: string(config.DataTypeLinuxAgent),
+ DataSource: s.hostname,
+ Raw: jsonOutput,
+ }
+
+ // Non-blocking send: drop events if queue is full to prevent backpressure
+ select {
+ case s.queue <- log:
+ // Event sent successfully
+ default:
+ // Queue is full - drop event to prevent backpressure to kernel
+ utils.Logger.ErrorF("auditd: queue full, dropping event (sequence=%d)", msgs[0].Sequence)
+ }
+}
+
+// EventsLost is called when events were lost due to buffer overflow or rate limiting.
+// We filter these out by checking against a reasonable maximum.
+func (s *eventStream) EventsLost(count int) {
+ // Filter out unreasonable values caused by sequence number rollover bug
+ if count < eventsLostThreshold || count > eventsLostMaxReasonable {
+ return
+ }
+ utils.Logger.ErrorF("auditd: %d events lost due to buffer overflow or rate limiting", count)
+}
diff --git a/agent/collector/platform/linux_amd64.go b/agent/collector/platform/linux_amd64.go
index 673319dce..5baf1b070 100644
--- a/agent/collector/platform/linux_amd64.go
+++ b/agent/collector/platform/linux_amd64.go
@@ -13,6 +13,7 @@ import (
"github.com/threatwinds/go-sdk/entities"
"github.com/threatwinds/go-sdk/plugins"
+ "github.com/utmstack/UTMStack/agent/collector/auditd"
"github.com/utmstack/UTMStack/agent/config"
"github.com/utmstack/UTMStack/agent/utils"
)
@@ -157,6 +158,6 @@ func (l *LinuxSystem) Stop() {
func GetCollectors() []Collector {
return []Collector{
&LinuxSystem{},
- // Filebeat{}, // TODO: remove after testing native collector
+ auditd.New(),
}
}
diff --git a/agent/collector/platform/linux_arm64.go b/agent/collector/platform/linux_arm64.go
index 1d8e43926..0d5d47784 100644
--- a/agent/collector/platform/linux_arm64.go
+++ b/agent/collector/platform/linux_arm64.go
@@ -13,6 +13,7 @@ import (
"github.com/threatwinds/go-sdk/entities"
"github.com/threatwinds/go-sdk/plugins"
+ "github.com/utmstack/UTMStack/agent/collector/auditd"
"github.com/utmstack/UTMStack/agent/config"
"github.com/utmstack/UTMStack/agent/utils"
)
@@ -157,5 +158,6 @@ func (l *LinuxSystemArm64) Stop() {
func GetCollectors() []Collector {
return []Collector{
&LinuxSystemArm64{},
+ auditd.New(),
}
}
diff --git a/agent/collector/platform/windows_amd64.go b/agent/collector/platform/windows_amd64.go
index 5d3a9b61c..0a356788a 100644
--- a/agent/collector/platform/windows_amd64.go
+++ b/agent/collector/platform/windows_amd64.go
@@ -247,7 +247,6 @@ var windowsCollector = &Windows{
func GetCollectors() []Collector {
return []Collector{
windowsCollector,
- // Filebeat{}, // TODO: remove after testing native collector
}
}
diff --git a/agent/dependency/auditd_linux.go b/agent/dependency/auditd_linux.go
new file mode 100644
index 000000000..049137dcb
--- /dev/null
+++ b/agent/dependency/auditd_linux.go
@@ -0,0 +1,448 @@
+//go:build linux
+// +build linux
+
+package dependency
+
+import (
+ "fmt"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strings"
+
+ "github.com/utmstack/UTMStack/agent/utils"
+ sharedExec "github.com/utmstack/UTMStack/shared/exec"
+ "github.com/utmstack/UTMStack/shared/fs"
+)
+
+// AuditdVersion is the UTMStack audit rules version.
+// Bump this when audit rules are updated to trigger rule redeployment.
+const AuditdVersion = "1.0.0"
+
+// auditRulesContent contains the UTMStack security audit rules.
+// These rules are deployed to /etc/audit/rules.d/50-utmstack.rules
+// NOTE: This is an ADDITIVE configuration - does not delete existing rules
+// or modify global settings (-D, -b, -f) to coexist with enterprise policies.
+const auditRulesContent = `## UTMStack SIEM Audit Rules
+## Managed by UTMStack Agent - Do not edit manually
+## Additive rules - does not delete existing configuration
+
+# Monitor executed commands (critical for SIEM)
+# Filter: auid>=1000 (real users only), auid!=4294967295 (valid audit UID, excludes system processes)
+-a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=4294967295 -k utmstack_exec
+-a always,exit -F arch=b32 -S execve -F auid>=1000 -F auid!=4294967295 -k utmstack_exec
+
+# Privilege escalation
+-a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid,setresuid,setresgid -F auid>=1000 -k utmstack_priv
+-a always,exit -F arch=b32 -S setuid,setgid,setreuid,setregid,setresuid,setresgid -F auid>=1000 -k utmstack_priv
+
+# Sensitive file access (Identity)
+-w /etc/shadow -p wa -k utmstack_sensitive
+-w /etc/passwd -p wa -k utmstack_sensitive
+-w /etc/group -p wa -k utmstack_sensitive
+-w /etc/gshadow -p wa -k utmstack_sensitive
+
+# Sensitive file access (SSH & Sudo)
+-w /etc/sudoers -p wa -k utmstack_sensitive
+-w /etc/sudoers.d -p wa -k utmstack_sensitive
+-w /etc/ssh/sshd_config -p wa -k utmstack_sensitive
+-w /root/.ssh -p rwa -k utmstack_sensitive
+
+# Log Tampering
+-w /var/log/wtmp -p wa -k utmstack_log_tampering
+-w /var/log/btmp -p wa -k utmstack_log_tampering
+-w /var/log/lastlog -p wa -k utmstack_log_tampering
+
+# Module loading
+-a always,exit -F arch=b64 -S init_module,finit_module,delete_module -k utmstack_modules
+-a always,exit -F arch=b32 -S init_module,finit_module,delete_module -k utmstack_modules
+
+# Network connections (may be high volume - consider enabling selectively)
+# -a always,exit -F arch=b64 -S connect -F auid>=1000 -k utmstack_network
+
+# Time changes
+-a always,exit -F arch=b64 -S adjtimex,settimeofday,clock_settime -k utmstack_time
+-a always,exit -F arch=b32 -S adjtimex,settimeofday,clock_settime -k utmstack_time
+-w /etc/localtime -p wa -k utmstack_time
+
+# Audit configuration changes
+-w /etc/audit -p wa -k utmstack_audit_config
+-w /etc/audisp -p wa -k utmstack_audit_config
+`
+
+const (
+ auditRulesPath = "/etc/audit/rules.d/50-utmstack.rules"
+)
+
+// configureAuditd is called by dependency.Reconcile on first install.
+// It orchestrates the full auditd setup: root check → container check → distro detect → install → rules → service
+func configureAuditd() error {
+ // Check if running as root
+ if !isRoot() {
+ utils.Logger.Info("auditd setup skipped: root privileges required")
+ return nil
+ }
+
+ // Check if running in a container
+ if isContainer() {
+ utils.Logger.Info("auditd setup skipped: container environment detected")
+ return nil
+ }
+
+ // Detect distribution
+ distro := DetectDistro()
+ if distro.PackageManager == "" {
+ utils.Logger.Info("auditd setup skipped: unknown distribution, no package manager detected")
+ return nil
+ }
+
+ utils.Logger.Info("Detected distro: ID=%s, IDLike=%s, PackageManager=%s", distro.ID, distro.IDLike, distro.PackageManager)
+
+ // Install auditd if not already installed
+ if !isAuditdInstalled() {
+ utils.Logger.Info("Installing auditd package...")
+ if err := installAuditd(distro); err != nil {
+ utils.Logger.ErrorF("Failed to install auditd: %v", err)
+ return nil // Non-critical, don't fail the agent
+ }
+ utils.Logger.Info("auditd package installed successfully")
+ } else {
+ utils.Logger.Info("auditd is already installed")
+ }
+
+ // Pre-flight check: can we modify audit configuration?
+ if canConfigure, reason := canConfigureAuditd(); !canConfigure {
+ utils.Logger.Info("auditd rule deployment skipped: %s", reason)
+ return nil // Non-critical, don't fail the agent
+ }
+
+ // Deploy audit rules
+ utils.Logger.Info("Deploying UTMStack audit rules...")
+ if err := deployRules(); err != nil {
+ utils.Logger.ErrorF("Failed to deploy audit rules: %v", err)
+ return nil // Non-critical, don't fail the agent
+ }
+ utils.Logger.Info("UTMStack audit rules deployed successfully")
+
+ // Start and enable auditd service
+ utils.Logger.Info("Starting auditd service...")
+ if err := startAuditd(); err != nil {
+ utils.Logger.ErrorF("Failed to start auditd service: %v", err)
+ return nil // Non-critical, don't fail the agent
+ }
+ utils.Logger.Info("auditd service started and enabled")
+
+ // Reload rules
+ utils.Logger.Info("Reloading audit rules...")
+ if err := reloadRules(); err != nil {
+ utils.Logger.ErrorF("Failed to reload audit rules: %v", err)
+ return nil // Non-critical, don't fail the agent
+ }
+ utils.Logger.Info("Audit rules reloaded successfully")
+
+ return nil
+}
+
+// updateAuditdRules is called when AuditdVersion changes.
+// It redeploys rules without reinstalling the package.
+func updateAuditdRules() error {
+ // Check if running as root
+ if !isRoot() {
+ utils.Logger.Info("auditd rule update skipped: root privileges required")
+ return nil
+ }
+
+ // Check if running in a container
+ if isContainer() {
+ utils.Logger.Info("auditd rule update skipped: container environment detected")
+ return nil
+ }
+
+ // Pre-flight check: can we modify audit configuration?
+ if canConfigure, reason := canConfigureAuditd(); !canConfigure {
+ utils.Logger.Info("auditd rule update skipped: %s", reason)
+ return nil // Non-critical, don't fail the agent
+ }
+
+ // Deploy updated rules
+ utils.Logger.Info("Updating UTMStack audit rules...")
+ if err := deployRules(); err != nil {
+ utils.Logger.ErrorF("Failed to deploy audit rules: %v", err)
+ return nil
+ }
+
+ // Reload rules
+ if err := reloadRules(); err != nil {
+ utils.Logger.ErrorF("Failed to reload audit rules: %v", err)
+ return nil
+ }
+
+ utils.Logger.Info("UTMStack audit rules updated successfully")
+ return nil
+}
+
+// isRoot checks if the current process is running as root.
+func isRoot() bool {
+ return os.Geteuid() == 0
+}
+
+// isContainer checks if the process is running inside a container.
+// Checks for Docker, Podman, LXC, and other container runtimes.
+func isContainer() bool {
+ // Check for Docker/Podman environment files
+ containerFiles := []string{
+ "/.dockerenv",
+ "/run/.containerenv",
+ }
+ for _, f := range containerFiles {
+ if fs.Exists(f) {
+ return true
+ }
+ }
+
+ // Check cgroup for container patterns
+ cgroupPath := "/proc/1/cgroup"
+ if content, err := os.ReadFile(cgroupPath); err == nil {
+ cgroupStr := string(content)
+ containerPatterns := []string{"docker", "kubepods", "lxc", "containerd"}
+ for _, pattern := range containerPatterns {
+ if strings.Contains(cgroupStr, pattern) {
+ return true
+ }
+ }
+ }
+
+ return false
+}
+
+// canConfigureAuditd performs pre-flight checks to determine if audit rules can be modified.
+// Returns (true, "") if configuration is possible, (false, "reason") if not.
+// This checks for:
+// - Immutable mode (-e 2): audit config is locked until reboot
+// - never,task rule: auditing is disabled system-wide
+func canConfigureAuditd() (bool, string) {
+ // Check if auditctl is available
+ auditctlPath, err := exec.LookPath("auditctl")
+ if err != nil {
+ // auditctl not found - this is OK, we'll install auditd first
+ return true, ""
+ }
+
+ // Check for immutable mode (-e 2)
+ // auditctl -s returns status including "enabled X" where X is 0, 1, or 2
+ statusCmd := exec.Command(auditctlPath, "-s")
+ statusOutput, err := statusCmd.Output()
+ if err == nil {
+ statusStr := string(statusOutput)
+ if strings.Contains(statusStr, "enabled 2") {
+ return false, "audit config is locked (immutable mode -e 2), reboot required to modify"
+ }
+ }
+
+ // Check for never,task rule (auditing disabled)
+ // auditctl -l lists all loaded rules
+ rulesCmd := exec.Command(auditctlPath, "-l")
+ rulesOutput, err := rulesCmd.Output()
+ if err == nil {
+ rulesStr := string(rulesOutput)
+ if strings.Contains(rulesStr, "never,task") {
+ return false, "auditing is disabled by never,task rule"
+ }
+ }
+
+ return true, ""
+}
+
+// isAuditdInstalled checks if auditd tools are installed.
+func isAuditdInstalled() bool {
+ // Check common paths for auditctl
+ paths := []string{
+ "/sbin/auditctl",
+ "/usr/sbin/auditctl",
+ "/usr/bin/auditctl",
+ }
+ for _, p := range paths {
+ if fs.Exists(p) {
+ return true
+ }
+ }
+
+ // Also try exec.LookPath as fallback
+ if _, err := exec.LookPath("auditctl"); err == nil {
+ return true
+ }
+
+ return false
+}
+
+// isAuditdRunning checks if the auditd service is currently running.
+func isAuditdRunning() bool {
+ // Try systemctl first
+ if _, err := exec.LookPath("systemctl"); err == nil {
+ cmd := exec.Command("systemctl", "is-active", "--quiet", "auditd")
+ if err := cmd.Run(); err == nil {
+ return true
+ }
+ }
+
+ // Fallback: check if auditd process exists
+ if content, err := os.ReadFile("/proc/1/comm"); err == nil {
+ if strings.TrimSpace(string(content)) == "auditd" {
+ return true
+ }
+ }
+
+ // Check /var/run/auditd.pid
+ if fs.Exists("/var/run/auditd.pid") {
+ return true
+ }
+
+ return false
+}
+
+// installAuditd installs the auditd package using the appropriate package manager.
+func installAuditd(distro *DistroInfo) error {
+ var cmd *exec.Cmd
+
+ switch distro.PackageManager {
+ case "apt":
+ // Debian/Ubuntu: auditd + audispd-plugins
+ cmd = exec.Command("apt-get", "install", "-y", "auditd", "audispd-plugins")
+ // Set DEBIAN_FRONTEND to avoid prompts
+ cmd.Env = append(os.Environ(), "DEBIAN_FRONTEND=noninteractive")
+
+ case "dnf":
+ // Fedora, RHEL 8+, Rocky, Alma
+ cmd = exec.Command("dnf", "install", "-y", "audit")
+
+ case "yum":
+ // RHEL 7, CentOS 7, Amazon Linux
+ cmd = exec.Command("yum", "install", "-y", "audit")
+
+ case "zypper":
+ // SUSE, openSUSE
+ cmd = exec.Command("zypper", "install", "-y", "audit")
+
+ case "pacman":
+ // Arch, Manjaro
+ cmd = exec.Command("pacman", "-S", "--noconfirm", "audit")
+
+ default:
+ return fmt.Errorf("unsupported package manager: %s", distro.PackageManager)
+ }
+
+ output, err := cmd.CombinedOutput()
+ if err != nil {
+ return fmt.Errorf("package installation failed: %v, output: %s", err, string(output))
+ }
+
+ return nil
+}
+
+// startAuditd enables and starts the auditd service.
+func startAuditd() error {
+ // Try systemctl first (most common on modern systems)
+ if _, err := exec.LookPath("systemctl"); err == nil {
+ // Enable the service
+ if err := sharedExec.Run("systemctl", "/", "enable", "auditd"); err != nil {
+ utils.Logger.LogF(400, "Failed to enable auditd service: %v", err)
+ // Continue anyway, try to start
+ }
+
+ // Start the service
+ if err := sharedExec.Run("systemctl", "/", "start", "auditd"); err != nil {
+ // auditd might already be running, which is fine
+ if !isAuditdRunning() {
+ return fmt.Errorf("failed to start auditd service: %v", err)
+ }
+ }
+ return nil
+ }
+
+ // Fallback to service command
+ if _, err := exec.LookPath("service"); err == nil {
+ if err := sharedExec.Run("service", "/", "auditd", "start"); err != nil {
+ if !isAuditdRunning() {
+ return fmt.Errorf("failed to start auditd service: %v", err)
+ }
+ }
+ return nil
+ }
+
+ return fmt.Errorf("no service manager found (systemctl or service)")
+}
+
+// deployRules writes the UTMStack audit rules to the rules.d directory.
+func deployRules() error {
+ // Ensure the rules.d directory exists
+ rulesDir := filepath.Dir(auditRulesPath)
+ if err := fs.CreateDirIfNotExist(rulesDir); err != nil {
+ return fmt.Errorf("failed to create rules directory: %v", err)
+ }
+
+ // Write the rules file
+ if err := fs.WriteString(auditRulesPath, auditRulesContent); err != nil {
+ return fmt.Errorf("failed to write rules file: %v", err)
+ }
+
+ return nil
+}
+
+// cleanupAuditd removes UTMStack audit rules on agent uninstall.
+// It removes the rules file and reloads auditd to clear the rules from kernel.
+// Does NOT stop auditd service or uninstall the package.
+func cleanupAuditd() error {
+ // Skip if not root
+ if !isRoot() {
+ utils.Logger.Info("skipping auditd cleanup: not running as root")
+ return nil
+ }
+
+ // Skip if running in container
+ if isContainer() {
+ utils.Logger.Info("skipping auditd cleanup: running in container")
+ return nil
+ }
+
+ // Remove our rules file if it exists
+ if _, err := os.Stat(auditRulesPath); err == nil {
+ if err := os.Remove(auditRulesPath); err != nil {
+ utils.Logger.ErrorF("failed to remove auditd rules file: %v", err)
+ return err
+ }
+ utils.Logger.Info("removed UTMStack auditd rules file")
+
+ // Reload auditd rules to clear our rules from kernel
+ if err := reloadRules(); err != nil {
+ utils.Logger.ErrorF("failed to reload auditd rules after cleanup: %v", err)
+ // Don't fail - the file is already removed
+ }
+ }
+
+ // Do NOT stop auditd service
+ // Do NOT uninstall auditd package
+
+ return nil
+}
+
+// reloadRules loads the audit rules into the kernel.
+func reloadRules() error {
+ // Try augenrules first (preferred method for rules.d)
+ if _, err := exec.LookPath("augenrules"); err == nil {
+ if err := sharedExec.Run("augenrules", "/", "--load"); err != nil {
+ utils.Logger.LogF(400, "augenrules --load failed: %v, trying auditctl", err)
+ } else {
+ return nil
+ }
+ }
+
+ // Fallback to auditctl -R
+ if _, err := exec.LookPath("auditctl"); err == nil {
+ if err := sharedExec.Run("auditctl", "/", "-R", auditRulesPath); err != nil {
+ return fmt.Errorf("failed to load rules with auditctl: %v", err)
+ }
+ return nil
+ }
+
+ return fmt.Errorf("no audit rule loader found (augenrules or auditctl)")
+}
diff --git a/agent/dependency/auditd_other.go b/agent/dependency/auditd_other.go
new file mode 100644
index 000000000..7c8a667a6
--- /dev/null
+++ b/agent/dependency/auditd_other.go
@@ -0,0 +1,18 @@
+//go:build !linux
+// +build !linux
+
+package dependency
+
+// AuditdVersion is the UTMStack audit rules version.
+// This is a stub for non-Linux systems.
+const AuditdVersion = "1.0.0"
+
+// configureAuditd is a no-op on non-Linux systems.
+func configureAuditd() error {
+ return nil
+}
+
+// updateAuditdRules is a no-op on non-Linux systems.
+func updateAuditdRules() error {
+ return nil
+}
diff --git a/agent/dependency/dependency.go b/agent/dependency/dependency.go
index 47d908f3d..2140def1a 100644
--- a/agent/dependency/dependency.go
+++ b/agent/dependency/dependency.go
@@ -37,16 +37,16 @@ func UpdaterFile(suffix string) string {
// Dependency represents a dependency that the agent needs.
type Dependency struct {
- Name string // Unique identifier
- Version string // Current version in this agent build
- BinaryPath string // Path to check if already exists
- DownloadURL func(server string) string // URL template to download from
- DownloadName string // Filename to save as (if different from BinaryPath basename)
- Critical bool // If true, failure blocks agent startup
- PostDownload func() error // Run after download (e.g., unzip). Can be nil.
- Configure func() error // Run on first install (can be nil)
- Update func() error // Run on version change (can be nil, uses Configure)
- Uninstall func() error // Run when dependency is removed (can be nil)
+ Name string // Unique identifier
+ Version string // Current version in this agent build
+ BinaryPath string // Path to check if already exists
+ DownloadURL func(server string) string // URL template to download from
+ DownloadName string // Filename to save as (if different from BinaryPath basename)
+ Critical bool // If true, failure blocks agent startup
+ PostDownload func() error // Run after download (e.g., unzip). Can be nil.
+ Configure func() error // Run on first install (can be nil)
+ Update func() error // Run on version change (can be nil, uses Configure)
+ Uninstall func() error // Run when dependency is removed (can be nil)
}
// Exists checks if the dependency binary exists on disk.
@@ -145,19 +145,31 @@ func Reconcile(server string, skipCertValidation bool) error {
if inst == nil {
// Not tracked yet
if dep.Exists() {
- // MIGRATION: Already installed by previous version, just track it
+ // MIGRATION: Already installed by previous version, configure and track it
utils.Logger.Info("Migrating existing dependency: %s (version %s)", dep.Name, dep.Version)
+ if dep.Configure != nil {
+ if err := dep.Configure(); err != nil {
+ errMsg := fmt.Errorf("failed to configure migrated dependency %s: %v", dep.Name, err)
+ utils.Logger.ErrorF("%v", errMsg)
+ if dep.Critical {
+ criticalErrors = append(criticalErrors, errMsg)
+ }
+ continue
+ }
+ }
installed.Add(dep.Name, dep.Version)
} else {
- // FRESH INSTALL: Download and configure
+ // FRESH INSTALL: Download (if needed) and configure
utils.Logger.Info("Installing new dependency: %s (version %s)", dep.Name, dep.Version)
- if err := downloadDependency(dep, server, skipCertValidation); err != nil {
- errMsg := fmt.Errorf("failed to download dependency %s: %v", dep.Name, err)
- utils.Logger.ErrorF("%v", errMsg)
- if dep.Critical {
- criticalErrors = append(criticalErrors, errMsg)
+ if dep.DownloadURL != nil {
+ if err := downloadDependency(dep, server, skipCertValidation); err != nil {
+ errMsg := fmt.Errorf("failed to download dependency %s: %v", dep.Name, err)
+ utils.Logger.ErrorF("%v", errMsg)
+ if dep.Critical {
+ criticalErrors = append(criticalErrors, errMsg)
+ }
+ continue
}
- continue
}
if dep.Configure != nil {
@@ -174,15 +186,17 @@ func Reconcile(server string, skipCertValidation bool) error {
utils.Logger.Info("Dependency %s installed successfully", dep.Name)
}
} else if inst.Version != dep.Version {
- // VERSION CHANGED: Download and update
+ // VERSION CHANGED: Download (if needed) and update
utils.Logger.Info("Updating dependency: %s (%s -> %s)", dep.Name, inst.Version, dep.Version)
- if err := downloadDependency(dep, server, skipCertValidation); err != nil {
- errMsg := fmt.Errorf("failed to download dependency update %s: %v", dep.Name, err)
- utils.Logger.ErrorF("%v", errMsg)
- if dep.Critical {
- criticalErrors = append(criticalErrors, errMsg)
+ if dep.DownloadURL != nil {
+ if err := downloadDependency(dep, server, skipCertValidation); err != nil {
+ errMsg := fmt.Errorf("failed to download dependency update %s: %v", dep.Name, err)
+ utils.Logger.ErrorF("%v", errMsg)
+ if dep.Critical {
+ criticalErrors = append(criticalErrors, errMsg)
+ }
+ continue
}
- continue
}
updateFn := dep.Update
@@ -237,6 +251,25 @@ func Reconcile(server string, skipCertValidation bool) error {
return nil
}
+// UninstallAll calls the Uninstall hook for all dependencies that have one.
+// This should be called during agent uninstall to clean up dependency artifacts.
+func UninstallAll() error {
+ utils.Logger.Info("Starting dependency uninstall...")
+
+ for _, dep := range GetDependencies() {
+ if dep.Uninstall != nil {
+ utils.Logger.Info("Uninstalling dependency: %s", dep.Name)
+ if err := dep.Uninstall(); err != nil {
+ utils.Logger.ErrorF("failed to uninstall %s: %v", dep.Name, err)
+ // Continue with other dependencies even if one fails
+ }
+ }
+ }
+
+ utils.Logger.Info("Dependency uninstall completed")
+ return nil
+}
+
// downloadDependency downloads the dependency binary.
func downloadDependency(dep Dependency, server string, skipCertValidation bool) error {
if dep.DownloadURL == nil {
diff --git a/agent/dependency/deps_linux_amd64.go b/agent/dependency/deps_linux_amd64.go
index 3b552475b..424403353 100644
--- a/agent/dependency/deps_linux_amd64.go
+++ b/agent/dependency/deps_linux_amd64.go
@@ -13,9 +13,6 @@ import (
"github.com/utmstack/UTMStack/shared/fs"
)
-// TODO: Remove after testing native collectors
-// const beatsZip = "utmstack_agent_dependencies_linux.zip"
-
// GetDependencies returns the list of dependencies for Linux amd64.
func GetDependencies() []Dependency {
basePath := fs.GetExecutablePath()
@@ -32,31 +29,6 @@ func GetDependencies() []Dependency {
Configure: configureUpdater,
Uninstall: uninstallUpdater,
},
- // TODO: Remove beats dependency after testing native collectors
- // {
- // Name: "beats",
- // Version: BeatsVersion,
- // BinaryPath: filepath.Join(basePath, "beats", "filebeat", "filebeat"),
- // DownloadName: beatsZip,
- // DownloadURL: func(server string) string {
- // return fmt.Sprintf(config.DependUrl, server, config.DependenciesPort, beatsZip)
- // },
- // Critical: false,
- // PostDownload: func() error {
- // zipPath := filepath.Join(basePath, beatsZip)
- // if err := archive.Unzip(zipPath, basePath); err != nil {
- // return fmt.Errorf("error unzipping beats: %v", err)
- // }
- // // Remove zip after extraction
- // os.Remove(zipPath)
- // // Set executable permissions
- // beatsPath := filepath.Join(basePath, "beats")
- // exec.Run("chmod", basePath, "-R", "755", beatsPath)
- // return nil
- // },
- // Configure: configureBeats,
- // Uninstall: uninstallBeats,
- // },
// New beats dependency - only for uninstalling existing filebeat/winlogbeat
// No download, no install - native collectors are used instead
@@ -66,6 +38,18 @@ func GetDependencies() []Dependency {
Critical: false,
Uninstall: uninstallBeats,
},
+
+ // Auditd dependency - auto-configures Linux audit daemon
+ // No download - installs from system package manager
+ {
+ Name: "auditd",
+ Version: AuditdVersion,
+ BinaryPath: "/sbin/auditctl", // Check if auditd tools exist
+ Critical: false,
+ Configure: configureAuditd,
+ Update: updateAuditdRules,
+ Uninstall: cleanupAuditd,
+ },
}
}
@@ -88,11 +72,6 @@ func uninstallUpdater() error {
return exec.Run(updaterPath, fs.GetExecutablePath(), "uninstall")
}
-// TODO: Remove after testing native collectors
-// func configureBeats() error {
-// return collector.InstallAll()
-// }
-
func uninstallBeats() error {
return collector.UninstallAll()
}
diff --git a/agent/dependency/deps_linux_arm64.go b/agent/dependency/deps_linux_arm64.go
index 66473f04e..18119c2a9 100644
--- a/agent/dependency/deps_linux_arm64.go
+++ b/agent/dependency/deps_linux_arm64.go
@@ -29,6 +29,18 @@ func GetDependencies() []Dependency {
Configure: configureUpdater,
Uninstall: uninstallUpdater,
},
+
+ // Auditd dependency - auto-configures Linux audit daemon
+ // No download - installs from system package manager
+ {
+ Name: "auditd",
+ Version: AuditdVersion,
+ BinaryPath: "/sbin/auditctl", // Check if auditd tools exist
+ Critical: false,
+ Configure: configureAuditd,
+ Update: updateAuditdRules,
+ Uninstall: cleanupAuditd,
+ },
}
}
diff --git a/agent/dependency/deps_windows_amd64.go b/agent/dependency/deps_windows_amd64.go
index 067e6e529..144fb4bbe 100644
--- a/agent/dependency/deps_windows_amd64.go
+++ b/agent/dependency/deps_windows_amd64.go
@@ -29,28 +29,6 @@ func GetDependencies() []Dependency {
Configure: configureUpdater,
Uninstall: uninstallUpdater,
},
- // TODO: Remove beats dependency after testing native collectors
- // {
- // Name: "beats",
- // Version: BeatsVersion,
- // BinaryPath: filepath.Join(basePath, "beats", "filebeat", "filebeat.exe"),
- // DownloadName: beatsZip,
- // DownloadURL: func(server string) string {
- // return fmt.Sprintf(config.DependUrl, server, config.DependenciesPort, beatsZip)
- // },
- // Critical: false,
- // PostDownload: func() error {
- // zipPath := filepath.Join(basePath, beatsZip)
- // if err := archive.Unzip(zipPath, basePath); err != nil {
- // return fmt.Errorf("error unzipping beats: %v", err)
- // }
- // // Remove zip after extraction
- // os.Remove(zipPath)
- // return nil
- // },
- // Configure: configureBeats,
- // Uninstall: uninstallBeats,
- // },
// New beats dependency - only for uninstalling existing filebeat/winlogbeat
// No download, no install - native collectors are used instead
@@ -76,11 +54,6 @@ func uninstallUpdater() error {
return exec.Run(updaterPath, fs.GetExecutablePath(), "uninstall")
}
-// TODO: Remove after testing native collectors
-// func configureBeats() error {
-// return collector.InstallAll()
-// }
-
func uninstallBeats() error {
return collector.UninstallAll()
}
diff --git a/agent/dependency/distro_linux.go b/agent/dependency/distro_linux.go
new file mode 100644
index 000000000..a9e0d9bca
--- /dev/null
+++ b/agent/dependency/distro_linux.go
@@ -0,0 +1,142 @@
+//go:build linux
+// +build linux
+
+package dependency
+
+import (
+ "bufio"
+ "os"
+ "os/exec"
+ "strings"
+)
+
+// DistroInfo holds Linux distribution details for package manager selection.
+type DistroInfo struct {
+ ID string // Primary distro ID (debian, ubuntu, rhel, centos, fedora, etc.)
+ IDLike string // Parent distro family (debian, rhel, etc.)
+ PackageManager string // Package manager to use (apt, dnf, yum, zypper, pacman)
+}
+
+// DetectDistro parses /etc/os-release and determines the package manager to use.
+// Falls back to binary detection if os-release parsing fails.
+func DetectDistro() *DistroInfo {
+ info := &DistroInfo{}
+
+ // Try parsing /etc/os-release first
+ if osRelease, err := parseOSRelease("/etc/os-release"); err == nil {
+ info.ID = strings.ToLower(osRelease["ID"])
+ info.IDLike = strings.ToLower(osRelease["ID_LIKE"])
+ }
+
+ // Map to package manager
+ info.PackageManager = mapPackageManager(info.ID, info.IDLike)
+
+ // Fallback to binary detection if mapping failed
+ if info.PackageManager == "" {
+ info.PackageManager = detectPackageManagerBinary()
+ }
+
+ return info
+}
+
+// parseOSRelease reads and parses /etc/os-release into a key-value map.
+func parseOSRelease(path string) (map[string]string, error) {
+ file, err := os.Open(path)
+ if err != nil {
+ return nil, err
+ }
+ defer file.Close()
+
+ result := make(map[string]string)
+ scanner := bufio.NewScanner(file)
+ for scanner.Scan() {
+ line := strings.TrimSpace(scanner.Text())
+ if line == "" || strings.HasPrefix(line, "#") {
+ continue
+ }
+
+ parts := strings.SplitN(line, "=", 2)
+ if len(parts) != 2 {
+ continue
+ }
+
+ key := parts[0]
+ value := strings.Trim(parts[1], `"'`)
+ result[key] = value
+ }
+
+ return result, scanner.Err()
+}
+
+// mapPackageManager determines the package manager based on distro ID and ID_LIKE.
+// Returns empty string if no match is found.
+func mapPackageManager(id, idLike string) string {
+ // Direct ID mapping (highest priority)
+ switch id {
+ // apt-based (Debian family)
+ case "debian", "ubuntu", "linuxmint", "pop", "elementary", "zorin", "kali", "raspbian":
+ return "apt"
+
+ // dnf-based (modern Red Hat family)
+ case "fedora", "rocky", "almalinux", "alma":
+ return "dnf"
+
+ // yum/dnf for RHEL and CentOS (depends on version, but dnf is preferred on modern)
+ case "rhel", "centos":
+ // Modern RHEL/CentOS use dnf, but we try dnf first in installPackage
+ return "dnf"
+
+ // yum-based (legacy Red Hat, Amazon Linux)
+ case "amzn", "amazon":
+ return "yum"
+
+ // zypper-based (SUSE family)
+ case "suse", "opensuse", "opensuse-leap", "opensuse-tumbleweed":
+ return "zypper"
+
+ // pacman-based (Arch family)
+ case "arch", "manjaro", "endeavouros", "garuda":
+ return "pacman"
+ }
+
+ // Check ID_LIKE for family membership
+ idLikeParts := strings.Fields(idLike)
+ for _, like := range idLikeParts {
+ switch like {
+ case "debian", "ubuntu":
+ return "apt"
+ case "rhel", "fedora", "centos":
+ return "dnf"
+ case "suse", "opensuse":
+ return "zypper"
+ case "arch":
+ return "pacman"
+ }
+ }
+
+ return ""
+}
+
+// detectPackageManagerBinary tries to find package manager binaries as a fallback.
+// Returns empty string if no package manager is found.
+func detectPackageManagerBinary() string {
+ // Check in order of preference
+ binaries := []struct {
+ cmd string
+ pm string
+ }{
+ {"apt-get", "apt"},
+ {"dnf", "dnf"},
+ {"yum", "yum"},
+ {"zypper", "zypper"},
+ {"pacman", "pacman"},
+ }
+
+ for _, b := range binaries {
+ if _, err := exec.LookPath(b.cmd); err == nil {
+ return b.pm
+ }
+ }
+
+ return ""
+}
diff --git a/agent/docs/tasks.md b/agent/docs/tasks.md
deleted file mode 100644
index a748637c0..000000000
--- a/agent/docs/tasks.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# UTMStack Agent Improvement Tasks
-
-This document contains a prioritized list of tasks for improving the UTMStack Agent codebase. Each task is marked with a checkbox that can be checked off when completed.
-
-## Architecture Improvements
-
-1. [ ] Implement a more modular plugin architecture to make it easier to add new collectors and data sources
-2. [ ] Create a unified configuration management system that centralizes all configuration options
-3. [ ] Implement a proper dependency injection system to improve testability and reduce tight coupling
-4. [ ] Refactor the service management code to use a common interface across all platforms
-5. [ ] Implement a more robust error handling and recovery mechanism for all collectors
-6. [ ] Create a standardized logging framework with configurable log levels
-7. [ ] Implement a metrics collection system to monitor agent performance
-8. [ ] Design a more efficient log batching and transmission system to reduce resource usage
-9. [ ] Implement a circuit breaker pattern for external service connections
-10. [ ] Create a formal API versioning strategy for communication with the server
-
-## Code Quality Improvements
-
-11. [ ] Add comprehensive unit tests for all packages (current coverage appears low)
-12. [ ] Implement integration tests for collector functionality
-13. [ ] Add proper documentation for all exported functions, types, and interfaces
-14. [ ] Standardize error handling across the codebase
-15. [ ] Refactor long functions (like in main.go) into smaller, more focused functions
-16. [ ] Remove commented-out code in config/const.go and other files
-17. [ ] Implement consistent naming conventions across the codebase
-18. [ ] Add context support for all long-running operations
-19. [ ] Implement proper resource cleanup in error cases
-20. [ ] Add validation for all user inputs and configuration values
-
-## Security Improvements
-
-21. [ ] Implement secure storage for sensitive configuration (beyond basic encryption)
-22. [ ] Add TLS certificate validation by default (currently optional)
-23. [ ] Implement proper authentication for all API endpoints
-24. [ ] Add integrity verification for downloaded dependencies
-25. [ ] Implement secure logging practices (masking sensitive data)
-26. [ ] Add rate limiting for authentication attempts
-27. [ ] Implement proper permission checking for file operations
-28. [ ] Add security scanning in the CI/CD pipeline
-29. [ ] Implement secure coding practices training for developers
-30. [ ] Create a security incident response plan
-
-## Performance Improvements
-
-31. [ ] Profile the application to identify performance bottlenecks
-32. [ ] Optimize log collection and processing for high-volume environments
-33. [ ] Implement more efficient data structures for log storage
-34. [ ] Add caching for frequently accessed configuration
-35. [ ] Optimize file operations to reduce disk I/O
-36. [ ] Implement connection pooling for network operations
-37. [ ] Reduce memory usage in log processing pipelines
-38. [ ] Optimize CPU usage during idle periods
-39. [ ] Implement more efficient serialization/deserialization
-40. [ ] Add performance benchmarks to CI/CD pipeline
-
-## Platform Support Improvements
-
-41. [ ] Standardize platform-specific code to reduce duplication
-42. [ ] Improve macOS arm64 support (recently added)
-43. [ ] Add support for additional Linux distributions
-44. [ ] Improve Windows arm64 support
-45. [ ] Create a unified build system for all platforms
-46. [ ] Implement automated testing on all supported platforms
-47. [ ] Add containerization support for easier deployment
-48. [ ] Create platform-specific installation documentation
-49. [ ] Implement feature parity across all supported platforms
-50. [ ] Add support for cloud-native environments
-
-## User Experience Improvements
-
-51. [ ] Improve installation process with better user feedback
-52. [ ] Create a web-based configuration interface
-53. [ ] Implement a status dashboard for monitoring agent health
-54. [ ] Add better error messages for common failure scenarios
-55. [ ] Improve logging with more context and clarity
-56. [ ] Create user-friendly documentation with examples
-57. [ ] Implement a troubleshooting guide for common issues
-58. [ ] Add a command-line interface for common administrative tasks
-59. [ ] Implement a self-diagnostic tool for agent issues
-60. [ ] Create a user feedback mechanism
-
-## Operational Improvements
-
-61. [ ] Implement a more robust update mechanism with rollback capability
-62. [ ] Add health checks for all components
-63. [ ] Implement proper service lifecycle management
-64. [ ] Create automated deployment scripts for common environments
-65. [ ] Implement configuration validation before applying changes
-66. [ ] Add support for configuration templates for common scenarios
-67. [ ] Implement a backup and restore mechanism for agent configuration
-68. [ ] Create operational runbooks for common maintenance tasks
-69. [ ] Implement proper service dependencies management
-70. [ ] Add support for centralized configuration management
-
-## Technical Debt Reduction
-
-71. [ ] Refactor the collector implementation to reduce code duplication
-72. [ ] Update deprecated dependencies and APIs
-73. [ ] Remove unused code and dependencies
-74. [ ] Consolidate duplicate functionality across packages
-75. [ ] Implement consistent error handling patterns
-76. [ ] Refactor configuration handling to use a single approach
-77. [ ] Improve code organization with better package structure
-78. [ ] Standardize file naming conventions
-79. [ ] Implement a code style guide and enforce with linters
-80. [ ] Refactor platform-specific code to improve maintainability
-
-## Documentation Improvements
-
-81. [ ] Create comprehensive API documentation
-82. [ ] Document the architecture and design decisions
-83. [ ] Create developer onboarding documentation
-84. [ ] Document the build and release process
-85. [ ] Create user guides for all features
-86. [ ] Document troubleshooting procedures
-87. [ ] Create diagrams for system architecture and data flow
-88. [ ] Document security considerations and best practices
-89. [ ] Create change management documentation
-90. [ ] Document performance tuning recommendations
-
-## Future Enhancements
-
-91. [ ] Implement support for additional data sources and integrations
-92. [ ] Add machine learning capabilities for anomaly detection
-93. [ ] Implement real-time alerting based on log patterns
-94. [ ] Create a plugin marketplace for community contributions
-95. [ ] Implement advanced data correlation features
-96. [ ] Add support for custom log parsing rules
-97. [ ] Implement advanced visualization capabilities
-98. [ ] Add support for compliance reporting
-99. [ ] Implement predictive analytics for security events
-100. [ ] Create an ecosystem of complementary tools and integrations
\ No newline at end of file
diff --git a/agent/go.mod b/agent/go.mod
index b90c5ee3e..81e03b34f 100644
--- a/agent/go.mod
+++ b/agent/go.mod
@@ -4,7 +4,9 @@ go 1.25.5
require (
github.com/AtlasInsideCorp/AtlasInsideAES v1.0.0
+ github.com/elastic/go-libaudit/v2 v2.6.2
github.com/elastic/go-sysinfo v1.15.4
+ github.com/fsnotify/fsnotify v1.9.0
github.com/glebarez/sqlite v1.11.0
github.com/google/uuid v1.6.0
github.com/kardianos/service v1.2.4
@@ -31,7 +33,6 @@ require (
github.com/cloudwego/base64x v0.1.6 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/elastic/go-windows v1.0.2 // indirect
- github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.13 // indirect
github.com/gin-contrib/sse v1.1.0 // indirect
github.com/gin-gonic/gin v1.11.0 // indirect
diff --git a/agent/go.sum b/agent/go.sum
index cfb551e58..4f8d7b56b 100644
--- a/agent/go.sum
+++ b/agent/go.sum
@@ -21,6 +21,10 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
+github.com/elastic/go-libaudit/v2 v2.6.2 h1:1PM6wVBTJHJQYsKl8jfA9/Aw9pFty5uUezPiUfKtOI4=
+github.com/elastic/go-libaudit/v2 v2.6.2/go.mod h1:8205nkf2oSrXFlO4H5j8/cyVMoSF3Y7jt+FjgS4ubQU=
+github.com/elastic/go-licenser v0.4.1 h1:1xDURsc8pL5zYT9R29425J3vkHdt4RT5TNEMeRN48x4=
+github.com/elastic/go-licenser v0.4.1/go.mod h1:V56wHMpmdURfibNBggaSBfqgPxyT1Tldns1i87iTEvU=
github.com/elastic/go-sysinfo v1.15.4 h1:A3zQcunCxik14MgXu39cXFXcIw2sFXZ0zL886eyiv1Q=
github.com/elastic/go-sysinfo v1.15.4/go.mod h1:ZBVXmqS368dOn/jvijV/zHLfakWTYHBZPk3G244lHrU=
github.com/elastic/go-windows v1.0.2 h1:yoLLsAsV5cfg9FLhZ9EXZ2n2sQFKeDYrHenkcivY4vI=
@@ -77,6 +81,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kardianos/service v1.2.4 h1:XNlGtZOYNx2u91urOdg/Kfmc+gfmuIo1Dd3rEi2OgBk=
github.com/kardianos/service v1.2.4/go.mod h1:E4V9ufUuY82F7Ztlu1eN9VXWIQxg8NoLQlmFe0MtrXc=
+github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
+github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
diff --git a/agent/logs/utmstack_agent.log b/agent/logs/utmstack_agent.log
deleted file mode 100644
index 602489253..000000000
--- a/agent/logs/utmstack_agent.log
+++ /dev/null
@@ -1 +0,0 @@
-2025-04-16T13:37:14.854518Z ERROR f18ed04e-83e4-49d7-b82b-b96385b8b0bd /Users/osmany/Projects/UTMStack/agent/serv/service.go 36 error getting config: error reading config file: open /Users/osmany/Projects/UTMStack/agent/config.yml: no such file or directory
diff --git a/agent/templates/filebeat.yml b/agent/templates/filebeat.yml
deleted file mode 100644
index 376c20867..000000000
--- a/agent/templates/filebeat.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-filebeat.inputs:
-
-- type: log
- enabled: false
- paths:
- - /var/log/*.log
-
-# ============================== Filebeat modules ==============================
-filebeat.config.modules:
- path: ${path.config}/modules.d/*.yml
- reload.enabled: false
-
-# ======================= Elasticsearch template setting =======================
-setup.template.settings:
- index.number_of_shards: 1
-
-# =================================== Kibana ===================================
-setup.kibana:
-
-# ------------------------------ File Output -------------------------------
-output.file:
- path: '{{.LogsPath}}'
- filename: '{{.LogFileName}}'
- rotate_every_kb: 10000
- number_of_files: 7
-
-# ================================= Processors =================================
-processors:
- - add_host_metadata:
- when.not.contains.tags: forwarded
- - add_cloud_metadata: ~
- - add_docker_metadata: ~
- - add_kubernetes_metadata: ~
diff --git a/agent/templates/winlogbeat.yml b/agent/templates/winlogbeat.yml
deleted file mode 100644
index 2c4cb3901..000000000
--- a/agent/templates/winlogbeat.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-winlogbeat.event_logs:
- - name: Application
- ignore_older: 72h
- - name: System
- - name: Security
- - name: Microsoft-Windows-Sysmon/Operational
- - name: Windows PowerShell
- event_id: 400, 403, 600, 800
- - name: Microsoft-Windows-PowerShell/Operational
- event_id: 4103, 4104, 4105, 4106
- - name: ForwardedEvents
- tags: [forwarded]
-
-#==================== Elasticsearch template setting ==========================
-setup.template.settings:
- index.number_of_shards: 3
-
-# ------------------------------ File Output -------------------------------
-output.file:
- path: '{{.LogsPath}}'
- filename: '{{.LogFileName}}'
- rotate_every_kb: 10000
- number_of_files: 7
-
-#================================ Processors =====================================
-processors:
- - add_host_metadata:
- when.not.contains.tags: forwarded
- - add_cloud_metadata: ~
\ No newline at end of file
diff --git a/agent/updater/go.mod b/agent/updater/go.mod
index d9b407d6a..1adb5e102 100644
--- a/agent/updater/go.mod
+++ b/agent/updater/go.mod
@@ -4,8 +4,6 @@ go 1.25.5
require (
github.com/kardianos/service v1.2.4
- github.com/threatwinds/go-sdk v1.1.14
- github.com/threatwinds/logger v1.2.3
github.com/utmstack/UTMStack/shared v0.0.0
)
@@ -16,6 +14,7 @@ require (
github.com/bytedance/sonic v1.15.0 // indirect
github.com/bytedance/sonic/loader v0.5.0 // indirect
github.com/cloudwego/base64x v0.1.6 // indirect
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/gabriel-vasile/mimetype v1.4.13 // indirect
github.com/gin-contrib/sse v1.1.0 // indirect
github.com/gin-gonic/gin v1.11.0 // indirect
@@ -27,19 +26,20 @@ require (
github.com/google/uuid v1.6.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
+ github.com/kr/text v0.2.0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/quic-go/qpack v0.6.0 // indirect
github.com/quic-go/quic-go v0.59.0 // indirect
- github.com/tidwall/gjson v1.18.0 // indirect
- github.com/tidwall/match v1.2.0 // indirect
- github.com/tidwall/pretty v1.2.1 // indirect
+ github.com/rogpeppe/go-internal v1.14.1 // indirect
+ github.com/threatwinds/logger v1.2.3 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.3.1 // indirect
- go.yaml.in/yaml/v2 v2.4.3 // indirect
+ go.uber.org/mock v0.6.0 // indirect
golang.org/x/arch v0.23.0 // indirect
golang.org/x/crypto v0.47.0 // indirect
golang.org/x/net v0.49.0 // indirect
@@ -48,5 +48,4 @@ require (
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- sigs.k8s.io/yaml v1.6.0 // indirect
)
diff --git a/agent/updater/go.sum b/agent/updater/go.sum
index 455acc4b0..00331a446 100644
--- a/agent/updater/go.sum
+++ b/agent/updater/go.sum
@@ -6,6 +6,7 @@ github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiD
github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo=
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -74,28 +75,14 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
-github.com/threatwinds/go-sdk v1.1.14 h1:9XqqGPZvDHHuJ/XkfMsDl3fe7Adfi1fMh/PpQFkUkJU=
-github.com/threatwinds/go-sdk v1.1.14/go.mod h1:Kfu26gkSZDpNNkPvuQbTAW3dWIQ66pVIrNYW1YBG3Kg=
github.com/threatwinds/logger v1.2.3 h1:V2SVAXzbq+/huCvIWOfqzMTH+WBHJxankyBgVG2hy1Y=
github.com/threatwinds/logger v1.2.3/go.mod h1:N+bJKvF4FQNJZLfQpVYWpr6D8iEAFnAQfHYqH5iR1TI=
-github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
-github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
-github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
-github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM=
-github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
-github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
-github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
-github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY=
github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y=
go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU=
-go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
-go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
-go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE=
-go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI=
golang.org/x/arch v0.23.0 h1:lKF64A2jF6Zd8L0knGltUnegD62JMFBiCPBmQpToHhg=
golang.org/x/arch v0.23.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A=
golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
@@ -117,5 +104,3 @@ gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYs
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
-sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
diff --git a/agent/version.json b/agent/version.json
index b60b61712..8981e0f87 100644
--- a/agent/version.json
+++ b/agent/version.json
@@ -1,4 +1,4 @@
{
- "version": "11.1.4",
+ "version": "11.1.5",
"updater_version": "1.0.4"
}
diff --git a/backend/Dockerfile b/backend/Dockerfile
index b1e8eb732..29b7052da 100644
--- a/backend/Dockerfile
+++ b/backend/Dockerfile
@@ -1,6 +1,8 @@
FROM eclipse-temurin:17
ADD target/utmstack.war ./
+COPY filters /utmstack/filters
+COPY rules /utmstack/rules
HEALTHCHECK --start-period=60s --interval=60s --timeout=60s --retries=3 \
CMD curl -f http://localhost:8080/api/healthcheck || exit 1
diff --git a/backend/pom.xml b/backend/pom.xml
index 022fdd657..80dde92ed 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -8,7 +8,7 @@
com.atlasinside
utmstack
${revision}
-
+
war
UTMStack-API
@@ -267,9 +267,10 @@
1.8
- com.lowagie
- itext
- 2.1.7
+ com.itextpdf
+ itext7-core
+ 7.1.7
+ pom
org.xhtmlrenderer
@@ -284,7 +285,7 @@
com.utmstack
opensearch-connector
- 1.0.4
+ 1.0.5
jakarta.json
@@ -348,7 +349,7 @@
org.apache.tika
tika-core
- 2.9.1
+ 3.3.0
diff --git a/backend/src/main/java/agent/CollectorOuterClass.java b/backend/src/main/java/agent/CollectorOuterClass.java
new file mode 100644
index 000000000..d1e02a0f6
--- /dev/null
+++ b/backend/src/main/java/agent/CollectorOuterClass.java
@@ -0,0 +1,8959 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: collector.proto
+// Protobuf Java Version: 4.29.3
+
+package agent;
+
+public final class CollectorOuterClass {
+ private CollectorOuterClass() {}
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ CollectorOuterClass.class.getName());
+ }
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ /**
+ * Protobuf enum {@code agent.CollectorModule}
+ */
+ public enum CollectorModule
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * AS_400 = 0;
+ */
+ AS_400(0),
+ /**
+ * UTMSTACK = 1;
+ */
+ UTMSTACK(1),
+ UNRECOGNIZED(-1),
+ ;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ CollectorModule.class.getName());
+ }
+ /**
+ * AS_400 = 0;
+ */
+ public static final int AS_400_VALUE = 0;
+ /**
+ * UTMSTACK = 1;
+ */
+ public static final int UTMSTACK_VALUE = 1;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static CollectorModule valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static CollectorModule forNumber(int value) {
+ switch (value) {
+ case 0: return AS_400;
+ case 1: return UTMSTACK;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ CollectorModule> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public CollectorModule findValueByNumber(int number) {
+ return CollectorModule.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final CollectorModule[] VALUES = values();
+
+ public static CollectorModule valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private CollectorModule(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:agent.CollectorModule)
+ }
+
+ public interface RegisterRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.RegisterRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * string ip = 1;
+ * @return The ip.
+ */
+ java.lang.String getIp();
+ /**
+ * string ip = 1;
+ * @return The bytes for ip.
+ */
+ com.google.protobuf.ByteString
+ getIpBytes();
+
+ /**
+ * string hostname = 2;
+ * @return The hostname.
+ */
+ java.lang.String getHostname();
+ /**
+ * string hostname = 2;
+ * @return The bytes for hostname.
+ */
+ com.google.protobuf.ByteString
+ getHostnameBytes();
+
+ /**
+ * string version = 3;
+ * @return The version.
+ */
+ java.lang.String getVersion();
+ /**
+ * string version = 3;
+ * @return The bytes for version.
+ */
+ com.google.protobuf.ByteString
+ getVersionBytes();
+
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return The enum numeric value on the wire for collector.
+ */
+ int getCollectorValue();
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return The collector.
+ */
+ agent.CollectorOuterClass.CollectorModule getCollector();
+ }
+ /**
+ * Protobuf type {@code agent.RegisterRequest}
+ */
+ public static final class RegisterRequest extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.RegisterRequest)
+ RegisterRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ RegisterRequest.class.getName());
+ }
+ // Use RegisterRequest.newBuilder() to construct.
+ private RegisterRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private RegisterRequest() {
+ ip_ = "";
+ hostname_ = "";
+ version_ = "";
+ collector_ = 0;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_RegisterRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_RegisterRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.RegisterRequest.class, agent.CollectorOuterClass.RegisterRequest.Builder.class);
+ }
+
+ public static final int IP_FIELD_NUMBER = 1;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object ip_ = "";
+ /**
+ * string ip = 1;
+ * @return The ip.
+ */
+ @java.lang.Override
+ public java.lang.String getIp() {
+ java.lang.Object ref = ip_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ ip_ = s;
+ return s;
+ }
+ }
+ /**
+ * string ip = 1;
+ * @return The bytes for ip.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getIpBytes() {
+ java.lang.Object ref = ip_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ ip_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int HOSTNAME_FIELD_NUMBER = 2;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object hostname_ = "";
+ /**
+ * string hostname = 2;
+ * @return The hostname.
+ */
+ @java.lang.Override
+ public java.lang.String getHostname() {
+ java.lang.Object ref = hostname_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostname_ = s;
+ return s;
+ }
+ }
+ /**
+ * string hostname = 2;
+ * @return The bytes for hostname.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getHostnameBytes() {
+ java.lang.Object ref = hostname_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostname_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int VERSION_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object version_ = "";
+ /**
+ * string version = 3;
+ * @return The version.
+ */
+ @java.lang.Override
+ public java.lang.String getVersion() {
+ java.lang.Object ref = version_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ version_ = s;
+ return s;
+ }
+ }
+ /**
+ * string version = 3;
+ * @return The bytes for version.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ java.lang.Object ref = version_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int COLLECTOR_FIELD_NUMBER = 4;
+ private int collector_ = 0;
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return The enum numeric value on the wire for collector.
+ */
+ @java.lang.Override public int getCollectorValue() {
+ return collector_;
+ }
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return The collector.
+ */
+ @java.lang.Override public agent.CollectorOuterClass.CollectorModule getCollector() {
+ agent.CollectorOuterClass.CollectorModule result = agent.CollectorOuterClass.CollectorModule.forNumber(collector_);
+ return result == null ? agent.CollectorOuterClass.CollectorModule.UNRECOGNIZED : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ip_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, ip_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(hostname_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, hostname_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(version_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, version_);
+ }
+ if (collector_ != agent.CollectorOuterClass.CollectorModule.AS_400.getNumber()) {
+ output.writeEnum(4, collector_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ip_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, ip_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(hostname_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, hostname_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(version_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, version_);
+ }
+ if (collector_ != agent.CollectorOuterClass.CollectorModule.AS_400.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(4, collector_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.RegisterRequest)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.RegisterRequest other = (agent.CollectorOuterClass.RegisterRequest) obj;
+
+ if (!getIp()
+ .equals(other.getIp())) return false;
+ if (!getHostname()
+ .equals(other.getHostname())) return false;
+ if (!getVersion()
+ .equals(other.getVersion())) return false;
+ if (collector_ != other.collector_) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + IP_FIELD_NUMBER;
+ hash = (53 * hash) + getIp().hashCode();
+ hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
+ hash = (53 * hash) + getHostname().hashCode();
+ hash = (37 * hash) + VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getVersion().hashCode();
+ hash = (37 * hash) + COLLECTOR_FIELD_NUMBER;
+ hash = (53 * hash) + collector_;
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.RegisterRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.RegisterRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.RegisterRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.RegisterRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.RegisterRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.RegisterRequest)
+ agent.CollectorOuterClass.RegisterRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_RegisterRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_RegisterRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.RegisterRequest.class, agent.CollectorOuterClass.RegisterRequest.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.RegisterRequest.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ ip_ = "";
+ hostname_ = "";
+ version_ = "";
+ collector_ = 0;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_RegisterRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.RegisterRequest getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.RegisterRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.RegisterRequest build() {
+ agent.CollectorOuterClass.RegisterRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.RegisterRequest buildPartial() {
+ agent.CollectorOuterClass.RegisterRequest result = new agent.CollectorOuterClass.RegisterRequest(this);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.RegisterRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.ip_ = ip_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.hostname_ = hostname_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.version_ = version_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.collector_ = collector_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.RegisterRequest) {
+ return mergeFrom((agent.CollectorOuterClass.RegisterRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.RegisterRequest other) {
+ if (other == agent.CollectorOuterClass.RegisterRequest.getDefaultInstance()) return this;
+ if (!other.getIp().isEmpty()) {
+ ip_ = other.ip_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (!other.getHostname().isEmpty()) {
+ hostname_ = other.hostname_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (!other.getVersion().isEmpty()) {
+ version_ = other.version_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ if (other.collector_ != 0) {
+ setCollectorValue(other.getCollectorValue());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ ip_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18: {
+ hostname_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26: {
+ version_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 32: {
+ collector_ = input.readEnum();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 32
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private java.lang.Object ip_ = "";
+ /**
+ * string ip = 1;
+ * @return The ip.
+ */
+ public java.lang.String getIp() {
+ java.lang.Object ref = ip_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ ip_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string ip = 1;
+ * @return The bytes for ip.
+ */
+ public com.google.protobuf.ByteString
+ getIpBytes() {
+ java.lang.Object ref = ip_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ ip_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string ip = 1;
+ * @param value The ip to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIp(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ ip_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * string ip = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearIp() {
+ ip_ = getDefaultInstance().getIp();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+ /**
+ * string ip = 1;
+ * @param value The bytes for ip to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIpBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ ip_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object hostname_ = "";
+ /**
+ * string hostname = 2;
+ * @return The hostname.
+ */
+ public java.lang.String getHostname() {
+ java.lang.Object ref = hostname_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostname_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string hostname = 2;
+ * @return The bytes for hostname.
+ */
+ public com.google.protobuf.ByteString
+ getHostnameBytes() {
+ java.lang.Object ref = hostname_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostname_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string hostname = 2;
+ * @param value The hostname to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHostname(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ hostname_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * string hostname = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearHostname() {
+ hostname_ = getDefaultInstance().getHostname();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+ /**
+ * string hostname = 2;
+ * @param value The bytes for hostname to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHostnameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ hostname_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object version_ = "";
+ /**
+ * string version = 3;
+ * @return The version.
+ */
+ public java.lang.String getVersion() {
+ java.lang.Object ref = version_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ version_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string version = 3;
+ * @return The bytes for version.
+ */
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ java.lang.Object ref = version_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string version = 3;
+ * @param value The version to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVersion(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ version_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+ /**
+ * string version = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearVersion() {
+ version_ = getDefaultInstance().getVersion();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * string version = 3;
+ * @param value The bytes for version to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ version_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private int collector_ = 0;
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return The enum numeric value on the wire for collector.
+ */
+ @java.lang.Override public int getCollectorValue() {
+ return collector_;
+ }
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @param value The enum numeric value on the wire for collector to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollectorValue(int value) {
+ collector_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return The collector.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorModule getCollector() {
+ agent.CollectorOuterClass.CollectorModule result = agent.CollectorOuterClass.CollectorModule.forNumber(collector_);
+ return result == null ? agent.CollectorOuterClass.CollectorModule.UNRECOGNIZED : result;
+ }
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @param value The collector to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollector(agent.CollectorOuterClass.CollectorModule value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000008;
+ collector_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.CollectorModule collector = 4;
+ * @return This builder for chaining.
+ */
+ public Builder clearCollector() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ collector_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.RegisterRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.RegisterRequest)
+ private static final agent.CollectorOuterClass.RegisterRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.RegisterRequest();
+ }
+
+ public static agent.CollectorOuterClass.RegisterRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public RegisterRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.RegisterRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ListCollectorResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.ListCollectorResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ java.util.List
+ getRowsList();
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ agent.CollectorOuterClass.Collector getRows(int index);
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ int getRowsCount();
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ java.util.List extends agent.CollectorOuterClass.CollectorOrBuilder>
+ getRowsOrBuilderList();
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ agent.CollectorOuterClass.CollectorOrBuilder getRowsOrBuilder(
+ int index);
+
+ /**
+ * int32 total = 2;
+ * @return The total.
+ */
+ int getTotal();
+ }
+ /**
+ * Protobuf type {@code agent.ListCollectorResponse}
+ */
+ public static final class ListCollectorResponse extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.ListCollectorResponse)
+ ListCollectorResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ ListCollectorResponse.class.getName());
+ }
+ // Use ListCollectorResponse.newBuilder() to construct.
+ private ListCollectorResponse(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private ListCollectorResponse() {
+ rows_ = java.util.Collections.emptyList();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_ListCollectorResponse_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_ListCollectorResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.ListCollectorResponse.class, agent.CollectorOuterClass.ListCollectorResponse.Builder.class);
+ }
+
+ public static final int ROWS_FIELD_NUMBER = 1;
+ @SuppressWarnings("serial")
+ private java.util.List rows_;
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ @java.lang.Override
+ public java.util.List getRowsList() {
+ return rows_;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ @java.lang.Override
+ public java.util.List extends agent.CollectorOuterClass.CollectorOrBuilder>
+ getRowsOrBuilderList() {
+ return rows_;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ @java.lang.Override
+ public int getRowsCount() {
+ return rows_.size();
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.Collector getRows(int index) {
+ return rows_.get(index);
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorOrBuilder getRowsOrBuilder(
+ int index) {
+ return rows_.get(index);
+ }
+
+ public static final int TOTAL_FIELD_NUMBER = 2;
+ private int total_ = 0;
+ /**
+ * int32 total = 2;
+ * @return The total.
+ */
+ @java.lang.Override
+ public int getTotal() {
+ return total_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ for (int i = 0; i < rows_.size(); i++) {
+ output.writeMessage(1, rows_.get(i));
+ }
+ if (total_ != 0) {
+ output.writeInt32(2, total_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < rows_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, rows_.get(i));
+ }
+ if (total_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, total_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.ListCollectorResponse)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.ListCollectorResponse other = (agent.CollectorOuterClass.ListCollectorResponse) obj;
+
+ if (!getRowsList()
+ .equals(other.getRowsList())) return false;
+ if (getTotal()
+ != other.getTotal()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getRowsCount() > 0) {
+ hash = (37 * hash) + ROWS_FIELD_NUMBER;
+ hash = (53 * hash) + getRowsList().hashCode();
+ }
+ hash = (37 * hash) + TOTAL_FIELD_NUMBER;
+ hash = (53 * hash) + getTotal();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.ListCollectorResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.ListCollectorResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.ListCollectorResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.ListCollectorResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.ListCollectorResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.ListCollectorResponse)
+ agent.CollectorOuterClass.ListCollectorResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_ListCollectorResponse_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_ListCollectorResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.ListCollectorResponse.class, agent.CollectorOuterClass.ListCollectorResponse.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.ListCollectorResponse.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ if (rowsBuilder_ == null) {
+ rows_ = java.util.Collections.emptyList();
+ } else {
+ rows_ = null;
+ rowsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ total_ = 0;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_ListCollectorResponse_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ListCollectorResponse getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.ListCollectorResponse.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ListCollectorResponse build() {
+ agent.CollectorOuterClass.ListCollectorResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ListCollectorResponse buildPartial() {
+ agent.CollectorOuterClass.ListCollectorResponse result = new agent.CollectorOuterClass.ListCollectorResponse(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(agent.CollectorOuterClass.ListCollectorResponse result) {
+ if (rowsBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ rows_ = java.util.Collections.unmodifiableList(rows_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.rows_ = rows_;
+ } else {
+ result.rows_ = rowsBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.ListCollectorResponse result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.total_ = total_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.ListCollectorResponse) {
+ return mergeFrom((agent.CollectorOuterClass.ListCollectorResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.ListCollectorResponse other) {
+ if (other == agent.CollectorOuterClass.ListCollectorResponse.getDefaultInstance()) return this;
+ if (rowsBuilder_ == null) {
+ if (!other.rows_.isEmpty()) {
+ if (rows_.isEmpty()) {
+ rows_ = other.rows_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureRowsIsMutable();
+ rows_.addAll(other.rows_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.rows_.isEmpty()) {
+ if (rowsBuilder_.isEmpty()) {
+ rowsBuilder_.dispose();
+ rowsBuilder_ = null;
+ rows_ = other.rows_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ rowsBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getRowsFieldBuilder() : null;
+ } else {
+ rowsBuilder_.addAllMessages(other.rows_);
+ }
+ }
+ }
+ if (other.getTotal() != 0) {
+ setTotal(other.getTotal());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ agent.CollectorOuterClass.Collector m =
+ input.readMessage(
+ agent.CollectorOuterClass.Collector.parser(),
+ extensionRegistry);
+ if (rowsBuilder_ == null) {
+ ensureRowsIsMutable();
+ rows_.add(m);
+ } else {
+ rowsBuilder_.addMessage(m);
+ }
+ break;
+ } // case 10
+ case 16: {
+ total_ = input.readInt32();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private java.util.List rows_ =
+ java.util.Collections.emptyList();
+ private void ensureRowsIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ rows_ = new java.util.ArrayList(rows_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.Collector, agent.CollectorOuterClass.Collector.Builder, agent.CollectorOuterClass.CollectorOrBuilder> rowsBuilder_;
+
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public java.util.List getRowsList() {
+ if (rowsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(rows_);
+ } else {
+ return rowsBuilder_.getMessageList();
+ }
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public int getRowsCount() {
+ if (rowsBuilder_ == null) {
+ return rows_.size();
+ } else {
+ return rowsBuilder_.getCount();
+ }
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public agent.CollectorOuterClass.Collector getRows(int index) {
+ if (rowsBuilder_ == null) {
+ return rows_.get(index);
+ } else {
+ return rowsBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder setRows(
+ int index, agent.CollectorOuterClass.Collector value) {
+ if (rowsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRowsIsMutable();
+ rows_.set(index, value);
+ onChanged();
+ } else {
+ rowsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder setRows(
+ int index, agent.CollectorOuterClass.Collector.Builder builderForValue) {
+ if (rowsBuilder_ == null) {
+ ensureRowsIsMutable();
+ rows_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ rowsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder addRows(agent.CollectorOuterClass.Collector value) {
+ if (rowsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRowsIsMutable();
+ rows_.add(value);
+ onChanged();
+ } else {
+ rowsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder addRows(
+ int index, agent.CollectorOuterClass.Collector value) {
+ if (rowsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRowsIsMutable();
+ rows_.add(index, value);
+ onChanged();
+ } else {
+ rowsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder addRows(
+ agent.CollectorOuterClass.Collector.Builder builderForValue) {
+ if (rowsBuilder_ == null) {
+ ensureRowsIsMutable();
+ rows_.add(builderForValue.build());
+ onChanged();
+ } else {
+ rowsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder addRows(
+ int index, agent.CollectorOuterClass.Collector.Builder builderForValue) {
+ if (rowsBuilder_ == null) {
+ ensureRowsIsMutable();
+ rows_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ rowsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder addAllRows(
+ java.lang.Iterable extends agent.CollectorOuterClass.Collector> values) {
+ if (rowsBuilder_ == null) {
+ ensureRowsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, rows_);
+ onChanged();
+ } else {
+ rowsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder clearRows() {
+ if (rowsBuilder_ == null) {
+ rows_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ rowsBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public Builder removeRows(int index) {
+ if (rowsBuilder_ == null) {
+ ensureRowsIsMutable();
+ rows_.remove(index);
+ onChanged();
+ } else {
+ rowsBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public agent.CollectorOuterClass.Collector.Builder getRowsBuilder(
+ int index) {
+ return getRowsFieldBuilder().getBuilder(index);
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public agent.CollectorOuterClass.CollectorOrBuilder getRowsOrBuilder(
+ int index) {
+ if (rowsBuilder_ == null) {
+ return rows_.get(index); } else {
+ return rowsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public java.util.List extends agent.CollectorOuterClass.CollectorOrBuilder>
+ getRowsOrBuilderList() {
+ if (rowsBuilder_ != null) {
+ return rowsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(rows_);
+ }
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public agent.CollectorOuterClass.Collector.Builder addRowsBuilder() {
+ return getRowsFieldBuilder().addBuilder(
+ agent.CollectorOuterClass.Collector.getDefaultInstance());
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public agent.CollectorOuterClass.Collector.Builder addRowsBuilder(
+ int index) {
+ return getRowsFieldBuilder().addBuilder(
+ index, agent.CollectorOuterClass.Collector.getDefaultInstance());
+ }
+ /**
+ * repeated .agent.Collector rows = 1;
+ */
+ public java.util.List
+ getRowsBuilderList() {
+ return getRowsFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.Collector, agent.CollectorOuterClass.Collector.Builder, agent.CollectorOuterClass.CollectorOrBuilder>
+ getRowsFieldBuilder() {
+ if (rowsBuilder_ == null) {
+ rowsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.Collector, agent.CollectorOuterClass.Collector.Builder, agent.CollectorOuterClass.CollectorOrBuilder>(
+ rows_,
+ ((bitField0_ & 0x00000001) != 0),
+ getParentForChildren(),
+ isClean());
+ rows_ = null;
+ }
+ return rowsBuilder_;
+ }
+
+ private int total_ ;
+ /**
+ * int32 total = 2;
+ * @return The total.
+ */
+ @java.lang.Override
+ public int getTotal() {
+ return total_;
+ }
+ /**
+ * int32 total = 2;
+ * @param value The total to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTotal(int value) {
+
+ total_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 total = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearTotal() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ total_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.ListCollectorResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.ListCollectorResponse)
+ private static final agent.CollectorOuterClass.ListCollectorResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.ListCollectorResponse();
+ }
+
+ public static agent.CollectorOuterClass.ListCollectorResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ListCollectorResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ListCollectorResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface CollectorOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.Collector)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ int getId();
+
+ /**
+ * .agent.Status status = 2;
+ * @return The enum numeric value on the wire for status.
+ */
+ int getStatusValue();
+ /**
+ * .agent.Status status = 2;
+ * @return The status.
+ */
+ com.park.utmstack.service.grpc.Status getStatus();
+
+ /**
+ * string collector_key = 3;
+ * @return The collectorKey.
+ */
+ java.lang.String getCollectorKey();
+ /**
+ * string collector_key = 3;
+ * @return The bytes for collectorKey.
+ */
+ com.google.protobuf.ByteString
+ getCollectorKeyBytes();
+
+ /**
+ * string ip = 4;
+ * @return The ip.
+ */
+ java.lang.String getIp();
+ /**
+ * string ip = 4;
+ * @return The bytes for ip.
+ */
+ com.google.protobuf.ByteString
+ getIpBytes();
+
+ /**
+ * string hostname = 5;
+ * @return The hostname.
+ */
+ java.lang.String getHostname();
+ /**
+ * string hostname = 5;
+ * @return The bytes for hostname.
+ */
+ com.google.protobuf.ByteString
+ getHostnameBytes();
+
+ /**
+ * string version = 6;
+ * @return The version.
+ */
+ java.lang.String getVersion();
+ /**
+ * string version = 6;
+ * @return The bytes for version.
+ */
+ com.google.protobuf.ByteString
+ getVersionBytes();
+
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return The enum numeric value on the wire for module.
+ */
+ int getModuleValue();
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return The module.
+ */
+ agent.CollectorOuterClass.CollectorModule getModule();
+
+ /**
+ * string last_seen = 8;
+ * @return The lastSeen.
+ */
+ java.lang.String getLastSeen();
+ /**
+ * string last_seen = 8;
+ * @return The bytes for lastSeen.
+ */
+ com.google.protobuf.ByteString
+ getLastSeenBytes();
+ }
+ /**
+ * Protobuf type {@code agent.Collector}
+ */
+ public static final class Collector extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.Collector)
+ CollectorOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ Collector.class.getName());
+ }
+ // Use Collector.newBuilder() to construct.
+ private Collector(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private Collector() {
+ status_ = 0;
+ collectorKey_ = "";
+ ip_ = "";
+ hostname_ = "";
+ version_ = "";
+ module_ = 0;
+ lastSeen_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_Collector_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_Collector_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.Collector.class, agent.CollectorOuterClass.Collector.Builder.class);
+ }
+
+ public static final int ID_FIELD_NUMBER = 1;
+ private int id_ = 0;
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public int getId() {
+ return id_;
+ }
+
+ public static final int STATUS_FIELD_NUMBER = 2;
+ private int status_ = 0;
+ /**
+ * .agent.Status status = 2;
+ * @return The enum numeric value on the wire for status.
+ */
+ @java.lang.Override public int getStatusValue() {
+ return status_;
+ }
+ /**
+ * .agent.Status status = 2;
+ * @return The status.
+ */
+ @java.lang.Override public com.park.utmstack.service.grpc.Status getStatus() {
+ com.park.utmstack.service.grpc.Status result = com.park.utmstack.service.grpc.Status.forNumber(status_);
+ return result == null ? com.park.utmstack.service.grpc.Status.UNRECOGNIZED : result;
+ }
+
+ public static final int COLLECTOR_KEY_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object collectorKey_ = "";
+ /**
+ * string collector_key = 3;
+ * @return The collectorKey.
+ */
+ @java.lang.Override
+ public java.lang.String getCollectorKey() {
+ java.lang.Object ref = collectorKey_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ collectorKey_ = s;
+ return s;
+ }
+ }
+ /**
+ * string collector_key = 3;
+ * @return The bytes for collectorKey.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getCollectorKeyBytes() {
+ java.lang.Object ref = collectorKey_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ collectorKey_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int IP_FIELD_NUMBER = 4;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object ip_ = "";
+ /**
+ * string ip = 4;
+ * @return The ip.
+ */
+ @java.lang.Override
+ public java.lang.String getIp() {
+ java.lang.Object ref = ip_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ ip_ = s;
+ return s;
+ }
+ }
+ /**
+ * string ip = 4;
+ * @return The bytes for ip.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getIpBytes() {
+ java.lang.Object ref = ip_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ ip_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int HOSTNAME_FIELD_NUMBER = 5;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object hostname_ = "";
+ /**
+ * string hostname = 5;
+ * @return The hostname.
+ */
+ @java.lang.Override
+ public java.lang.String getHostname() {
+ java.lang.Object ref = hostname_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostname_ = s;
+ return s;
+ }
+ }
+ /**
+ * string hostname = 5;
+ * @return The bytes for hostname.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getHostnameBytes() {
+ java.lang.Object ref = hostname_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostname_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int VERSION_FIELD_NUMBER = 6;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object version_ = "";
+ /**
+ * string version = 6;
+ * @return The version.
+ */
+ @java.lang.Override
+ public java.lang.String getVersion() {
+ java.lang.Object ref = version_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ version_ = s;
+ return s;
+ }
+ }
+ /**
+ * string version = 6;
+ * @return The bytes for version.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ java.lang.Object ref = version_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int MODULE_FIELD_NUMBER = 7;
+ private int module_ = 0;
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return The enum numeric value on the wire for module.
+ */
+ @java.lang.Override public int getModuleValue() {
+ return module_;
+ }
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return The module.
+ */
+ @java.lang.Override public agent.CollectorOuterClass.CollectorModule getModule() {
+ agent.CollectorOuterClass.CollectorModule result = agent.CollectorOuterClass.CollectorModule.forNumber(module_);
+ return result == null ? agent.CollectorOuterClass.CollectorModule.UNRECOGNIZED : result;
+ }
+
+ public static final int LAST_SEEN_FIELD_NUMBER = 8;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object lastSeen_ = "";
+ /**
+ * string last_seen = 8;
+ * @return The lastSeen.
+ */
+ @java.lang.Override
+ public java.lang.String getLastSeen() {
+ java.lang.Object ref = lastSeen_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ lastSeen_ = s;
+ return s;
+ }
+ }
+ /**
+ * string last_seen = 8;
+ * @return The bytes for lastSeen.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getLastSeenBytes() {
+ java.lang.Object ref = lastSeen_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ lastSeen_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (id_ != 0) {
+ output.writeInt32(1, id_);
+ }
+ if (status_ != com.park.utmstack.service.grpc.Status.ONLINE.getNumber()) {
+ output.writeEnum(2, status_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(collectorKey_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, collectorKey_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ip_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 4, ip_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(hostname_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 5, hostname_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(version_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 6, version_);
+ }
+ if (module_ != agent.CollectorOuterClass.CollectorModule.AS_400.getNumber()) {
+ output.writeEnum(7, module_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(lastSeen_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 8, lastSeen_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (id_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, id_);
+ }
+ if (status_ != com.park.utmstack.service.grpc.Status.ONLINE.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, status_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(collectorKey_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, collectorKey_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ip_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(4, ip_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(hostname_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(5, hostname_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(version_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(6, version_);
+ }
+ if (module_ != agent.CollectorOuterClass.CollectorModule.AS_400.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(7, module_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(lastSeen_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(8, lastSeen_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.Collector)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.Collector other = (agent.CollectorOuterClass.Collector) obj;
+
+ if (getId()
+ != other.getId()) return false;
+ if (status_ != other.status_) return false;
+ if (!getCollectorKey()
+ .equals(other.getCollectorKey())) return false;
+ if (!getIp()
+ .equals(other.getIp())) return false;
+ if (!getHostname()
+ .equals(other.getHostname())) return false;
+ if (!getVersion()
+ .equals(other.getVersion())) return false;
+ if (module_ != other.module_) return false;
+ if (!getLastSeen()
+ .equals(other.getLastSeen())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId();
+ hash = (37 * hash) + STATUS_FIELD_NUMBER;
+ hash = (53 * hash) + status_;
+ hash = (37 * hash) + COLLECTOR_KEY_FIELD_NUMBER;
+ hash = (53 * hash) + getCollectorKey().hashCode();
+ hash = (37 * hash) + IP_FIELD_NUMBER;
+ hash = (53 * hash) + getIp().hashCode();
+ hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
+ hash = (53 * hash) + getHostname().hashCode();
+ hash = (37 * hash) + VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getVersion().hashCode();
+ hash = (37 * hash) + MODULE_FIELD_NUMBER;
+ hash = (53 * hash) + module_;
+ hash = (37 * hash) + LAST_SEEN_FIELD_NUMBER;
+ hash = (53 * hash) + getLastSeen().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.Collector parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.Collector parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.Collector parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.Collector prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.Collector}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.Collector)
+ agent.CollectorOuterClass.CollectorOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_Collector_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_Collector_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.Collector.class, agent.CollectorOuterClass.Collector.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.Collector.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ id_ = 0;
+ status_ = 0;
+ collectorKey_ = "";
+ ip_ = "";
+ hostname_ = "";
+ version_ = "";
+ module_ = 0;
+ lastSeen_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_Collector_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.Collector getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.Collector.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.Collector build() {
+ agent.CollectorOuterClass.Collector result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.Collector buildPartial() {
+ agent.CollectorOuterClass.Collector result = new agent.CollectorOuterClass.Collector(this);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.Collector result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.id_ = id_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.status_ = status_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.collectorKey_ = collectorKey_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.ip_ = ip_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.hostname_ = hostname_;
+ }
+ if (((from_bitField0_ & 0x00000020) != 0)) {
+ result.version_ = version_;
+ }
+ if (((from_bitField0_ & 0x00000040) != 0)) {
+ result.module_ = module_;
+ }
+ if (((from_bitField0_ & 0x00000080) != 0)) {
+ result.lastSeen_ = lastSeen_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.Collector) {
+ return mergeFrom((agent.CollectorOuterClass.Collector)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.Collector other) {
+ if (other == agent.CollectorOuterClass.Collector.getDefaultInstance()) return this;
+ if (other.getId() != 0) {
+ setId(other.getId());
+ }
+ if (other.status_ != 0) {
+ setStatusValue(other.getStatusValue());
+ }
+ if (!other.getCollectorKey().isEmpty()) {
+ collectorKey_ = other.collectorKey_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ if (!other.getIp().isEmpty()) {
+ ip_ = other.ip_;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ if (!other.getHostname().isEmpty()) {
+ hostname_ = other.hostname_;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ if (!other.getVersion().isEmpty()) {
+ version_ = other.version_;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ }
+ if (other.module_ != 0) {
+ setModuleValue(other.getModuleValue());
+ }
+ if (!other.getLastSeen().isEmpty()) {
+ lastSeen_ = other.lastSeen_;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ id_ = input.readInt32();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 8
+ case 16: {
+ status_ = input.readEnum();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ case 26: {
+ collectorKey_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 34: {
+ ip_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 34
+ case 42: {
+ hostname_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 42
+ case 50: {
+ version_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000020;
+ break;
+ } // case 50
+ case 56: {
+ module_ = input.readEnum();
+ bitField0_ |= 0x00000040;
+ break;
+ } // case 56
+ case 66: {
+ lastSeen_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000080;
+ break;
+ } // case 66
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private int id_ ;
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public int getId() {
+ return id_;
+ }
+ /**
+ * int32 id = 1;
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(int value) {
+
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 id = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ id_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int status_ = 0;
+ /**
+ * .agent.Status status = 2;
+ * @return The enum numeric value on the wire for status.
+ */
+ @java.lang.Override public int getStatusValue() {
+ return status_;
+ }
+ /**
+ * .agent.Status status = 2;
+ * @param value The enum numeric value on the wire for status to set.
+ * @return This builder for chaining.
+ */
+ public Builder setStatusValue(int value) {
+ status_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.Status status = 2;
+ * @return The status.
+ */
+ @java.lang.Override
+ public com.park.utmstack.service.grpc.Status getStatus() {
+ com.park.utmstack.service.grpc.Status result = com.park.utmstack.service.grpc.Status.forNumber(status_);
+ return result == null ? com.park.utmstack.service.grpc.Status.UNRECOGNIZED : result;
+ }
+ /**
+ * .agent.Status status = 2;
+ * @param value The status to set.
+ * @return This builder for chaining.
+ */
+ public Builder setStatus(com.park.utmstack.service.grpc.Status value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ status_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.Status status = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearStatus() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ status_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object collectorKey_ = "";
+ /**
+ * string collector_key = 3;
+ * @return The collectorKey.
+ */
+ public java.lang.String getCollectorKey() {
+ java.lang.Object ref = collectorKey_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ collectorKey_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string collector_key = 3;
+ * @return The bytes for collectorKey.
+ */
+ public com.google.protobuf.ByteString
+ getCollectorKeyBytes() {
+ java.lang.Object ref = collectorKey_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ collectorKey_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string collector_key = 3;
+ * @param value The collectorKey to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollectorKey(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ collectorKey_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+ /**
+ * string collector_key = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearCollectorKey() {
+ collectorKey_ = getDefaultInstance().getCollectorKey();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * string collector_key = 3;
+ * @param value The bytes for collectorKey to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollectorKeyBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ collectorKey_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object ip_ = "";
+ /**
+ * string ip = 4;
+ * @return The ip.
+ */
+ public java.lang.String getIp() {
+ java.lang.Object ref = ip_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ ip_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string ip = 4;
+ * @return The bytes for ip.
+ */
+ public com.google.protobuf.ByteString
+ getIpBytes() {
+ java.lang.Object ref = ip_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ ip_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string ip = 4;
+ * @param value The ip to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIp(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ ip_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+ /**
+ * string ip = 4;
+ * @return This builder for chaining.
+ */
+ public Builder clearIp() {
+ ip_ = getDefaultInstance().getIp();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+ /**
+ * string ip = 4;
+ * @param value The bytes for ip to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIpBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ ip_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object hostname_ = "";
+ /**
+ * string hostname = 5;
+ * @return The hostname.
+ */
+ public java.lang.String getHostname() {
+ java.lang.Object ref = hostname_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostname_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string hostname = 5;
+ * @return The bytes for hostname.
+ */
+ public com.google.protobuf.ByteString
+ getHostnameBytes() {
+ java.lang.Object ref = hostname_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostname_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string hostname = 5;
+ * @param value The hostname to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHostname(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ hostname_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+ /**
+ * string hostname = 5;
+ * @return This builder for chaining.
+ */
+ public Builder clearHostname() {
+ hostname_ = getDefaultInstance().getHostname();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+ /**
+ * string hostname = 5;
+ * @param value The bytes for hostname to set.
+ * @return This builder for chaining.
+ */
+ public Builder setHostnameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ hostname_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object version_ = "";
+ /**
+ * string version = 6;
+ * @return The version.
+ */
+ public java.lang.String getVersion() {
+ java.lang.Object ref = version_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ version_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string version = 6;
+ * @return The bytes for version.
+ */
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ java.lang.Object ref = version_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string version = 6;
+ * @param value The version to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVersion(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ version_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+ /**
+ * string version = 6;
+ * @return This builder for chaining.
+ */
+ public Builder clearVersion() {
+ version_ = getDefaultInstance().getVersion();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+ /**
+ * string version = 6;
+ * @param value The bytes for version to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ version_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private int module_ = 0;
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return The enum numeric value on the wire for module.
+ */
+ @java.lang.Override public int getModuleValue() {
+ return module_;
+ }
+ /**
+ * .agent.CollectorModule module = 7;
+ * @param value The enum numeric value on the wire for module to set.
+ * @return This builder for chaining.
+ */
+ public Builder setModuleValue(int value) {
+ module_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return The module.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorModule getModule() {
+ agent.CollectorOuterClass.CollectorModule result = agent.CollectorOuterClass.CollectorModule.forNumber(module_);
+ return result == null ? agent.CollectorOuterClass.CollectorModule.UNRECOGNIZED : result;
+ }
+ /**
+ * .agent.CollectorModule module = 7;
+ * @param value The module to set.
+ * @return This builder for chaining.
+ */
+ public Builder setModule(agent.CollectorOuterClass.CollectorModule value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000040;
+ module_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.CollectorModule module = 7;
+ * @return This builder for chaining.
+ */
+ public Builder clearModule() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ module_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object lastSeen_ = "";
+ /**
+ * string last_seen = 8;
+ * @return The lastSeen.
+ */
+ public java.lang.String getLastSeen() {
+ java.lang.Object ref = lastSeen_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ lastSeen_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string last_seen = 8;
+ * @return The bytes for lastSeen.
+ */
+ public com.google.protobuf.ByteString
+ getLastSeenBytes() {
+ java.lang.Object ref = lastSeen_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ lastSeen_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string last_seen = 8;
+ * @param value The lastSeen to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLastSeen(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ lastSeen_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+ /**
+ * string last_seen = 8;
+ * @return This builder for chaining.
+ */
+ public Builder clearLastSeen() {
+ lastSeen_ = getDefaultInstance().getLastSeen();
+ bitField0_ = (bitField0_ & ~0x00000080);
+ onChanged();
+ return this;
+ }
+ /**
+ * string last_seen = 8;
+ * @param value The bytes for lastSeen to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLastSeenBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ lastSeen_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.Collector)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.Collector)
+ private static final agent.CollectorOuterClass.Collector DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.Collector();
+ }
+
+ public static agent.CollectorOuterClass.Collector getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public Collector parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.Collector getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface CollectorMessagesOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.CollectorMessages)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * .agent.CollectorConfig config = 1;
+ * @return Whether the config field is set.
+ */
+ boolean hasConfig();
+ /**
+ * .agent.CollectorConfig config = 1;
+ * @return The config.
+ */
+ agent.CollectorOuterClass.CollectorConfig getConfig();
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ agent.CollectorOuterClass.CollectorConfigOrBuilder getConfigOrBuilder();
+
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ * @return Whether the result field is set.
+ */
+ boolean hasResult();
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ * @return The result.
+ */
+ agent.CollectorOuterClass.ConfigKnowledge getResult();
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ agent.CollectorOuterClass.ConfigKnowledgeOrBuilder getResultOrBuilder();
+
+ agent.CollectorOuterClass.CollectorMessages.StreamMessageCase getStreamMessageCase();
+ }
+ /**
+ * Protobuf type {@code agent.CollectorMessages}
+ */
+ public static final class CollectorMessages extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.CollectorMessages)
+ CollectorMessagesOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ CollectorMessages.class.getName());
+ }
+ // Use CollectorMessages.newBuilder() to construct.
+ private CollectorMessages(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private CollectorMessages() {
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorMessages_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorMessages_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorMessages.class, agent.CollectorOuterClass.CollectorMessages.Builder.class);
+ }
+
+ private int streamMessageCase_ = 0;
+ @SuppressWarnings("serial")
+ private java.lang.Object streamMessage_;
+ public enum StreamMessageCase
+ implements com.google.protobuf.Internal.EnumLite,
+ com.google.protobuf.AbstractMessage.InternalOneOfEnum {
+ CONFIG(1),
+ RESULT(2),
+ STREAMMESSAGE_NOT_SET(0);
+ private final int value;
+ private StreamMessageCase(int value) {
+ this.value = value;
+ }
+ /**
+ * @param value The number of the enum to look for.
+ * @return The enum associated with the given number.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static StreamMessageCase valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static StreamMessageCase forNumber(int value) {
+ switch (value) {
+ case 1: return CONFIG;
+ case 2: return RESULT;
+ case 0: return STREAMMESSAGE_NOT_SET;
+ default: return null;
+ }
+ }
+ public int getNumber() {
+ return this.value;
+ }
+ };
+
+ public StreamMessageCase
+ getStreamMessageCase() {
+ return StreamMessageCase.forNumber(
+ streamMessageCase_);
+ }
+
+ public static final int CONFIG_FIELD_NUMBER = 1;
+ /**
+ * .agent.CollectorConfig config = 1;
+ * @return Whether the config field is set.
+ */
+ @java.lang.Override
+ public boolean hasConfig() {
+ return streamMessageCase_ == 1;
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ * @return The config.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfig getConfig() {
+ if (streamMessageCase_ == 1) {
+ return (agent.CollectorOuterClass.CollectorConfig) streamMessage_;
+ }
+ return agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigOrBuilder getConfigOrBuilder() {
+ if (streamMessageCase_ == 1) {
+ return (agent.CollectorOuterClass.CollectorConfig) streamMessage_;
+ }
+ return agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ }
+
+ public static final int RESULT_FIELD_NUMBER = 2;
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ * @return Whether the result field is set.
+ */
+ @java.lang.Override
+ public boolean hasResult() {
+ return streamMessageCase_ == 2;
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ * @return The result.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledge getResult() {
+ if (streamMessageCase_ == 2) {
+ return (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_;
+ }
+ return agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledgeOrBuilder getResultOrBuilder() {
+ if (streamMessageCase_ == 2) {
+ return (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_;
+ }
+ return agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (streamMessageCase_ == 1) {
+ output.writeMessage(1, (agent.CollectorOuterClass.CollectorConfig) streamMessage_);
+ }
+ if (streamMessageCase_ == 2) {
+ output.writeMessage(2, (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (streamMessageCase_ == 1) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, (agent.CollectorOuterClass.CollectorConfig) streamMessage_);
+ }
+ if (streamMessageCase_ == 2) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.CollectorMessages)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.CollectorMessages other = (agent.CollectorOuterClass.CollectorMessages) obj;
+
+ if (!getStreamMessageCase().equals(other.getStreamMessageCase())) return false;
+ switch (streamMessageCase_) {
+ case 1:
+ if (!getConfig()
+ .equals(other.getConfig())) return false;
+ break;
+ case 2:
+ if (!getResult()
+ .equals(other.getResult())) return false;
+ break;
+ case 0:
+ default:
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ switch (streamMessageCase_) {
+ case 1:
+ hash = (37 * hash) + CONFIG_FIELD_NUMBER;
+ hash = (53 * hash) + getConfig().hashCode();
+ break;
+ case 2:
+ hash = (37 * hash) + RESULT_FIELD_NUMBER;
+ hash = (53 * hash) + getResult().hashCode();
+ break;
+ case 0:
+ default:
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.CollectorMessages parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.CollectorMessages parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorMessages parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.CollectorMessages prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.CollectorMessages}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.CollectorMessages)
+ agent.CollectorOuterClass.CollectorMessagesOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorMessages_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorMessages_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorMessages.class, agent.CollectorOuterClass.CollectorMessages.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.CollectorMessages.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ if (configBuilder_ != null) {
+ configBuilder_.clear();
+ }
+ if (resultBuilder_ != null) {
+ resultBuilder_.clear();
+ }
+ streamMessageCase_ = 0;
+ streamMessage_ = null;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorMessages_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorMessages getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.CollectorMessages.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorMessages build() {
+ agent.CollectorOuterClass.CollectorMessages result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorMessages buildPartial() {
+ agent.CollectorOuterClass.CollectorMessages result = new agent.CollectorOuterClass.CollectorMessages(this);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ buildPartialOneofs(result);
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.CollectorMessages result) {
+ int from_bitField0_ = bitField0_;
+ }
+
+ private void buildPartialOneofs(agent.CollectorOuterClass.CollectorMessages result) {
+ result.streamMessageCase_ = streamMessageCase_;
+ result.streamMessage_ = this.streamMessage_;
+ if (streamMessageCase_ == 1 &&
+ configBuilder_ != null) {
+ result.streamMessage_ = configBuilder_.build();
+ }
+ if (streamMessageCase_ == 2 &&
+ resultBuilder_ != null) {
+ result.streamMessage_ = resultBuilder_.build();
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.CollectorMessages) {
+ return mergeFrom((agent.CollectorOuterClass.CollectorMessages)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.CollectorMessages other) {
+ if (other == agent.CollectorOuterClass.CollectorMessages.getDefaultInstance()) return this;
+ switch (other.getStreamMessageCase()) {
+ case CONFIG: {
+ mergeConfig(other.getConfig());
+ break;
+ }
+ case RESULT: {
+ mergeResult(other.getResult());
+ break;
+ }
+ case STREAMMESSAGE_NOT_SET: {
+ break;
+ }
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ input.readMessage(
+ getConfigFieldBuilder().getBuilder(),
+ extensionRegistry);
+ streamMessageCase_ = 1;
+ break;
+ } // case 10
+ case 18: {
+ input.readMessage(
+ getResultFieldBuilder().getBuilder(),
+ extensionRegistry);
+ streamMessageCase_ = 2;
+ break;
+ } // case 18
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int streamMessageCase_ = 0;
+ private java.lang.Object streamMessage_;
+ public StreamMessageCase
+ getStreamMessageCase() {
+ return StreamMessageCase.forNumber(
+ streamMessageCase_);
+ }
+
+ public Builder clearStreamMessage() {
+ streamMessageCase_ = 0;
+ streamMessage_ = null;
+ onChanged();
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.protobuf.SingleFieldBuilder<
+ agent.CollectorOuterClass.CollectorConfig, agent.CollectorOuterClass.CollectorConfig.Builder, agent.CollectorOuterClass.CollectorConfigOrBuilder> configBuilder_;
+ /**
+ * .agent.CollectorConfig config = 1;
+ * @return Whether the config field is set.
+ */
+ @java.lang.Override
+ public boolean hasConfig() {
+ return streamMessageCase_ == 1;
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ * @return The config.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfig getConfig() {
+ if (configBuilder_ == null) {
+ if (streamMessageCase_ == 1) {
+ return (agent.CollectorOuterClass.CollectorConfig) streamMessage_;
+ }
+ return agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ } else {
+ if (streamMessageCase_ == 1) {
+ return configBuilder_.getMessage();
+ }
+ return agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ }
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ public Builder setConfig(agent.CollectorOuterClass.CollectorConfig value) {
+ if (configBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ streamMessage_ = value;
+ onChanged();
+ } else {
+ configBuilder_.setMessage(value);
+ }
+ streamMessageCase_ = 1;
+ return this;
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ public Builder setConfig(
+ agent.CollectorOuterClass.CollectorConfig.Builder builderForValue) {
+ if (configBuilder_ == null) {
+ streamMessage_ = builderForValue.build();
+ onChanged();
+ } else {
+ configBuilder_.setMessage(builderForValue.build());
+ }
+ streamMessageCase_ = 1;
+ return this;
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ public Builder mergeConfig(agent.CollectorOuterClass.CollectorConfig value) {
+ if (configBuilder_ == null) {
+ if (streamMessageCase_ == 1 &&
+ streamMessage_ != agent.CollectorOuterClass.CollectorConfig.getDefaultInstance()) {
+ streamMessage_ = agent.CollectorOuterClass.CollectorConfig.newBuilder((agent.CollectorOuterClass.CollectorConfig) streamMessage_)
+ .mergeFrom(value).buildPartial();
+ } else {
+ streamMessage_ = value;
+ }
+ onChanged();
+ } else {
+ if (streamMessageCase_ == 1) {
+ configBuilder_.mergeFrom(value);
+ } else {
+ configBuilder_.setMessage(value);
+ }
+ }
+ streamMessageCase_ = 1;
+ return this;
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ public Builder clearConfig() {
+ if (configBuilder_ == null) {
+ if (streamMessageCase_ == 1) {
+ streamMessageCase_ = 0;
+ streamMessage_ = null;
+ onChanged();
+ }
+ } else {
+ if (streamMessageCase_ == 1) {
+ streamMessageCase_ = 0;
+ streamMessage_ = null;
+ }
+ configBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ public agent.CollectorOuterClass.CollectorConfig.Builder getConfigBuilder() {
+ return getConfigFieldBuilder().getBuilder();
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigOrBuilder getConfigOrBuilder() {
+ if ((streamMessageCase_ == 1) && (configBuilder_ != null)) {
+ return configBuilder_.getMessageOrBuilder();
+ } else {
+ if (streamMessageCase_ == 1) {
+ return (agent.CollectorOuterClass.CollectorConfig) streamMessage_;
+ }
+ return agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ }
+ }
+ /**
+ * .agent.CollectorConfig config = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ agent.CollectorOuterClass.CollectorConfig, agent.CollectorOuterClass.CollectorConfig.Builder, agent.CollectorOuterClass.CollectorConfigOrBuilder>
+ getConfigFieldBuilder() {
+ if (configBuilder_ == null) {
+ if (!(streamMessageCase_ == 1)) {
+ streamMessage_ = agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ }
+ configBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ agent.CollectorOuterClass.CollectorConfig, agent.CollectorOuterClass.CollectorConfig.Builder, agent.CollectorOuterClass.CollectorConfigOrBuilder>(
+ (agent.CollectorOuterClass.CollectorConfig) streamMessage_,
+ getParentForChildren(),
+ isClean());
+ streamMessage_ = null;
+ }
+ streamMessageCase_ = 1;
+ onChanged();
+ return configBuilder_;
+ }
+
+ private com.google.protobuf.SingleFieldBuilder<
+ agent.CollectorOuterClass.ConfigKnowledge, agent.CollectorOuterClass.ConfigKnowledge.Builder, agent.CollectorOuterClass.ConfigKnowledgeOrBuilder> resultBuilder_;
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ * @return Whether the result field is set.
+ */
+ @java.lang.Override
+ public boolean hasResult() {
+ return streamMessageCase_ == 2;
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ * @return The result.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledge getResult() {
+ if (resultBuilder_ == null) {
+ if (streamMessageCase_ == 2) {
+ return (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_;
+ }
+ return agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ } else {
+ if (streamMessageCase_ == 2) {
+ return resultBuilder_.getMessage();
+ }
+ return agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ }
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ public Builder setResult(agent.CollectorOuterClass.ConfigKnowledge value) {
+ if (resultBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ streamMessage_ = value;
+ onChanged();
+ } else {
+ resultBuilder_.setMessage(value);
+ }
+ streamMessageCase_ = 2;
+ return this;
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ public Builder setResult(
+ agent.CollectorOuterClass.ConfigKnowledge.Builder builderForValue) {
+ if (resultBuilder_ == null) {
+ streamMessage_ = builderForValue.build();
+ onChanged();
+ } else {
+ resultBuilder_.setMessage(builderForValue.build());
+ }
+ streamMessageCase_ = 2;
+ return this;
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ public Builder mergeResult(agent.CollectorOuterClass.ConfigKnowledge value) {
+ if (resultBuilder_ == null) {
+ if (streamMessageCase_ == 2 &&
+ streamMessage_ != agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance()) {
+ streamMessage_ = agent.CollectorOuterClass.ConfigKnowledge.newBuilder((agent.CollectorOuterClass.ConfigKnowledge) streamMessage_)
+ .mergeFrom(value).buildPartial();
+ } else {
+ streamMessage_ = value;
+ }
+ onChanged();
+ } else {
+ if (streamMessageCase_ == 2) {
+ resultBuilder_.mergeFrom(value);
+ } else {
+ resultBuilder_.setMessage(value);
+ }
+ }
+ streamMessageCase_ = 2;
+ return this;
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ public Builder clearResult() {
+ if (resultBuilder_ == null) {
+ if (streamMessageCase_ == 2) {
+ streamMessageCase_ = 0;
+ streamMessage_ = null;
+ onChanged();
+ }
+ } else {
+ if (streamMessageCase_ == 2) {
+ streamMessageCase_ = 0;
+ streamMessage_ = null;
+ }
+ resultBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ public agent.CollectorOuterClass.ConfigKnowledge.Builder getResultBuilder() {
+ return getResultFieldBuilder().getBuilder();
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledgeOrBuilder getResultOrBuilder() {
+ if ((streamMessageCase_ == 2) && (resultBuilder_ != null)) {
+ return resultBuilder_.getMessageOrBuilder();
+ } else {
+ if (streamMessageCase_ == 2) {
+ return (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_;
+ }
+ return agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ }
+ }
+ /**
+ * .agent.ConfigKnowledge result = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ agent.CollectorOuterClass.ConfigKnowledge, agent.CollectorOuterClass.ConfigKnowledge.Builder, agent.CollectorOuterClass.ConfigKnowledgeOrBuilder>
+ getResultFieldBuilder() {
+ if (resultBuilder_ == null) {
+ if (!(streamMessageCase_ == 2)) {
+ streamMessage_ = agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ }
+ resultBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ agent.CollectorOuterClass.ConfigKnowledge, agent.CollectorOuterClass.ConfigKnowledge.Builder, agent.CollectorOuterClass.ConfigKnowledgeOrBuilder>(
+ (agent.CollectorOuterClass.ConfigKnowledge) streamMessage_,
+ getParentForChildren(),
+ isClean());
+ streamMessage_ = null;
+ }
+ streamMessageCase_ = 2;
+ onChanged();
+ return resultBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.CollectorMessages)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.CollectorMessages)
+ private static final agent.CollectorOuterClass.CollectorMessages DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.CollectorMessages();
+ }
+
+ public static agent.CollectorOuterClass.CollectorMessages getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CollectorMessages parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorMessages getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface CollectorConfigOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.CollectorConfig)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * string collector_id = 1;
+ * @return The collectorId.
+ */
+ java.lang.String getCollectorId();
+ /**
+ * string collector_id = 1;
+ * @return The bytes for collectorId.
+ */
+ com.google.protobuf.ByteString
+ getCollectorIdBytes();
+
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ java.util.List
+ getGroupsList();
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ agent.CollectorOuterClass.CollectorConfigGroup getGroups(int index);
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ int getGroupsCount();
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ java.util.List extends agent.CollectorOuterClass.CollectorConfigGroupOrBuilder>
+ getGroupsOrBuilderList();
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ agent.CollectorOuterClass.CollectorConfigGroupOrBuilder getGroupsOrBuilder(
+ int index);
+
+ /**
+ * string request_id = 3;
+ * @return The requestId.
+ */
+ java.lang.String getRequestId();
+ /**
+ * string request_id = 3;
+ * @return The bytes for requestId.
+ */
+ com.google.protobuf.ByteString
+ getRequestIdBytes();
+ }
+ /**
+ * Protobuf type {@code agent.CollectorConfig}
+ */
+ public static final class CollectorConfig extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.CollectorConfig)
+ CollectorConfigOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ CollectorConfig.class.getName());
+ }
+ // Use CollectorConfig.newBuilder() to construct.
+ private CollectorConfig(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private CollectorConfig() {
+ collectorId_ = "";
+ groups_ = java.util.Collections.emptyList();
+ requestId_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfig_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfig_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorConfig.class, agent.CollectorOuterClass.CollectorConfig.Builder.class);
+ }
+
+ public static final int COLLECTOR_ID_FIELD_NUMBER = 1;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object collectorId_ = "";
+ /**
+ * string collector_id = 1;
+ * @return The collectorId.
+ */
+ @java.lang.Override
+ public java.lang.String getCollectorId() {
+ java.lang.Object ref = collectorId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ collectorId_ = s;
+ return s;
+ }
+ }
+ /**
+ * string collector_id = 1;
+ * @return The bytes for collectorId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getCollectorIdBytes() {
+ java.lang.Object ref = collectorId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ collectorId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int GROUPS_FIELD_NUMBER = 2;
+ @SuppressWarnings("serial")
+ private java.util.List groups_;
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ @java.lang.Override
+ public java.util.List getGroupsList() {
+ return groups_;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ @java.lang.Override
+ public java.util.List extends agent.CollectorOuterClass.CollectorConfigGroupOrBuilder>
+ getGroupsOrBuilderList() {
+ return groups_;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ @java.lang.Override
+ public int getGroupsCount() {
+ return groups_.size();
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigGroup getGroups(int index) {
+ return groups_.get(index);
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigGroupOrBuilder getGroupsOrBuilder(
+ int index) {
+ return groups_.get(index);
+ }
+
+ public static final int REQUEST_ID_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object requestId_ = "";
+ /**
+ * string request_id = 3;
+ * @return The requestId.
+ */
+ @java.lang.Override
+ public java.lang.String getRequestId() {
+ java.lang.Object ref = requestId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ requestId_ = s;
+ return s;
+ }
+ }
+ /**
+ * string request_id = 3;
+ * @return The bytes for requestId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getRequestIdBytes() {
+ java.lang.Object ref = requestId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ requestId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(collectorId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, collectorId_);
+ }
+ for (int i = 0; i < groups_.size(); i++) {
+ output.writeMessage(2, groups_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, requestId_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(collectorId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, collectorId_);
+ }
+ for (int i = 0; i < groups_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, groups_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, requestId_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.CollectorConfig)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.CollectorConfig other = (agent.CollectorOuterClass.CollectorConfig) obj;
+
+ if (!getCollectorId()
+ .equals(other.getCollectorId())) return false;
+ if (!getGroupsList()
+ .equals(other.getGroupsList())) return false;
+ if (!getRequestId()
+ .equals(other.getRequestId())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + COLLECTOR_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getCollectorId().hashCode();
+ if (getGroupsCount() > 0) {
+ hash = (37 * hash) + GROUPS_FIELD_NUMBER;
+ hash = (53 * hash) + getGroupsList().hashCode();
+ }
+ hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getRequestId().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfig parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfig parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorConfig parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.CollectorConfig prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.CollectorConfig}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.CollectorConfig)
+ agent.CollectorOuterClass.CollectorConfigOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfig_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfig_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorConfig.class, agent.CollectorOuterClass.CollectorConfig.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.CollectorConfig.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ collectorId_ = "";
+ if (groupsBuilder_ == null) {
+ groups_ = java.util.Collections.emptyList();
+ } else {
+ groups_ = null;
+ groupsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ requestId_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfig_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfig getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.CollectorConfig.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfig build() {
+ agent.CollectorOuterClass.CollectorConfig result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfig buildPartial() {
+ agent.CollectorOuterClass.CollectorConfig result = new agent.CollectorOuterClass.CollectorConfig(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(agent.CollectorOuterClass.CollectorConfig result) {
+ if (groupsBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)) {
+ groups_ = java.util.Collections.unmodifiableList(groups_);
+ bitField0_ = (bitField0_ & ~0x00000002);
+ }
+ result.groups_ = groups_;
+ } else {
+ result.groups_ = groupsBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.CollectorConfig result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.collectorId_ = collectorId_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.requestId_ = requestId_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.CollectorConfig) {
+ return mergeFrom((agent.CollectorOuterClass.CollectorConfig)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.CollectorConfig other) {
+ if (other == agent.CollectorOuterClass.CollectorConfig.getDefaultInstance()) return this;
+ if (!other.getCollectorId().isEmpty()) {
+ collectorId_ = other.collectorId_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (groupsBuilder_ == null) {
+ if (!other.groups_.isEmpty()) {
+ if (groups_.isEmpty()) {
+ groups_ = other.groups_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ ensureGroupsIsMutable();
+ groups_.addAll(other.groups_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.groups_.isEmpty()) {
+ if (groupsBuilder_.isEmpty()) {
+ groupsBuilder_.dispose();
+ groupsBuilder_ = null;
+ groups_ = other.groups_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ groupsBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getGroupsFieldBuilder() : null;
+ } else {
+ groupsBuilder_.addAllMessages(other.groups_);
+ }
+ }
+ }
+ if (!other.getRequestId().isEmpty()) {
+ requestId_ = other.requestId_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ collectorId_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18: {
+ agent.CollectorOuterClass.CollectorConfigGroup m =
+ input.readMessage(
+ agent.CollectorOuterClass.CollectorConfigGroup.parser(),
+ extensionRegistry);
+ if (groupsBuilder_ == null) {
+ ensureGroupsIsMutable();
+ groups_.add(m);
+ } else {
+ groupsBuilder_.addMessage(m);
+ }
+ break;
+ } // case 18
+ case 26: {
+ requestId_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private java.lang.Object collectorId_ = "";
+ /**
+ * string collector_id = 1;
+ * @return The collectorId.
+ */
+ public java.lang.String getCollectorId() {
+ java.lang.Object ref = collectorId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ collectorId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string collector_id = 1;
+ * @return The bytes for collectorId.
+ */
+ public com.google.protobuf.ByteString
+ getCollectorIdBytes() {
+ java.lang.Object ref = collectorId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ collectorId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string collector_id = 1;
+ * @param value The collectorId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollectorId(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ collectorId_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * string collector_id = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearCollectorId() {
+ collectorId_ = getDefaultInstance().getCollectorId();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+ /**
+ * string collector_id = 1;
+ * @param value The bytes for collectorId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollectorIdBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ collectorId_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.util.List groups_ =
+ java.util.Collections.emptyList();
+ private void ensureGroupsIsMutable() {
+ if (!((bitField0_ & 0x00000002) != 0)) {
+ groups_ = new java.util.ArrayList(groups_);
+ bitField0_ |= 0x00000002;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.CollectorConfigGroup, agent.CollectorOuterClass.CollectorConfigGroup.Builder, agent.CollectorOuterClass.CollectorConfigGroupOrBuilder> groupsBuilder_;
+
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public java.util.List getGroupsList() {
+ if (groupsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(groups_);
+ } else {
+ return groupsBuilder_.getMessageList();
+ }
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public int getGroupsCount() {
+ if (groupsBuilder_ == null) {
+ return groups_.size();
+ } else {
+ return groupsBuilder_.getCount();
+ }
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public agent.CollectorOuterClass.CollectorConfigGroup getGroups(int index) {
+ if (groupsBuilder_ == null) {
+ return groups_.get(index);
+ } else {
+ return groupsBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder setGroups(
+ int index, agent.CollectorOuterClass.CollectorConfigGroup value) {
+ if (groupsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureGroupsIsMutable();
+ groups_.set(index, value);
+ onChanged();
+ } else {
+ groupsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder setGroups(
+ int index, agent.CollectorOuterClass.CollectorConfigGroup.Builder builderForValue) {
+ if (groupsBuilder_ == null) {
+ ensureGroupsIsMutable();
+ groups_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ groupsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder addGroups(agent.CollectorOuterClass.CollectorConfigGroup value) {
+ if (groupsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureGroupsIsMutable();
+ groups_.add(value);
+ onChanged();
+ } else {
+ groupsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder addGroups(
+ int index, agent.CollectorOuterClass.CollectorConfigGroup value) {
+ if (groupsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureGroupsIsMutable();
+ groups_.add(index, value);
+ onChanged();
+ } else {
+ groupsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder addGroups(
+ agent.CollectorOuterClass.CollectorConfigGroup.Builder builderForValue) {
+ if (groupsBuilder_ == null) {
+ ensureGroupsIsMutable();
+ groups_.add(builderForValue.build());
+ onChanged();
+ } else {
+ groupsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder addGroups(
+ int index, agent.CollectorOuterClass.CollectorConfigGroup.Builder builderForValue) {
+ if (groupsBuilder_ == null) {
+ ensureGroupsIsMutable();
+ groups_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ groupsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder addAllGroups(
+ java.lang.Iterable extends agent.CollectorOuterClass.CollectorConfigGroup> values) {
+ if (groupsBuilder_ == null) {
+ ensureGroupsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, groups_);
+ onChanged();
+ } else {
+ groupsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder clearGroups() {
+ if (groupsBuilder_ == null) {
+ groups_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ } else {
+ groupsBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public Builder removeGroups(int index) {
+ if (groupsBuilder_ == null) {
+ ensureGroupsIsMutable();
+ groups_.remove(index);
+ onChanged();
+ } else {
+ groupsBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public agent.CollectorOuterClass.CollectorConfigGroup.Builder getGroupsBuilder(
+ int index) {
+ return getGroupsFieldBuilder().getBuilder(index);
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public agent.CollectorOuterClass.CollectorConfigGroupOrBuilder getGroupsOrBuilder(
+ int index) {
+ if (groupsBuilder_ == null) {
+ return groups_.get(index); } else {
+ return groupsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public java.util.List extends agent.CollectorOuterClass.CollectorConfigGroupOrBuilder>
+ getGroupsOrBuilderList() {
+ if (groupsBuilder_ != null) {
+ return groupsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(groups_);
+ }
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public agent.CollectorOuterClass.CollectorConfigGroup.Builder addGroupsBuilder() {
+ return getGroupsFieldBuilder().addBuilder(
+ agent.CollectorOuterClass.CollectorConfigGroup.getDefaultInstance());
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public agent.CollectorOuterClass.CollectorConfigGroup.Builder addGroupsBuilder(
+ int index) {
+ return getGroupsFieldBuilder().addBuilder(
+ index, agent.CollectorOuterClass.CollectorConfigGroup.getDefaultInstance());
+ }
+ /**
+ * repeated .agent.CollectorConfigGroup groups = 2;
+ */
+ public java.util.List
+ getGroupsBuilderList() {
+ return getGroupsFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.CollectorConfigGroup, agent.CollectorOuterClass.CollectorConfigGroup.Builder, agent.CollectorOuterClass.CollectorConfigGroupOrBuilder>
+ getGroupsFieldBuilder() {
+ if (groupsBuilder_ == null) {
+ groupsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.CollectorConfigGroup, agent.CollectorOuterClass.CollectorConfigGroup.Builder, agent.CollectorOuterClass.CollectorConfigGroupOrBuilder>(
+ groups_,
+ ((bitField0_ & 0x00000002) != 0),
+ getParentForChildren(),
+ isClean());
+ groups_ = null;
+ }
+ return groupsBuilder_;
+ }
+
+ private java.lang.Object requestId_ = "";
+ /**
+ * string request_id = 3;
+ * @return The requestId.
+ */
+ public java.lang.String getRequestId() {
+ java.lang.Object ref = requestId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ requestId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string request_id = 3;
+ * @return The bytes for requestId.
+ */
+ public com.google.protobuf.ByteString
+ getRequestIdBytes() {
+ java.lang.Object ref = requestId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ requestId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string request_id = 3;
+ * @param value The requestId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRequestId(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ requestId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+ /**
+ * string request_id = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearRequestId() {
+ requestId_ = getDefaultInstance().getRequestId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * string request_id = 3;
+ * @param value The bytes for requestId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRequestIdBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ requestId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.CollectorConfig)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.CollectorConfig)
+ private static final agent.CollectorOuterClass.CollectorConfig DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.CollectorConfig();
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfig getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CollectorConfig parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfig getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface CollectorConfigGroupOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.CollectorConfigGroup)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ int getId();
+
+ /**
+ * string group_name = 2;
+ * @return The groupName.
+ */
+ java.lang.String getGroupName();
+ /**
+ * string group_name = 2;
+ * @return The bytes for groupName.
+ */
+ com.google.protobuf.ByteString
+ getGroupNameBytes();
+
+ /**
+ * string group_description = 3;
+ * @return The groupDescription.
+ */
+ java.lang.String getGroupDescription();
+ /**
+ * string group_description = 3;
+ * @return The bytes for groupDescription.
+ */
+ com.google.protobuf.ByteString
+ getGroupDescriptionBytes();
+
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ java.util.List
+ getConfigurationsList();
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ agent.CollectorOuterClass.CollectorGroupConfigurations getConfigurations(int index);
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ int getConfigurationsCount();
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ java.util.List extends agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder>
+ getConfigurationsOrBuilderList();
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder getConfigurationsOrBuilder(
+ int index);
+
+ /**
+ * int32 collector_id = 5;
+ * @return The collectorId.
+ */
+ int getCollectorId();
+ }
+ /**
+ * Protobuf type {@code agent.CollectorConfigGroup}
+ */
+ public static final class CollectorConfigGroup extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.CollectorConfigGroup)
+ CollectorConfigGroupOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ CollectorConfigGroup.class.getName());
+ }
+ // Use CollectorConfigGroup.newBuilder() to construct.
+ private CollectorConfigGroup(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private CollectorConfigGroup() {
+ groupName_ = "";
+ groupDescription_ = "";
+ configurations_ = java.util.Collections.emptyList();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfigGroup_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfigGroup_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorConfigGroup.class, agent.CollectorOuterClass.CollectorConfigGroup.Builder.class);
+ }
+
+ public static final int ID_FIELD_NUMBER = 1;
+ private int id_ = 0;
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public int getId() {
+ return id_;
+ }
+
+ public static final int GROUP_NAME_FIELD_NUMBER = 2;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object groupName_ = "";
+ /**
+ * string group_name = 2;
+ * @return The groupName.
+ */
+ @java.lang.Override
+ public java.lang.String getGroupName() {
+ java.lang.Object ref = groupName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ groupName_ = s;
+ return s;
+ }
+ }
+ /**
+ * string group_name = 2;
+ * @return The bytes for groupName.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getGroupNameBytes() {
+ java.lang.Object ref = groupName_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ groupName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int GROUP_DESCRIPTION_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object groupDescription_ = "";
+ /**
+ * string group_description = 3;
+ * @return The groupDescription.
+ */
+ @java.lang.Override
+ public java.lang.String getGroupDescription() {
+ java.lang.Object ref = groupDescription_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ groupDescription_ = s;
+ return s;
+ }
+ }
+ /**
+ * string group_description = 3;
+ * @return The bytes for groupDescription.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getGroupDescriptionBytes() {
+ java.lang.Object ref = groupDescription_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ groupDescription_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CONFIGURATIONS_FIELD_NUMBER = 4;
+ @SuppressWarnings("serial")
+ private java.util.List configurations_;
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ @java.lang.Override
+ public java.util.List getConfigurationsList() {
+ return configurations_;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ @java.lang.Override
+ public java.util.List extends agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder>
+ getConfigurationsOrBuilderList() {
+ return configurations_;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ @java.lang.Override
+ public int getConfigurationsCount() {
+ return configurations_.size();
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorGroupConfigurations getConfigurations(int index) {
+ return configurations_.get(index);
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder getConfigurationsOrBuilder(
+ int index) {
+ return configurations_.get(index);
+ }
+
+ public static final int COLLECTOR_ID_FIELD_NUMBER = 5;
+ private int collectorId_ = 0;
+ /**
+ * int32 collector_id = 5;
+ * @return The collectorId.
+ */
+ @java.lang.Override
+ public int getCollectorId() {
+ return collectorId_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (id_ != 0) {
+ output.writeInt32(1, id_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(groupName_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, groupName_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(groupDescription_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, groupDescription_);
+ }
+ for (int i = 0; i < configurations_.size(); i++) {
+ output.writeMessage(4, configurations_.get(i));
+ }
+ if (collectorId_ != 0) {
+ output.writeInt32(5, collectorId_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (id_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, id_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(groupName_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, groupName_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(groupDescription_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, groupDescription_);
+ }
+ for (int i = 0; i < configurations_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, configurations_.get(i));
+ }
+ if (collectorId_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(5, collectorId_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.CollectorConfigGroup)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.CollectorConfigGroup other = (agent.CollectorOuterClass.CollectorConfigGroup) obj;
+
+ if (getId()
+ != other.getId()) return false;
+ if (!getGroupName()
+ .equals(other.getGroupName())) return false;
+ if (!getGroupDescription()
+ .equals(other.getGroupDescription())) return false;
+ if (!getConfigurationsList()
+ .equals(other.getConfigurationsList())) return false;
+ if (getCollectorId()
+ != other.getCollectorId()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId();
+ hash = (37 * hash) + GROUP_NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getGroupName().hashCode();
+ hash = (37 * hash) + GROUP_DESCRIPTION_FIELD_NUMBER;
+ hash = (53 * hash) + getGroupDescription().hashCode();
+ if (getConfigurationsCount() > 0) {
+ hash = (37 * hash) + CONFIGURATIONS_FIELD_NUMBER;
+ hash = (53 * hash) + getConfigurationsList().hashCode();
+ }
+ hash = (37 * hash) + COLLECTOR_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getCollectorId();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorConfigGroup parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.CollectorConfigGroup prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.CollectorConfigGroup}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.CollectorConfigGroup)
+ agent.CollectorOuterClass.CollectorConfigGroupOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfigGroup_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfigGroup_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorConfigGroup.class, agent.CollectorOuterClass.CollectorConfigGroup.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.CollectorConfigGroup.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ id_ = 0;
+ groupName_ = "";
+ groupDescription_ = "";
+ if (configurationsBuilder_ == null) {
+ configurations_ = java.util.Collections.emptyList();
+ } else {
+ configurations_ = null;
+ configurationsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000008);
+ collectorId_ = 0;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorConfigGroup_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigGroup getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.CollectorConfigGroup.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigGroup build() {
+ agent.CollectorOuterClass.CollectorConfigGroup result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigGroup buildPartial() {
+ agent.CollectorOuterClass.CollectorConfigGroup result = new agent.CollectorOuterClass.CollectorConfigGroup(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(agent.CollectorOuterClass.CollectorConfigGroup result) {
+ if (configurationsBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) != 0)) {
+ configurations_ = java.util.Collections.unmodifiableList(configurations_);
+ bitField0_ = (bitField0_ & ~0x00000008);
+ }
+ result.configurations_ = configurations_;
+ } else {
+ result.configurations_ = configurationsBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.CollectorConfigGroup result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.id_ = id_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.groupName_ = groupName_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.groupDescription_ = groupDescription_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.collectorId_ = collectorId_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.CollectorConfigGroup) {
+ return mergeFrom((agent.CollectorOuterClass.CollectorConfigGroup)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.CollectorConfigGroup other) {
+ if (other == agent.CollectorOuterClass.CollectorConfigGroup.getDefaultInstance()) return this;
+ if (other.getId() != 0) {
+ setId(other.getId());
+ }
+ if (!other.getGroupName().isEmpty()) {
+ groupName_ = other.groupName_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (!other.getGroupDescription().isEmpty()) {
+ groupDescription_ = other.groupDescription_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ if (configurationsBuilder_ == null) {
+ if (!other.configurations_.isEmpty()) {
+ if (configurations_.isEmpty()) {
+ configurations_ = other.configurations_;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ } else {
+ ensureConfigurationsIsMutable();
+ configurations_.addAll(other.configurations_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.configurations_.isEmpty()) {
+ if (configurationsBuilder_.isEmpty()) {
+ configurationsBuilder_.dispose();
+ configurationsBuilder_ = null;
+ configurations_ = other.configurations_;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ configurationsBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+ getConfigurationsFieldBuilder() : null;
+ } else {
+ configurationsBuilder_.addAllMessages(other.configurations_);
+ }
+ }
+ }
+ if (other.getCollectorId() != 0) {
+ setCollectorId(other.getCollectorId());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ id_ = input.readInt32();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 8
+ case 18: {
+ groupName_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26: {
+ groupDescription_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 34: {
+ agent.CollectorOuterClass.CollectorGroupConfigurations m =
+ input.readMessage(
+ agent.CollectorOuterClass.CollectorGroupConfigurations.parser(),
+ extensionRegistry);
+ if (configurationsBuilder_ == null) {
+ ensureConfigurationsIsMutable();
+ configurations_.add(m);
+ } else {
+ configurationsBuilder_.addMessage(m);
+ }
+ break;
+ } // case 34
+ case 40: {
+ collectorId_ = input.readInt32();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 40
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private int id_ ;
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public int getId() {
+ return id_;
+ }
+ /**
+ * int32 id = 1;
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(int value) {
+
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 id = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ id_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object groupName_ = "";
+ /**
+ * string group_name = 2;
+ * @return The groupName.
+ */
+ public java.lang.String getGroupName() {
+ java.lang.Object ref = groupName_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ groupName_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string group_name = 2;
+ * @return The bytes for groupName.
+ */
+ public com.google.protobuf.ByteString
+ getGroupNameBytes() {
+ java.lang.Object ref = groupName_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ groupName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string group_name = 2;
+ * @param value The groupName to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGroupName(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ groupName_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * string group_name = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearGroupName() {
+ groupName_ = getDefaultInstance().getGroupName();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+ /**
+ * string group_name = 2;
+ * @param value The bytes for groupName to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGroupNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ groupName_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object groupDescription_ = "";
+ /**
+ * string group_description = 3;
+ * @return The groupDescription.
+ */
+ public java.lang.String getGroupDescription() {
+ java.lang.Object ref = groupDescription_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ groupDescription_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string group_description = 3;
+ * @return The bytes for groupDescription.
+ */
+ public com.google.protobuf.ByteString
+ getGroupDescriptionBytes() {
+ java.lang.Object ref = groupDescription_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ groupDescription_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string group_description = 3;
+ * @param value The groupDescription to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGroupDescription(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ groupDescription_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+ /**
+ * string group_description = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearGroupDescription() {
+ groupDescription_ = getDefaultInstance().getGroupDescription();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * string group_description = 3;
+ * @param value The bytes for groupDescription to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGroupDescriptionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ groupDescription_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.util.List configurations_ =
+ java.util.Collections.emptyList();
+ private void ensureConfigurationsIsMutable() {
+ if (!((bitField0_ & 0x00000008) != 0)) {
+ configurations_ = new java.util.ArrayList(configurations_);
+ bitField0_ |= 0x00000008;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.CollectorGroupConfigurations, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder, agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder> configurationsBuilder_;
+
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public java.util.List getConfigurationsList() {
+ if (configurationsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(configurations_);
+ } else {
+ return configurationsBuilder_.getMessageList();
+ }
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public int getConfigurationsCount() {
+ if (configurationsBuilder_ == null) {
+ return configurations_.size();
+ } else {
+ return configurationsBuilder_.getCount();
+ }
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public agent.CollectorOuterClass.CollectorGroupConfigurations getConfigurations(int index) {
+ if (configurationsBuilder_ == null) {
+ return configurations_.get(index);
+ } else {
+ return configurationsBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder setConfigurations(
+ int index, agent.CollectorOuterClass.CollectorGroupConfigurations value) {
+ if (configurationsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureConfigurationsIsMutable();
+ configurations_.set(index, value);
+ onChanged();
+ } else {
+ configurationsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder setConfigurations(
+ int index, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder builderForValue) {
+ if (configurationsBuilder_ == null) {
+ ensureConfigurationsIsMutable();
+ configurations_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ configurationsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder addConfigurations(agent.CollectorOuterClass.CollectorGroupConfigurations value) {
+ if (configurationsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureConfigurationsIsMutable();
+ configurations_.add(value);
+ onChanged();
+ } else {
+ configurationsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder addConfigurations(
+ int index, agent.CollectorOuterClass.CollectorGroupConfigurations value) {
+ if (configurationsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureConfigurationsIsMutable();
+ configurations_.add(index, value);
+ onChanged();
+ } else {
+ configurationsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder addConfigurations(
+ agent.CollectorOuterClass.CollectorGroupConfigurations.Builder builderForValue) {
+ if (configurationsBuilder_ == null) {
+ ensureConfigurationsIsMutable();
+ configurations_.add(builderForValue.build());
+ onChanged();
+ } else {
+ configurationsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder addConfigurations(
+ int index, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder builderForValue) {
+ if (configurationsBuilder_ == null) {
+ ensureConfigurationsIsMutable();
+ configurations_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ configurationsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder addAllConfigurations(
+ java.lang.Iterable extends agent.CollectorOuterClass.CollectorGroupConfigurations> values) {
+ if (configurationsBuilder_ == null) {
+ ensureConfigurationsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, configurations_);
+ onChanged();
+ } else {
+ configurationsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder clearConfigurations() {
+ if (configurationsBuilder_ == null) {
+ configurations_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ } else {
+ configurationsBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public Builder removeConfigurations(int index) {
+ if (configurationsBuilder_ == null) {
+ ensureConfigurationsIsMutable();
+ configurations_.remove(index);
+ onChanged();
+ } else {
+ configurationsBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public agent.CollectorOuterClass.CollectorGroupConfigurations.Builder getConfigurationsBuilder(
+ int index) {
+ return getConfigurationsFieldBuilder().getBuilder(index);
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder getConfigurationsOrBuilder(
+ int index) {
+ if (configurationsBuilder_ == null) {
+ return configurations_.get(index); } else {
+ return configurationsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public java.util.List extends agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder>
+ getConfigurationsOrBuilderList() {
+ if (configurationsBuilder_ != null) {
+ return configurationsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(configurations_);
+ }
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public agent.CollectorOuterClass.CollectorGroupConfigurations.Builder addConfigurationsBuilder() {
+ return getConfigurationsFieldBuilder().addBuilder(
+ agent.CollectorOuterClass.CollectorGroupConfigurations.getDefaultInstance());
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public agent.CollectorOuterClass.CollectorGroupConfigurations.Builder addConfigurationsBuilder(
+ int index) {
+ return getConfigurationsFieldBuilder().addBuilder(
+ index, agent.CollectorOuterClass.CollectorGroupConfigurations.getDefaultInstance());
+ }
+ /**
+ * repeated .agent.CollectorGroupConfigurations configurations = 4;
+ */
+ public java.util.List
+ getConfigurationsBuilderList() {
+ return getConfigurationsFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.CollectorGroupConfigurations, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder, agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder>
+ getConfigurationsFieldBuilder() {
+ if (configurationsBuilder_ == null) {
+ configurationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+ agent.CollectorOuterClass.CollectorGroupConfigurations, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder, agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder>(
+ configurations_,
+ ((bitField0_ & 0x00000008) != 0),
+ getParentForChildren(),
+ isClean());
+ configurations_ = null;
+ }
+ return configurationsBuilder_;
+ }
+
+ private int collectorId_ ;
+ /**
+ * int32 collector_id = 5;
+ * @return The collectorId.
+ */
+ @java.lang.Override
+ public int getCollectorId() {
+ return collectorId_;
+ }
+ /**
+ * int32 collector_id = 5;
+ * @param value The collectorId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCollectorId(int value) {
+
+ collectorId_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 collector_id = 5;
+ * @return This builder for chaining.
+ */
+ public Builder clearCollectorId() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ collectorId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.CollectorConfigGroup)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.CollectorConfigGroup)
+ private static final agent.CollectorOuterClass.CollectorConfigGroup DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.CollectorConfigGroup();
+ }
+
+ public static agent.CollectorOuterClass.CollectorConfigGroup getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CollectorConfigGroup parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorConfigGroup getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface CollectorGroupConfigurationsOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.CollectorGroupConfigurations)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ int getId();
+
+ /**
+ * int32 group_id = 2;
+ * @return The groupId.
+ */
+ int getGroupId();
+
+ /**
+ * string conf_key = 3;
+ * @return The confKey.
+ */
+ java.lang.String getConfKey();
+ /**
+ * string conf_key = 3;
+ * @return The bytes for confKey.
+ */
+ com.google.protobuf.ByteString
+ getConfKeyBytes();
+
+ /**
+ * string conf_value = 4;
+ * @return The confValue.
+ */
+ java.lang.String getConfValue();
+ /**
+ * string conf_value = 4;
+ * @return The bytes for confValue.
+ */
+ com.google.protobuf.ByteString
+ getConfValueBytes();
+
+ /**
+ * string conf_name = 5;
+ * @return The confName.
+ */
+ java.lang.String getConfName();
+ /**
+ * string conf_name = 5;
+ * @return The bytes for confName.
+ */
+ com.google.protobuf.ByteString
+ getConfNameBytes();
+
+ /**
+ * string conf_description = 6;
+ * @return The confDescription.
+ */
+ java.lang.String getConfDescription();
+ /**
+ * string conf_description = 6;
+ * @return The bytes for confDescription.
+ */
+ com.google.protobuf.ByteString
+ getConfDescriptionBytes();
+
+ /**
+ * string conf_data_type = 7;
+ * @return The confDataType.
+ */
+ java.lang.String getConfDataType();
+ /**
+ * string conf_data_type = 7;
+ * @return The bytes for confDataType.
+ */
+ com.google.protobuf.ByteString
+ getConfDataTypeBytes();
+
+ /**
+ * bool conf_required = 8;
+ * @return The confRequired.
+ */
+ boolean getConfRequired();
+ }
+ /**
+ * Protobuf type {@code agent.CollectorGroupConfigurations}
+ */
+ public static final class CollectorGroupConfigurations extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.CollectorGroupConfigurations)
+ CollectorGroupConfigurationsOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ CollectorGroupConfigurations.class.getName());
+ }
+ // Use CollectorGroupConfigurations.newBuilder() to construct.
+ private CollectorGroupConfigurations(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private CollectorGroupConfigurations() {
+ confKey_ = "";
+ confValue_ = "";
+ confName_ = "";
+ confDescription_ = "";
+ confDataType_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorGroupConfigurations_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorGroupConfigurations_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorGroupConfigurations.class, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder.class);
+ }
+
+ public static final int ID_FIELD_NUMBER = 1;
+ private int id_ = 0;
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public int getId() {
+ return id_;
+ }
+
+ public static final int GROUP_ID_FIELD_NUMBER = 2;
+ private int groupId_ = 0;
+ /**
+ * int32 group_id = 2;
+ * @return The groupId.
+ */
+ @java.lang.Override
+ public int getGroupId() {
+ return groupId_;
+ }
+
+ public static final int CONF_KEY_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object confKey_ = "";
+ /**
+ * string conf_key = 3;
+ * @return The confKey.
+ */
+ @java.lang.Override
+ public java.lang.String getConfKey() {
+ java.lang.Object ref = confKey_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confKey_ = s;
+ return s;
+ }
+ }
+ /**
+ * string conf_key = 3;
+ * @return The bytes for confKey.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getConfKeyBytes() {
+ java.lang.Object ref = confKey_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confKey_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CONF_VALUE_FIELD_NUMBER = 4;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object confValue_ = "";
+ /**
+ * string conf_value = 4;
+ * @return The confValue.
+ */
+ @java.lang.Override
+ public java.lang.String getConfValue() {
+ java.lang.Object ref = confValue_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confValue_ = s;
+ return s;
+ }
+ }
+ /**
+ * string conf_value = 4;
+ * @return The bytes for confValue.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getConfValueBytes() {
+ java.lang.Object ref = confValue_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confValue_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CONF_NAME_FIELD_NUMBER = 5;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object confName_ = "";
+ /**
+ * string conf_name = 5;
+ * @return The confName.
+ */
+ @java.lang.Override
+ public java.lang.String getConfName() {
+ java.lang.Object ref = confName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confName_ = s;
+ return s;
+ }
+ }
+ /**
+ * string conf_name = 5;
+ * @return The bytes for confName.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getConfNameBytes() {
+ java.lang.Object ref = confName_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CONF_DESCRIPTION_FIELD_NUMBER = 6;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object confDescription_ = "";
+ /**
+ * string conf_description = 6;
+ * @return The confDescription.
+ */
+ @java.lang.Override
+ public java.lang.String getConfDescription() {
+ java.lang.Object ref = confDescription_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confDescription_ = s;
+ return s;
+ }
+ }
+ /**
+ * string conf_description = 6;
+ * @return The bytes for confDescription.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getConfDescriptionBytes() {
+ java.lang.Object ref = confDescription_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confDescription_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CONF_DATA_TYPE_FIELD_NUMBER = 7;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object confDataType_ = "";
+ /**
+ * string conf_data_type = 7;
+ * @return The confDataType.
+ */
+ @java.lang.Override
+ public java.lang.String getConfDataType() {
+ java.lang.Object ref = confDataType_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confDataType_ = s;
+ return s;
+ }
+ }
+ /**
+ * string conf_data_type = 7;
+ * @return The bytes for confDataType.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getConfDataTypeBytes() {
+ java.lang.Object ref = confDataType_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confDataType_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CONF_REQUIRED_FIELD_NUMBER = 8;
+ private boolean confRequired_ = false;
+ /**
+ * bool conf_required = 8;
+ * @return The confRequired.
+ */
+ @java.lang.Override
+ public boolean getConfRequired() {
+ return confRequired_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (id_ != 0) {
+ output.writeInt32(1, id_);
+ }
+ if (groupId_ != 0) {
+ output.writeInt32(2, groupId_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confKey_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, confKey_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confValue_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 4, confValue_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confName_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 5, confName_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confDescription_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 6, confDescription_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confDataType_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 7, confDataType_);
+ }
+ if (confRequired_ != false) {
+ output.writeBool(8, confRequired_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (id_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, id_);
+ }
+ if (groupId_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, groupId_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confKey_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, confKey_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confValue_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(4, confValue_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confName_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(5, confName_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confDescription_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(6, confDescription_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(confDataType_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(7, confDataType_);
+ }
+ if (confRequired_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(8, confRequired_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.CollectorGroupConfigurations)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.CollectorGroupConfigurations other = (agent.CollectorOuterClass.CollectorGroupConfigurations) obj;
+
+ if (getId()
+ != other.getId()) return false;
+ if (getGroupId()
+ != other.getGroupId()) return false;
+ if (!getConfKey()
+ .equals(other.getConfKey())) return false;
+ if (!getConfValue()
+ .equals(other.getConfValue())) return false;
+ if (!getConfName()
+ .equals(other.getConfName())) return false;
+ if (!getConfDescription()
+ .equals(other.getConfDescription())) return false;
+ if (!getConfDataType()
+ .equals(other.getConfDataType())) return false;
+ if (getConfRequired()
+ != other.getConfRequired()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId();
+ hash = (37 * hash) + GROUP_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getGroupId();
+ hash = (37 * hash) + CONF_KEY_FIELD_NUMBER;
+ hash = (53 * hash) + getConfKey().hashCode();
+ hash = (37 * hash) + CONF_VALUE_FIELD_NUMBER;
+ hash = (53 * hash) + getConfValue().hashCode();
+ hash = (37 * hash) + CONF_NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getConfName().hashCode();
+ hash = (37 * hash) + CONF_DESCRIPTION_FIELD_NUMBER;
+ hash = (53 * hash) + getConfDescription().hashCode();
+ hash = (37 * hash) + CONF_DATA_TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + getConfDataType().hashCode();
+ hash = (37 * hash) + CONF_REQUIRED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getConfRequired());
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.CollectorGroupConfigurations prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.CollectorGroupConfigurations}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.CollectorGroupConfigurations)
+ agent.CollectorOuterClass.CollectorGroupConfigurationsOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorGroupConfigurations_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorGroupConfigurations_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.CollectorGroupConfigurations.class, agent.CollectorOuterClass.CollectorGroupConfigurations.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.CollectorGroupConfigurations.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ id_ = 0;
+ groupId_ = 0;
+ confKey_ = "";
+ confValue_ = "";
+ confName_ = "";
+ confDescription_ = "";
+ confDataType_ = "";
+ confRequired_ = false;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_CollectorGroupConfigurations_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorGroupConfigurations getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.CollectorGroupConfigurations.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorGroupConfigurations build() {
+ agent.CollectorOuterClass.CollectorGroupConfigurations result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorGroupConfigurations buildPartial() {
+ agent.CollectorOuterClass.CollectorGroupConfigurations result = new agent.CollectorOuterClass.CollectorGroupConfigurations(this);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.CollectorGroupConfigurations result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.id_ = id_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.groupId_ = groupId_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.confKey_ = confKey_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.confValue_ = confValue_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.confName_ = confName_;
+ }
+ if (((from_bitField0_ & 0x00000020) != 0)) {
+ result.confDescription_ = confDescription_;
+ }
+ if (((from_bitField0_ & 0x00000040) != 0)) {
+ result.confDataType_ = confDataType_;
+ }
+ if (((from_bitField0_ & 0x00000080) != 0)) {
+ result.confRequired_ = confRequired_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.CollectorGroupConfigurations) {
+ return mergeFrom((agent.CollectorOuterClass.CollectorGroupConfigurations)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.CollectorGroupConfigurations other) {
+ if (other == agent.CollectorOuterClass.CollectorGroupConfigurations.getDefaultInstance()) return this;
+ if (other.getId() != 0) {
+ setId(other.getId());
+ }
+ if (other.getGroupId() != 0) {
+ setGroupId(other.getGroupId());
+ }
+ if (!other.getConfKey().isEmpty()) {
+ confKey_ = other.confKey_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ if (!other.getConfValue().isEmpty()) {
+ confValue_ = other.confValue_;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ if (!other.getConfName().isEmpty()) {
+ confName_ = other.confName_;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ if (!other.getConfDescription().isEmpty()) {
+ confDescription_ = other.confDescription_;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ }
+ if (!other.getConfDataType().isEmpty()) {
+ confDataType_ = other.confDataType_;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ }
+ if (other.getConfRequired() != false) {
+ setConfRequired(other.getConfRequired());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ id_ = input.readInt32();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 8
+ case 16: {
+ groupId_ = input.readInt32();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ case 26: {
+ confKey_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 34: {
+ confValue_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 34
+ case 42: {
+ confName_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 42
+ case 50: {
+ confDescription_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000020;
+ break;
+ } // case 50
+ case 58: {
+ confDataType_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000040;
+ break;
+ } // case 58
+ case 64: {
+ confRequired_ = input.readBool();
+ bitField0_ |= 0x00000080;
+ break;
+ } // case 64
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private int id_ ;
+ /**
+ * int32 id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public int getId() {
+ return id_;
+ }
+ /**
+ * int32 id = 1;
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(int value) {
+
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 id = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ id_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int groupId_ ;
+ /**
+ * int32 group_id = 2;
+ * @return The groupId.
+ */
+ @java.lang.Override
+ public int getGroupId() {
+ return groupId_;
+ }
+ /**
+ * int32 group_id = 2;
+ * @param value The groupId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setGroupId(int value) {
+
+ groupId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * int32 group_id = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearGroupId() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ groupId_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object confKey_ = "";
+ /**
+ * string conf_key = 3;
+ * @return The confKey.
+ */
+ public java.lang.String getConfKey() {
+ java.lang.Object ref = confKey_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confKey_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string conf_key = 3;
+ * @return The bytes for confKey.
+ */
+ public com.google.protobuf.ByteString
+ getConfKeyBytes() {
+ java.lang.Object ref = confKey_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confKey_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string conf_key = 3;
+ * @param value The confKey to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfKey(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ confKey_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_key = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearConfKey() {
+ confKey_ = getDefaultInstance().getConfKey();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_key = 3;
+ * @param value The bytes for confKey to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfKeyBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ confKey_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object confValue_ = "";
+ /**
+ * string conf_value = 4;
+ * @return The confValue.
+ */
+ public java.lang.String getConfValue() {
+ java.lang.Object ref = confValue_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confValue_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string conf_value = 4;
+ * @return The bytes for confValue.
+ */
+ public com.google.protobuf.ByteString
+ getConfValueBytes() {
+ java.lang.Object ref = confValue_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confValue_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string conf_value = 4;
+ * @param value The confValue to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfValue(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ confValue_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_value = 4;
+ * @return This builder for chaining.
+ */
+ public Builder clearConfValue() {
+ confValue_ = getDefaultInstance().getConfValue();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_value = 4;
+ * @param value The bytes for confValue to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfValueBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ confValue_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object confName_ = "";
+ /**
+ * string conf_name = 5;
+ * @return The confName.
+ */
+ public java.lang.String getConfName() {
+ java.lang.Object ref = confName_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confName_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string conf_name = 5;
+ * @return The bytes for confName.
+ */
+ public com.google.protobuf.ByteString
+ getConfNameBytes() {
+ java.lang.Object ref = confName_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string conf_name = 5;
+ * @param value The confName to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfName(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ confName_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_name = 5;
+ * @return This builder for chaining.
+ */
+ public Builder clearConfName() {
+ confName_ = getDefaultInstance().getConfName();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_name = 5;
+ * @param value The bytes for confName to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ confName_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object confDescription_ = "";
+ /**
+ * string conf_description = 6;
+ * @return The confDescription.
+ */
+ public java.lang.String getConfDescription() {
+ java.lang.Object ref = confDescription_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confDescription_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string conf_description = 6;
+ * @return The bytes for confDescription.
+ */
+ public com.google.protobuf.ByteString
+ getConfDescriptionBytes() {
+ java.lang.Object ref = confDescription_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confDescription_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string conf_description = 6;
+ * @param value The confDescription to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfDescription(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ confDescription_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_description = 6;
+ * @return This builder for chaining.
+ */
+ public Builder clearConfDescription() {
+ confDescription_ = getDefaultInstance().getConfDescription();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_description = 6;
+ * @param value The bytes for confDescription to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfDescriptionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ confDescription_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object confDataType_ = "";
+ /**
+ * string conf_data_type = 7;
+ * @return The confDataType.
+ */
+ public java.lang.String getConfDataType() {
+ java.lang.Object ref = confDataType_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ confDataType_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string conf_data_type = 7;
+ * @return The bytes for confDataType.
+ */
+ public com.google.protobuf.ByteString
+ getConfDataTypeBytes() {
+ java.lang.Object ref = confDataType_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ confDataType_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string conf_data_type = 7;
+ * @param value The confDataType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfDataType(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ confDataType_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_data_type = 7;
+ * @return This builder for chaining.
+ */
+ public Builder clearConfDataType() {
+ confDataType_ = getDefaultInstance().getConfDataType();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ return this;
+ }
+ /**
+ * string conf_data_type = 7;
+ * @param value The bytes for confDataType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfDataTypeBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ confDataType_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ private boolean confRequired_ ;
+ /**
+ * bool conf_required = 8;
+ * @return The confRequired.
+ */
+ @java.lang.Override
+ public boolean getConfRequired() {
+ return confRequired_;
+ }
+ /**
+ * bool conf_required = 8;
+ * @param value The confRequired to set.
+ * @return This builder for chaining.
+ */
+ public Builder setConfRequired(boolean value) {
+
+ confRequired_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+ /**
+ * bool conf_required = 8;
+ * @return This builder for chaining.
+ */
+ public Builder clearConfRequired() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ confRequired_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.CollectorGroupConfigurations)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.CollectorGroupConfigurations)
+ private static final agent.CollectorOuterClass.CollectorGroupConfigurations DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.CollectorGroupConfigurations();
+ }
+
+ public static agent.CollectorOuterClass.CollectorGroupConfigurations getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CollectorGroupConfigurations parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorGroupConfigurations getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ConfigKnowledgeOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.ConfigKnowledge)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * string accepted = 1;
+ * @return The accepted.
+ */
+ java.lang.String getAccepted();
+ /**
+ * string accepted = 1;
+ * @return The bytes for accepted.
+ */
+ com.google.protobuf.ByteString
+ getAcceptedBytes();
+
+ /**
+ * string request_id = 2;
+ * @return The requestId.
+ */
+ java.lang.String getRequestId();
+ /**
+ * string request_id = 2;
+ * @return The bytes for requestId.
+ */
+ com.google.protobuf.ByteString
+ getRequestIdBytes();
+ }
+ /**
+ * Protobuf type {@code agent.ConfigKnowledge}
+ */
+ public static final class ConfigKnowledge extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.ConfigKnowledge)
+ ConfigKnowledgeOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ ConfigKnowledge.class.getName());
+ }
+ // Use ConfigKnowledge.newBuilder() to construct.
+ private ConfigKnowledge(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private ConfigKnowledge() {
+ accepted_ = "";
+ requestId_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigKnowledge_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigKnowledge_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.ConfigKnowledge.class, agent.CollectorOuterClass.ConfigKnowledge.Builder.class);
+ }
+
+ public static final int ACCEPTED_FIELD_NUMBER = 1;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object accepted_ = "";
+ /**
+ * string accepted = 1;
+ * @return The accepted.
+ */
+ @java.lang.Override
+ public java.lang.String getAccepted() {
+ java.lang.Object ref = accepted_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ accepted_ = s;
+ return s;
+ }
+ }
+ /**
+ * string accepted = 1;
+ * @return The bytes for accepted.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getAcceptedBytes() {
+ java.lang.Object ref = accepted_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ accepted_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int REQUEST_ID_FIELD_NUMBER = 2;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object requestId_ = "";
+ /**
+ * string request_id = 2;
+ * @return The requestId.
+ */
+ @java.lang.Override
+ public java.lang.String getRequestId() {
+ java.lang.Object ref = requestId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ requestId_ = s;
+ return s;
+ }
+ }
+ /**
+ * string request_id = 2;
+ * @return The bytes for requestId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getRequestIdBytes() {
+ java.lang.Object ref = requestId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ requestId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(accepted_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, accepted_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, requestId_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(accepted_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, accepted_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, requestId_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.ConfigKnowledge)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.ConfigKnowledge other = (agent.CollectorOuterClass.ConfigKnowledge) obj;
+
+ if (!getAccepted()
+ .equals(other.getAccepted())) return false;
+ if (!getRequestId()
+ .equals(other.getRequestId())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ACCEPTED_FIELD_NUMBER;
+ hash = (53 * hash) + getAccepted().hashCode();
+ hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getRequestId().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.ConfigKnowledge parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.ConfigKnowledge parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.ConfigKnowledge parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.ConfigKnowledge prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.ConfigKnowledge}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.ConfigKnowledge)
+ agent.CollectorOuterClass.ConfigKnowledgeOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigKnowledge_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigKnowledge_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.ConfigKnowledge.class, agent.CollectorOuterClass.ConfigKnowledge.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.ConfigKnowledge.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ accepted_ = "";
+ requestId_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigKnowledge_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledge getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledge build() {
+ agent.CollectorOuterClass.ConfigKnowledge result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledge buildPartial() {
+ agent.CollectorOuterClass.ConfigKnowledge result = new agent.CollectorOuterClass.ConfigKnowledge(this);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.ConfigKnowledge result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.accepted_ = accepted_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.requestId_ = requestId_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.ConfigKnowledge) {
+ return mergeFrom((agent.CollectorOuterClass.ConfigKnowledge)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.ConfigKnowledge other) {
+ if (other == agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance()) return this;
+ if (!other.getAccepted().isEmpty()) {
+ accepted_ = other.accepted_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (!other.getRequestId().isEmpty()) {
+ requestId_ = other.requestId_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10: {
+ accepted_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18: {
+ requestId_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private java.lang.Object accepted_ = "";
+ /**
+ * string accepted = 1;
+ * @return The accepted.
+ */
+ public java.lang.String getAccepted() {
+ java.lang.Object ref = accepted_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ accepted_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string accepted = 1;
+ * @return The bytes for accepted.
+ */
+ public com.google.protobuf.ByteString
+ getAcceptedBytes() {
+ java.lang.Object ref = accepted_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ accepted_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string accepted = 1;
+ * @param value The accepted to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAccepted(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ accepted_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * string accepted = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearAccepted() {
+ accepted_ = getDefaultInstance().getAccepted();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+ /**
+ * string accepted = 1;
+ * @param value The bytes for accepted to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAcceptedBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ accepted_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object requestId_ = "";
+ /**
+ * string request_id = 2;
+ * @return The requestId.
+ */
+ public java.lang.String getRequestId() {
+ java.lang.Object ref = requestId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ requestId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string request_id = 2;
+ * @return The bytes for requestId.
+ */
+ public com.google.protobuf.ByteString
+ getRequestIdBytes() {
+ java.lang.Object ref = requestId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ requestId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string request_id = 2;
+ * @param value The requestId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRequestId(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ requestId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * string request_id = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearRequestId() {
+ requestId_ = getDefaultInstance().getRequestId();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+ /**
+ * string request_id = 2;
+ * @param value The bytes for requestId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRequestIdBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ requestId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.ConfigKnowledge)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.ConfigKnowledge)
+ private static final agent.CollectorOuterClass.ConfigKnowledge DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.ConfigKnowledge();
+ }
+
+ public static agent.CollectorOuterClass.ConfigKnowledge getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ConfigKnowledge parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigKnowledge getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ public interface ConfigRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:agent.ConfigRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return The enum numeric value on the wire for module.
+ */
+ int getModuleValue();
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return The module.
+ */
+ agent.CollectorOuterClass.CollectorModule getModule();
+ }
+ /**
+ * Protobuf type {@code agent.ConfigRequest}
+ */
+ public static final class ConfigRequest extends
+ com.google.protobuf.GeneratedMessage implements
+ // @@protoc_insertion_point(message_implements:agent.ConfigRequest)
+ ConfigRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 29,
+ /* patch= */ 3,
+ /* suffix= */ "",
+ ConfigRequest.class.getName());
+ }
+ // Use ConfigRequest.newBuilder() to construct.
+ private ConfigRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+ private ConfigRequest() {
+ module_ = 0;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.ConfigRequest.class, agent.CollectorOuterClass.ConfigRequest.Builder.class);
+ }
+
+ public static final int MODULE_FIELD_NUMBER = 1;
+ private int module_ = 0;
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return The enum numeric value on the wire for module.
+ */
+ @java.lang.Override public int getModuleValue() {
+ return module_;
+ }
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return The module.
+ */
+ @java.lang.Override public agent.CollectorOuterClass.CollectorModule getModule() {
+ agent.CollectorOuterClass.CollectorModule result = agent.CollectorOuterClass.CollectorModule.forNumber(module_);
+ return result == null ? agent.CollectorOuterClass.CollectorModule.UNRECOGNIZED : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (module_ != agent.CollectorOuterClass.CollectorModule.AS_400.getNumber()) {
+ output.writeEnum(1, module_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (module_ != agent.CollectorOuterClass.CollectorModule.AS_400.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, module_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof agent.CollectorOuterClass.ConfigRequest)) {
+ return super.equals(obj);
+ }
+ agent.CollectorOuterClass.ConfigRequest other = (agent.CollectorOuterClass.ConfigRequest) obj;
+
+ if (module_ != other.module_) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + MODULE_FIELD_NUMBER;
+ hash = (53 * hash) + module_;
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public static agent.CollectorOuterClass.ConfigRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static agent.CollectorOuterClass.ConfigRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input);
+ }
+ public static agent.CollectorOuterClass.ConfigRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(agent.CollectorOuterClass.ConfigRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code agent.ConfigRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder implements
+ // @@protoc_insertion_point(builder_implements:agent.ConfigRequest)
+ agent.CollectorOuterClass.ConfigRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ agent.CollectorOuterClass.ConfigRequest.class, agent.CollectorOuterClass.ConfigRequest.Builder.class);
+ }
+
+ // Construct using agent.CollectorOuterClass.ConfigRequest.newBuilder()
+ private Builder() {
+
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+
+ }
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ module_ = 0;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return agent.CollectorOuterClass.internal_static_agent_ConfigRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigRequest getDefaultInstanceForType() {
+ return agent.CollectorOuterClass.ConfigRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigRequest build() {
+ agent.CollectorOuterClass.ConfigRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigRequest buildPartial() {
+ agent.CollectorOuterClass.ConfigRequest result = new agent.CollectorOuterClass.ConfigRequest(this);
+ if (bitField0_ != 0) { buildPartial0(result); }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(agent.CollectorOuterClass.ConfigRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.module_ = module_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof agent.CollectorOuterClass.ConfigRequest) {
+ return mergeFrom((agent.CollectorOuterClass.ConfigRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(agent.CollectorOuterClass.ConfigRequest other) {
+ if (other == agent.CollectorOuterClass.ConfigRequest.getDefaultInstance()) return this;
+ if (other.module_ != 0) {
+ setModuleValue(other.getModuleValue());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ module_ = input.readEnum();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 8
+ default: {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+ private int bitField0_;
+
+ private int module_ = 0;
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return The enum numeric value on the wire for module.
+ */
+ @java.lang.Override public int getModuleValue() {
+ return module_;
+ }
+ /**
+ * .agent.CollectorModule module = 1;
+ * @param value The enum numeric value on the wire for module to set.
+ * @return This builder for chaining.
+ */
+ public Builder setModuleValue(int value) {
+ module_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return The module.
+ */
+ @java.lang.Override
+ public agent.CollectorOuterClass.CollectorModule getModule() {
+ agent.CollectorOuterClass.CollectorModule result = agent.CollectorOuterClass.CollectorModule.forNumber(module_);
+ return result == null ? agent.CollectorOuterClass.CollectorModule.UNRECOGNIZED : result;
+ }
+ /**
+ * .agent.CollectorModule module = 1;
+ * @param value The module to set.
+ * @return This builder for chaining.
+ */
+ public Builder setModule(agent.CollectorOuterClass.CollectorModule value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ module_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * .agent.CollectorModule module = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearModule() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ module_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:agent.ConfigRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:agent.ConfigRequest)
+ private static final agent.CollectorOuterClass.ConfigRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new agent.CollectorOuterClass.ConfigRequest();
+ }
+
+ public static agent.CollectorOuterClass.ConfigRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ConfigRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public agent.CollectorOuterClass.ConfigRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_RegisterRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_RegisterRequest_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_ListCollectorResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_ListCollectorResponse_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_Collector_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_Collector_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_CollectorMessages_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_CollectorMessages_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_CollectorConfig_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_CollectorConfig_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_CollectorConfigGroup_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_CollectorConfigGroup_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_CollectorGroupConfigurations_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_CollectorGroupConfigurations_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_ConfigKnowledge_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_ConfigKnowledge_fieldAccessorTable;
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_agent_ConfigRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_agent_ConfigRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\017collector.proto\022\005agent\032\014common.proto\"k" +
+ "\n\017RegisterRequest\022\n\n\002ip\030\001 \001(\t\022\020\n\010hostnam" +
+ "e\030\002 \001(\t\022\017\n\007version\030\003 \001(\t\022)\n\tcollector\030\004 " +
+ "\001(\0162\026.agent.CollectorModule\"F\n\025ListColle" +
+ "ctorResponse\022\036\n\004rows\030\001 \003(\0132\020.agent.Colle" +
+ "ctor\022\r\n\005total\030\002 \001(\005\"\267\001\n\tCollector\022\n\n\002id\030" +
+ "\001 \001(\005\022\035\n\006status\030\002 \001(\0162\r.agent.Status\022\025\n\r" +
+ "collector_key\030\003 \001(\t\022\n\n\002ip\030\004 \001(\t\022\020\n\010hostn" +
+ "ame\030\005 \001(\t\022\017\n\007version\030\006 \001(\t\022&\n\006module\030\007 \001" +
+ "(\0162\026.agent.CollectorModule\022\021\n\tlast_seen\030" +
+ "\010 \001(\t\"y\n\021CollectorMessages\022(\n\006config\030\001 \001" +
+ "(\0132\026.agent.CollectorConfigH\000\022(\n\006result\030\002" +
+ " \001(\0132\026.agent.ConfigKnowledgeH\000B\020\n\016stream" +
+ "_message\"h\n\017CollectorConfig\022\024\n\014collector" +
+ "_id\030\001 \001(\t\022+\n\006groups\030\002 \003(\0132\033.agent.Collec" +
+ "torConfigGroup\022\022\n\nrequest_id\030\003 \001(\t\"\244\001\n\024C" +
+ "ollectorConfigGroup\022\n\n\002id\030\001 \001(\005\022\022\n\ngroup" +
+ "_name\030\002 \001(\t\022\031\n\021group_description\030\003 \001(\t\022;" +
+ "\n\016configurations\030\004 \003(\0132#.agent.Collector" +
+ "GroupConfigurations\022\024\n\014collector_id\030\005 \001(" +
+ "\005\"\276\001\n\034CollectorGroupConfigurations\022\n\n\002id" +
+ "\030\001 \001(\005\022\020\n\010group_id\030\002 \001(\005\022\020\n\010conf_key\030\003 \001" +
+ "(\t\022\022\n\nconf_value\030\004 \001(\t\022\021\n\tconf_name\030\005 \001(" +
+ "\t\022\030\n\020conf_description\030\006 \001(\t\022\026\n\016conf_data" +
+ "_type\030\007 \001(\t\022\025\n\rconf_required\030\010 \001(\010\"7\n\017Co" +
+ "nfigKnowledge\022\020\n\010accepted\030\001 \001(\t\022\022\n\nreque" +
+ "st_id\030\002 \001(\t\"7\n\rConfigRequest\022&\n\006module\030\001" +
+ " \001(\0162\026.agent.CollectorModule*+\n\017Collecto" +
+ "rModule\022\n\n\006AS_400\020\000\022\014\n\010UTMSTACK\020\0012\356\002\n\020Co" +
+ "llectorService\022B\n\021RegisterCollector\022\026.ag" +
+ "ent.RegisterRequest\032\023.agent.AuthResponse" +
+ "\"\000\022>\n\017DeleteCollector\022\024.agent.DeleteRequ" +
+ "est\032\023.agent.AuthResponse\"\000\022C\n\rListCollec" +
+ "tor\022\022.agent.ListRequest\032\034.agent.ListColl" +
+ "ectorResponse\"\000\022K\n\017CollectorStream\022\030.age" +
+ "nt.CollectorMessages\032\030.agent.CollectorMe" +
+ "ssages\"\000(\0010\001\022D\n\022GetCollectorConfig\022\024.age" +
+ "nt.ConfigRequest\032\026.agent.CollectorConfig" +
+ "\"\0002d\n\025PanelCollectorService\022K\n\027RegisterC" +
+ "ollectorConfig\022\026.agent.CollectorConfig\032\026" +
+ ".agent.ConfigKnowledge\"\000B2Z0github.com/u" +
+ "tmstack/UTMStack/agent-manager/agentb\006pr" +
+ "oto3"
+ };
+ descriptor = com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.park.utmstack.service.grpc.Common.getDescriptor(),
+ });
+ internal_static_agent_RegisterRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_agent_RegisterRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_RegisterRequest_descriptor,
+ new java.lang.String[] { "Ip", "Hostname", "Version", "Collector", });
+ internal_static_agent_ListCollectorResponse_descriptor =
+ getDescriptor().getMessageTypes().get(1);
+ internal_static_agent_ListCollectorResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_ListCollectorResponse_descriptor,
+ new java.lang.String[] { "Rows", "Total", });
+ internal_static_agent_Collector_descriptor =
+ getDescriptor().getMessageTypes().get(2);
+ internal_static_agent_Collector_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_Collector_descriptor,
+ new java.lang.String[] { "Id", "Status", "CollectorKey", "Ip", "Hostname", "Version", "Module", "LastSeen", });
+ internal_static_agent_CollectorMessages_descriptor =
+ getDescriptor().getMessageTypes().get(3);
+ internal_static_agent_CollectorMessages_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_CollectorMessages_descriptor,
+ new java.lang.String[] { "Config", "Result", "StreamMessage", });
+ internal_static_agent_CollectorConfig_descriptor =
+ getDescriptor().getMessageTypes().get(4);
+ internal_static_agent_CollectorConfig_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_CollectorConfig_descriptor,
+ new java.lang.String[] { "CollectorId", "Groups", "RequestId", });
+ internal_static_agent_CollectorConfigGroup_descriptor =
+ getDescriptor().getMessageTypes().get(5);
+ internal_static_agent_CollectorConfigGroup_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_CollectorConfigGroup_descriptor,
+ new java.lang.String[] { "Id", "GroupName", "GroupDescription", "Configurations", "CollectorId", });
+ internal_static_agent_CollectorGroupConfigurations_descriptor =
+ getDescriptor().getMessageTypes().get(6);
+ internal_static_agent_CollectorGroupConfigurations_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_CollectorGroupConfigurations_descriptor,
+ new java.lang.String[] { "Id", "GroupId", "ConfKey", "ConfValue", "ConfName", "ConfDescription", "ConfDataType", "ConfRequired", });
+ internal_static_agent_ConfigKnowledge_descriptor =
+ getDescriptor().getMessageTypes().get(7);
+ internal_static_agent_ConfigKnowledge_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_ConfigKnowledge_descriptor,
+ new java.lang.String[] { "Accepted", "RequestId", });
+ internal_static_agent_ConfigRequest_descriptor =
+ getDescriptor().getMessageTypes().get(8);
+ internal_static_agent_ConfigRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_agent_ConfigRequest_descriptor,
+ new java.lang.String[] { "Module", });
+ descriptor.resolveAllFeaturesImmutable();
+ com.park.utmstack.service.grpc.Common.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/backend/src/main/java/agent/CollectorServiceGrpc.java b/backend/src/main/java/agent/CollectorServiceGrpc.java
new file mode 100644
index 000000000..8e1d81f22
--- /dev/null
+++ b/backend/src/main/java/agent/CollectorServiceGrpc.java
@@ -0,0 +1,573 @@
+package agent;
+
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+
+/**
+ */
+@javax.annotation.Generated(
+ value = "by gRPC proto compiler (version 1.65.1)",
+ comments = "Source: collector.proto")
+@io.grpc.stub.annotations.GrpcGenerated
+public final class CollectorServiceGrpc {
+
+ private CollectorServiceGrpc() {}
+
+ public static final java.lang.String SERVICE_NAME = "agent.CollectorService";
+
+ // Static method descriptors that strictly reflect the proto.
+ private static volatile io.grpc.MethodDescriptor getRegisterCollectorMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "RegisterCollector",
+ requestType = agent.CollectorOuterClass.RegisterRequest.class,
+ responseType = com.park.utmstack.service.grpc.AuthResponse.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor getRegisterCollectorMethod() {
+ io.grpc.MethodDescriptor getRegisterCollectorMethod;
+ if ((getRegisterCollectorMethod = CollectorServiceGrpc.getRegisterCollectorMethod) == null) {
+ synchronized (CollectorServiceGrpc.class) {
+ if ((getRegisterCollectorMethod = CollectorServiceGrpc.getRegisterCollectorMethod) == null) {
+ CollectorServiceGrpc.getRegisterCollectorMethod = getRegisterCollectorMethod =
+ io.grpc.MethodDescriptor.newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "RegisterCollector"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.RegisterRequest.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ com.park.utmstack.service.grpc.AuthResponse.getDefaultInstance()))
+ .setSchemaDescriptor(new CollectorServiceMethodDescriptorSupplier("RegisterCollector"))
+ .build();
+ }
+ }
+ }
+ return getRegisterCollectorMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor getDeleteCollectorMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "DeleteCollector",
+ requestType = com.park.utmstack.service.grpc.DeleteRequest.class,
+ responseType = com.park.utmstack.service.grpc.AuthResponse.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor getDeleteCollectorMethod() {
+ io.grpc.MethodDescriptor getDeleteCollectorMethod;
+ if ((getDeleteCollectorMethod = CollectorServiceGrpc.getDeleteCollectorMethod) == null) {
+ synchronized (CollectorServiceGrpc.class) {
+ if ((getDeleteCollectorMethod = CollectorServiceGrpc.getDeleteCollectorMethod) == null) {
+ CollectorServiceGrpc.getDeleteCollectorMethod = getDeleteCollectorMethod =
+ io.grpc.MethodDescriptor.newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteCollector"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ com.park.utmstack.service.grpc.DeleteRequest.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ com.park.utmstack.service.grpc.AuthResponse.getDefaultInstance()))
+ .setSchemaDescriptor(new CollectorServiceMethodDescriptorSupplier("DeleteCollector"))
+ .build();
+ }
+ }
+ }
+ return getDeleteCollectorMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor getListCollectorMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "ListCollector",
+ requestType = com.park.utmstack.service.grpc.ListRequest.class,
+ responseType = agent.CollectorOuterClass.ListCollectorResponse.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor getListCollectorMethod() {
+ io.grpc.MethodDescriptor getListCollectorMethod;
+ if ((getListCollectorMethod = CollectorServiceGrpc.getListCollectorMethod) == null) {
+ synchronized (CollectorServiceGrpc.class) {
+ if ((getListCollectorMethod = CollectorServiceGrpc.getListCollectorMethod) == null) {
+ CollectorServiceGrpc.getListCollectorMethod = getListCollectorMethod =
+ io.grpc.MethodDescriptor.newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ListCollector"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ com.park.utmstack.service.grpc.ListRequest.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.ListCollectorResponse.getDefaultInstance()))
+ .setSchemaDescriptor(new CollectorServiceMethodDescriptorSupplier("ListCollector"))
+ .build();
+ }
+ }
+ }
+ return getListCollectorMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor getCollectorStreamMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "CollectorStream",
+ requestType = agent.CollectorOuterClass.CollectorMessages.class,
+ responseType = agent.CollectorOuterClass.CollectorMessages.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING)
+ public static io.grpc.MethodDescriptor getCollectorStreamMethod() {
+ io.grpc.MethodDescriptor getCollectorStreamMethod;
+ if ((getCollectorStreamMethod = CollectorServiceGrpc.getCollectorStreamMethod) == null) {
+ synchronized (CollectorServiceGrpc.class) {
+ if ((getCollectorStreamMethod = CollectorServiceGrpc.getCollectorStreamMethod) == null) {
+ CollectorServiceGrpc.getCollectorStreamMethod = getCollectorStreamMethod =
+ io.grpc.MethodDescriptor.newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "CollectorStream"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.CollectorMessages.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.CollectorMessages.getDefaultInstance()))
+ .setSchemaDescriptor(new CollectorServiceMethodDescriptorSupplier("CollectorStream"))
+ .build();
+ }
+ }
+ }
+ return getCollectorStreamMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor getGetCollectorConfigMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "GetCollectorConfig",
+ requestType = agent.CollectorOuterClass.ConfigRequest.class,
+ responseType = agent.CollectorOuterClass.CollectorConfig.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor getGetCollectorConfigMethod() {
+ io.grpc.MethodDescriptor getGetCollectorConfigMethod;
+ if ((getGetCollectorConfigMethod = CollectorServiceGrpc.getGetCollectorConfigMethod) == null) {
+ synchronized (CollectorServiceGrpc.class) {
+ if ((getGetCollectorConfigMethod = CollectorServiceGrpc.getGetCollectorConfigMethod) == null) {
+ CollectorServiceGrpc.getGetCollectorConfigMethod = getGetCollectorConfigMethod =
+ io.grpc.MethodDescriptor.newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetCollectorConfig"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.ConfigRequest.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.CollectorConfig.getDefaultInstance()))
+ .setSchemaDescriptor(new CollectorServiceMethodDescriptorSupplier("GetCollectorConfig"))
+ .build();
+ }
+ }
+ }
+ return getGetCollectorConfigMethod;
+ }
+
+ /**
+ * Creates a new async stub that supports all call types for the service
+ */
+ public static CollectorServiceStub newStub(io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public CollectorServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new CollectorServiceStub(channel, callOptions);
+ }
+ };
+ return CollectorServiceStub.newStub(factory, channel);
+ }
+
+ /**
+ * Creates a new blocking-style stub that supports unary and streaming output calls on the service
+ */
+ public static CollectorServiceBlockingStub newBlockingStub(
+ io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public CollectorServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new CollectorServiceBlockingStub(channel, callOptions);
+ }
+ };
+ return CollectorServiceBlockingStub.newStub(factory, channel);
+ }
+
+ /**
+ * Creates a new ListenableFuture-style stub that supports unary calls on the service
+ */
+ public static CollectorServiceFutureStub newFutureStub(
+ io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public CollectorServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new CollectorServiceFutureStub(channel, callOptions);
+ }
+ };
+ return CollectorServiceFutureStub.newStub(factory, channel);
+ }
+
+ /**
+ */
+ public interface AsyncService {
+
+ /**
+ */
+ default void registerCollector(agent.CollectorOuterClass.RegisterRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRegisterCollectorMethod(), responseObserver);
+ }
+
+ /**
+ */
+ default void deleteCollector(com.park.utmstack.service.grpc.DeleteRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteCollectorMethod(), responseObserver);
+ }
+
+ /**
+ */
+ default void listCollector(com.park.utmstack.service.grpc.ListRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListCollectorMethod(), responseObserver);
+ }
+
+ /**
+ */
+ default io.grpc.stub.StreamObserver collectorStream(
+ io.grpc.stub.StreamObserver responseObserver) {
+ return io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getCollectorStreamMethod(), responseObserver);
+ }
+
+ /**
+ */
+ default void getCollectorConfig(agent.CollectorOuterClass.ConfigRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetCollectorConfigMethod(), responseObserver);
+ }
+ }
+
+ /**
+ * Base class for the server implementation of the service CollectorService.
+ */
+ public static abstract class CollectorServiceImplBase
+ implements io.grpc.BindableService, AsyncService {
+
+ @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
+ return CollectorServiceGrpc.bindService(this);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do asynchronous rpc calls to service CollectorService.
+ */
+ public static final class CollectorServiceStub
+ extends io.grpc.stub.AbstractAsyncStub {
+ private CollectorServiceStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected CollectorServiceStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new CollectorServiceStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public void registerCollector(agent.CollectorOuterClass.RegisterRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getRegisterCollectorMethod(), getCallOptions()), request, responseObserver);
+ }
+
+ /**
+ */
+ public void deleteCollector(com.park.utmstack.service.grpc.DeleteRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getDeleteCollectorMethod(), getCallOptions()), request, responseObserver);
+ }
+
+ /**
+ */
+ public void listCollector(com.park.utmstack.service.grpc.ListRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getListCollectorMethod(), getCallOptions()), request, responseObserver);
+ }
+
+ /**
+ */
+ public io.grpc.stub.StreamObserver collectorStream(
+ io.grpc.stub.StreamObserver responseObserver) {
+ return io.grpc.stub.ClientCalls.asyncBidiStreamingCall(
+ getChannel().newCall(getCollectorStreamMethod(), getCallOptions()), responseObserver);
+ }
+
+ /**
+ */
+ public void getCollectorConfig(agent.CollectorOuterClass.ConfigRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getGetCollectorConfigMethod(), getCallOptions()), request, responseObserver);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do synchronous rpc calls to service CollectorService.
+ */
+ public static final class CollectorServiceBlockingStub
+ extends io.grpc.stub.AbstractBlockingStub {
+ private CollectorServiceBlockingStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected CollectorServiceBlockingStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new CollectorServiceBlockingStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public com.park.utmstack.service.grpc.AuthResponse registerCollector(agent.CollectorOuterClass.RegisterRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getRegisterCollectorMethod(), getCallOptions(), request);
+ }
+
+ /**
+ */
+ public com.park.utmstack.service.grpc.AuthResponse deleteCollector(com.park.utmstack.service.grpc.DeleteRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getDeleteCollectorMethod(), getCallOptions(), request);
+ }
+
+ /**
+ */
+ public agent.CollectorOuterClass.ListCollectorResponse listCollector(com.park.utmstack.service.grpc.ListRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getListCollectorMethod(), getCallOptions(), request);
+ }
+
+ /**
+ */
+ public agent.CollectorOuterClass.CollectorConfig getCollectorConfig(agent.CollectorOuterClass.ConfigRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getGetCollectorConfigMethod(), getCallOptions(), request);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do ListenableFuture-style rpc calls to service CollectorService.
+ */
+ public static final class CollectorServiceFutureStub
+ extends io.grpc.stub.AbstractFutureStub {
+ private CollectorServiceFutureStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected CollectorServiceFutureStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new CollectorServiceFutureStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public com.google.common.util.concurrent.ListenableFuture registerCollector(
+ agent.CollectorOuterClass.RegisterRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getRegisterCollectorMethod(), getCallOptions()), request);
+ }
+
+ /**
+ */
+ public com.google.common.util.concurrent.ListenableFuture deleteCollector(
+ com.park.utmstack.service.grpc.DeleteRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getDeleteCollectorMethod(), getCallOptions()), request);
+ }
+
+ /**
+ */
+ public com.google.common.util.concurrent.ListenableFuture listCollector(
+ com.park.utmstack.service.grpc.ListRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getListCollectorMethod(), getCallOptions()), request);
+ }
+
+ /**
+ */
+ public com.google.common.util.concurrent.ListenableFuture getCollectorConfig(
+ agent.CollectorOuterClass.ConfigRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getGetCollectorConfigMethod(), getCallOptions()), request);
+ }
+ }
+
+ private static final int METHODID_REGISTER_COLLECTOR = 0;
+ private static final int METHODID_DELETE_COLLECTOR = 1;
+ private static final int METHODID_LIST_COLLECTOR = 2;
+ private static final int METHODID_GET_COLLECTOR_CONFIG = 3;
+ private static final int METHODID_COLLECTOR_STREAM = 4;
+
+ private static final class MethodHandlers implements
+ io.grpc.stub.ServerCalls.UnaryMethod,
+ io.grpc.stub.ServerCalls.ServerStreamingMethod,
+ io.grpc.stub.ServerCalls.ClientStreamingMethod,
+ io.grpc.stub.ServerCalls.BidiStreamingMethod {
+ private final AsyncService serviceImpl;
+ private final int methodId;
+
+ MethodHandlers(AsyncService serviceImpl, int methodId) {
+ this.serviceImpl = serviceImpl;
+ this.methodId = methodId;
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ case METHODID_REGISTER_COLLECTOR:
+ serviceImpl.registerCollector((agent.CollectorOuterClass.RegisterRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_DELETE_COLLECTOR:
+ serviceImpl.deleteCollector((com.park.utmstack.service.grpc.DeleteRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_LIST_COLLECTOR:
+ serviceImpl.listCollector((com.park.utmstack.service.grpc.ListRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_GET_COLLECTOR_CONFIG:
+ serviceImpl.getCollectorConfig((agent.CollectorOuterClass.ConfigRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ default:
+ throw new AssertionError();
+ }
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public io.grpc.stub.StreamObserver invoke(
+ io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ case METHODID_COLLECTOR_STREAM:
+ return (io.grpc.stub.StreamObserver) serviceImpl.collectorStream(
+ (io.grpc.stub.StreamObserver) responseObserver);
+ default:
+ throw new AssertionError();
+ }
+ }
+ }
+
+ public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
+ return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+ .addMethod(
+ getRegisterCollectorMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ agent.CollectorOuterClass.RegisterRequest,
+ com.park.utmstack.service.grpc.AuthResponse>(
+ service, METHODID_REGISTER_COLLECTOR)))
+ .addMethod(
+ getDeleteCollectorMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.park.utmstack.service.grpc.DeleteRequest,
+ com.park.utmstack.service.grpc.AuthResponse>(
+ service, METHODID_DELETE_COLLECTOR)))
+ .addMethod(
+ getListCollectorMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.park.utmstack.service.grpc.ListRequest,
+ agent.CollectorOuterClass.ListCollectorResponse>(
+ service, METHODID_LIST_COLLECTOR)))
+ .addMethod(
+ getCollectorStreamMethod(),
+ io.grpc.stub.ServerCalls.asyncBidiStreamingCall(
+ new MethodHandlers<
+ agent.CollectorOuterClass.CollectorMessages,
+ agent.CollectorOuterClass.CollectorMessages>(
+ service, METHODID_COLLECTOR_STREAM)))
+ .addMethod(
+ getGetCollectorConfigMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ agent.CollectorOuterClass.ConfigRequest,
+ agent.CollectorOuterClass.CollectorConfig>(
+ service, METHODID_GET_COLLECTOR_CONFIG)))
+ .build();
+ }
+
+ private static abstract class CollectorServiceBaseDescriptorSupplier
+ implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier {
+ CollectorServiceBaseDescriptorSupplier() {}
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
+ return agent.CollectorOuterClass.getDescriptor();
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() {
+ return getFileDescriptor().findServiceByName("CollectorService");
+ }
+ }
+
+ private static final class CollectorServiceFileDescriptorSupplier
+ extends CollectorServiceBaseDescriptorSupplier {
+ CollectorServiceFileDescriptorSupplier() {}
+ }
+
+ private static final class CollectorServiceMethodDescriptorSupplier
+ extends CollectorServiceBaseDescriptorSupplier
+ implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
+ private final java.lang.String methodName;
+
+ CollectorServiceMethodDescriptorSupplier(java.lang.String methodName) {
+ this.methodName = methodName;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() {
+ return getServiceDescriptor().findMethodByName(methodName);
+ }
+ }
+
+ private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
+
+ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+ io.grpc.ServiceDescriptor result = serviceDescriptor;
+ if (result == null) {
+ synchronized (CollectorServiceGrpc.class) {
+ result = serviceDescriptor;
+ if (result == null) {
+ serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
+ .setSchemaDescriptor(new CollectorServiceFileDescriptorSupplier())
+ .addMethod(getRegisterCollectorMethod())
+ .addMethod(getDeleteCollectorMethod())
+ .addMethod(getListCollectorMethod())
+ .addMethod(getCollectorStreamMethod())
+ .addMethod(getGetCollectorConfigMethod())
+ .build();
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/backend/src/main/java/agent/PanelCollectorServiceGrpc.java b/backend/src/main/java/agent/PanelCollectorServiceGrpc.java
new file mode 100644
index 000000000..e6d014150
--- /dev/null
+++ b/backend/src/main/java/agent/PanelCollectorServiceGrpc.java
@@ -0,0 +1,293 @@
+package agent;
+
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+
+/**
+ */
+@javax.annotation.Generated(
+ value = "by gRPC proto compiler (version 1.65.1)",
+ comments = "Source: collector.proto")
+@io.grpc.stub.annotations.GrpcGenerated
+public final class PanelCollectorServiceGrpc {
+
+ private PanelCollectorServiceGrpc() {}
+
+ public static final java.lang.String SERVICE_NAME = "agent.PanelCollectorService";
+
+ // Static method descriptors that strictly reflect the proto.
+ private static volatile io.grpc.MethodDescriptor getRegisterCollectorConfigMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "RegisterCollectorConfig",
+ requestType = agent.CollectorOuterClass.CollectorConfig.class,
+ responseType = agent.CollectorOuterClass.ConfigKnowledge.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor getRegisterCollectorConfigMethod() {
+ io.grpc.MethodDescriptor getRegisterCollectorConfigMethod;
+ if ((getRegisterCollectorConfigMethod = PanelCollectorServiceGrpc.getRegisterCollectorConfigMethod) == null) {
+ synchronized (PanelCollectorServiceGrpc.class) {
+ if ((getRegisterCollectorConfigMethod = PanelCollectorServiceGrpc.getRegisterCollectorConfigMethod) == null) {
+ PanelCollectorServiceGrpc.getRegisterCollectorConfigMethod = getRegisterCollectorConfigMethod =
+ io.grpc.MethodDescriptor.newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "RegisterCollectorConfig"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.CollectorConfig.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ agent.CollectorOuterClass.ConfigKnowledge.getDefaultInstance()))
+ .setSchemaDescriptor(new PanelCollectorServiceMethodDescriptorSupplier("RegisterCollectorConfig"))
+ .build();
+ }
+ }
+ }
+ return getRegisterCollectorConfigMethod;
+ }
+
+ /**
+ * Creates a new async stub that supports all call types for the service
+ */
+ public static PanelCollectorServiceStub newStub(io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public PanelCollectorServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new PanelCollectorServiceStub(channel, callOptions);
+ }
+ };
+ return PanelCollectorServiceStub.newStub(factory, channel);
+ }
+
+ /**
+ * Creates a new blocking-style stub that supports unary and streaming output calls on the service
+ */
+ public static PanelCollectorServiceBlockingStub newBlockingStub(
+ io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public PanelCollectorServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new PanelCollectorServiceBlockingStub(channel, callOptions);
+ }
+ };
+ return PanelCollectorServiceBlockingStub.newStub(factory, channel);
+ }
+
+ /**
+ * Creates a new ListenableFuture-style stub that supports unary calls on the service
+ */
+ public static PanelCollectorServiceFutureStub newFutureStub(
+ io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public PanelCollectorServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new PanelCollectorServiceFutureStub(channel, callOptions);
+ }
+ };
+ return PanelCollectorServiceFutureStub.newStub(factory, channel);
+ }
+
+ /**
+ */
+ public interface AsyncService {
+
+ /**
+ */
+ default void registerCollectorConfig(agent.CollectorOuterClass.CollectorConfig request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRegisterCollectorConfigMethod(), responseObserver);
+ }
+ }
+
+ /**
+ * Base class for the server implementation of the service PanelCollectorService.
+ */
+ public static abstract class PanelCollectorServiceImplBase
+ implements io.grpc.BindableService, AsyncService {
+
+ @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
+ return PanelCollectorServiceGrpc.bindService(this);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do asynchronous rpc calls to service PanelCollectorService.
+ */
+ public static final class PanelCollectorServiceStub
+ extends io.grpc.stub.AbstractAsyncStub {
+ private PanelCollectorServiceStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected PanelCollectorServiceStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new PanelCollectorServiceStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public void registerCollectorConfig(agent.CollectorOuterClass.CollectorConfig request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getRegisterCollectorConfigMethod(), getCallOptions()), request, responseObserver);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do synchronous rpc calls to service PanelCollectorService.
+ */
+ public static final class PanelCollectorServiceBlockingStub
+ extends io.grpc.stub.AbstractBlockingStub {
+ private PanelCollectorServiceBlockingStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected PanelCollectorServiceBlockingStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new PanelCollectorServiceBlockingStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public agent.CollectorOuterClass.ConfigKnowledge registerCollectorConfig(agent.CollectorOuterClass.CollectorConfig request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getRegisterCollectorConfigMethod(), getCallOptions(), request);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do ListenableFuture-style rpc calls to service PanelCollectorService.
+ */
+ public static final class PanelCollectorServiceFutureStub
+ extends io.grpc.stub.AbstractFutureStub {
+ private PanelCollectorServiceFutureStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected PanelCollectorServiceFutureStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new PanelCollectorServiceFutureStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public com.google.common.util.concurrent.ListenableFuture registerCollectorConfig(
+ agent.CollectorOuterClass.CollectorConfig request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getRegisterCollectorConfigMethod(), getCallOptions()), request);
+ }
+ }
+
+ private static final int METHODID_REGISTER_COLLECTOR_CONFIG = 0;
+
+ private static final class MethodHandlers implements
+ io.grpc.stub.ServerCalls.UnaryMethod,
+ io.grpc.stub.ServerCalls.ServerStreamingMethod,
+ io.grpc.stub.ServerCalls.ClientStreamingMethod,
+ io.grpc.stub.ServerCalls.BidiStreamingMethod {
+ private final AsyncService serviceImpl;
+ private final int methodId;
+
+ MethodHandlers(AsyncService serviceImpl, int methodId) {
+ this.serviceImpl = serviceImpl;
+ this.methodId = methodId;
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ case METHODID_REGISTER_COLLECTOR_CONFIG:
+ serviceImpl.registerCollectorConfig((agent.CollectorOuterClass.CollectorConfig) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ default:
+ throw new AssertionError();
+ }
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public io.grpc.stub.StreamObserver invoke(
+ io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ default:
+ throw new AssertionError();
+ }
+ }
+ }
+
+ public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
+ return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+ .addMethod(
+ getRegisterCollectorConfigMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ agent.CollectorOuterClass.CollectorConfig,
+ agent.CollectorOuterClass.ConfigKnowledge>(
+ service, METHODID_REGISTER_COLLECTOR_CONFIG)))
+ .build();
+ }
+
+ private static abstract class PanelCollectorServiceBaseDescriptorSupplier
+ implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier {
+ PanelCollectorServiceBaseDescriptorSupplier() {}
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
+ return agent.CollectorOuterClass.getDescriptor();
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() {
+ return getFileDescriptor().findServiceByName("PanelCollectorService");
+ }
+ }
+
+ private static final class PanelCollectorServiceFileDescriptorSupplier
+ extends PanelCollectorServiceBaseDescriptorSupplier {
+ PanelCollectorServiceFileDescriptorSupplier() {}
+ }
+
+ private static final class PanelCollectorServiceMethodDescriptorSupplier
+ extends PanelCollectorServiceBaseDescriptorSupplier
+ implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
+ private final java.lang.String methodName;
+
+ PanelCollectorServiceMethodDescriptorSupplier(java.lang.String methodName) {
+ this.methodName = methodName;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() {
+ return getServiceDescriptor().findMethodByName(methodName);
+ }
+ }
+
+ private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
+
+ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+ io.grpc.ServiceDescriptor result = serviceDescriptor;
+ if (result == null) {
+ synchronized (PanelCollectorServiceGrpc.class) {
+ result = serviceDescriptor;
+ if (result == null) {
+ serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
+ .setSchemaDescriptor(new PanelCollectorServiceFileDescriptorSupplier())
+ .addMethod(getRegisterCollectorConfigMethod())
+ .build();
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/backend/src/main/java/com/park/utmstack/ApplicationStartProcessor.java b/backend/src/main/java/com/park/utmstack/ApplicationStartProcessor.java
index 91505f553..5b88a450a 100644
--- a/backend/src/main/java/com/park/utmstack/ApplicationStartProcessor.java
+++ b/backend/src/main/java/com/park/utmstack/ApplicationStartProcessor.java
@@ -10,6 +10,7 @@
import java.sql.SQLException;
import java.util.Objects;
+
public class ApplicationStartProcessor implements EnvironmentPostProcessor {
private static final String CLASSNAME = "ApplicationStartProcessor";
private Connection con;
@@ -36,8 +37,6 @@ public void postProcessEnvironment(ConfigurableEnvironment environment, SpringAp
// Checking elasticsearch connection
elasticsearchConnectionCheck();
- ConsoleColors.magentaBold();
- System.out.println("------------------------------------------------");
ConsoleColors.reset();
} catch (Exception e) {
if (!Objects.isNull(con)) {
diff --git a/backend/src/main/java/com/park/utmstack/UtmstackApp.java b/backend/src/main/java/com/park/utmstack/UtmstackApp.java
index cf98c4be0..6635bc1c5 100644
--- a/backend/src/main/java/com/park/utmstack/UtmstackApp.java
+++ b/backend/src/main/java/com/park/utmstack/UtmstackApp.java
@@ -82,6 +82,8 @@ private static void logApplicationStartup(Environment env) {
} catch (UnknownHostException e) {
log.warn("The host name could not be determined, using `localhost` as fallback");
}
+
+
log.info(
"\n----------------------------------------------------------\n\t" + "Application '{}' is running! Access URLs:\n\t" + "Local: \t\t{}://localhost:{}{}\n\t" + "External: \t{}://{}:{}{}\n\t" + "Profile(s): \t{}\n----------------------------------------------------------",
env.getProperty("spring.application.name"), protocol, serverPort, contextPath, protocol, hostAddress, serverPort,
diff --git a/backend/src/main/java/com/park/utmstack/checks/ElasticsearchConnectionCheck.java b/backend/src/main/java/com/park/utmstack/checks/ElasticsearchConnectionCheck.java
index 9d6ad10cc..abab40444 100644
--- a/backend/src/main/java/com/park/utmstack/checks/ElasticsearchConnectionCheck.java
+++ b/backend/src/main/java/com/park/utmstack/checks/ElasticsearchConnectionCheck.java
@@ -1,10 +1,15 @@
package com.park.utmstack.checks;
import com.park.utmstack.config.Constants;
+import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import java.security.cert.X509Certificate;
import java.util.Objects;
public class ElasticsearchConnectionCheck {
@@ -53,17 +58,45 @@ public void connectionCheck(int retries) {
private void pingElasticsearch() {
try {
- final String ELASTIC_URL = String.format("http://%1$s:%2$s",
+ final String ELASTIC_URL = String.format("https://%1$s:%2$s",
System.getenv(Constants.ENV_ELASTICSEARCH_HOST), System.getenv(Constants.ENV_ELASTICSEARCH_PORT));
- OkHttpClient client = new OkHttpClient().newBuilder().build();
- Request rq = new Request.Builder().url(ELASTIC_URL).build();
+ String user = System.getenv(Constants.ENV_ELASTICSEARCH_USER);
+ String password = System.getenv(Constants.ENV_ELASTICSEARCH_PASSWORD);
+
+ OkHttpClient client = createTrustAllClient();
+ Request rq = new Request.Builder()
+ .url(ELASTIC_URL)
+ .header("Authorization", Credentials.basic(user, password))
+ .build();
Response rs = client.newCall(rq).execute();
Objects.requireNonNull(rs.body()).close();
if (!rs.isSuccessful())
- throw new RuntimeException();
+ throw new RuntimeException("HTTP " + rs.code());
} catch (Exception e) {
throw new RuntimeException(e.getLocalizedMessage());
}
}
+
+ private OkHttpClient createTrustAllClient() {
+ try {
+ TrustManager[] trustAllCerts = new TrustManager[]{
+ new X509TrustManager() {
+ public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
+ public void checkClientTrusted(X509Certificate[] certs, String authType) {}
+ public void checkServerTrusted(X509Certificate[] certs, String authType) {}
+ }
+ };
+
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
+
+ return new OkHttpClient.Builder()
+ .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0])
+ .hostnameVerifier((hostname, session) -> true)
+ .build();
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to create SSL client: " + e.getMessage());
+ }
+ }
}
diff --git a/backend/src/main/java/com/park/utmstack/config/Constants.java b/backend/src/main/java/com/park/utmstack/config/Constants.java
index 96d7535d0..2b81857b8 100644
--- a/backend/src/main/java/com/park/utmstack/config/Constants.java
+++ b/backend/src/main/java/com/park/utmstack/config/Constants.java
@@ -93,6 +93,8 @@ public final class Constants {
*/
public static final String ENV_ELASTICSEARCH_HOST = "ELASTICSEARCH_HOST";
public static final String ENV_ELASTICSEARCH_PORT = "ELASTICSEARCH_PORT";
+ public static final String ENV_ELASTICSEARCH_USER = "ELASTICSEARCH_USER";
+ public static final String ENV_ELASTICSEARCH_PASSWORD = "ELASTICSEARCH_PASSWORD";
public static final String ENV_DB_HOST = "DB_HOST";
public static final String ENV_DB_PORT = "DB_PORT";
public static final String ENV_DB_NAME = "DB_NAME";
@@ -159,12 +161,16 @@ public final class Constants {
public static final String CONF_TYPE_PASSWORD = "password";
public static final String CONF_TYPE_FILE = "file";
+ public static final String MASKED_VALUE = "*****";
public static final String API_KEY_HEADER = "Utm-Api-Key";
public static final List API_ENDPOINT_IGNORE = Collections.emptyList();
// Application version file
- public static final String APP_VERSION_FILE = "/updates/version.json";
+ public static final String APP_VERSION_FILE = "/updates/version.json";
+
+ public static final String APP_FILTER_DEFINITIONS = "/utmstack/filters";
+ public static final String APP_RULE_DEFINITIONS = "/utmstack/rules";
public static final String ADMIN_EMAIL = "admin@localhost";
diff --git a/backend/src/main/java/com/park/utmstack/domain/UtmServerModule.java b/backend/src/main/java/com/park/utmstack/domain/UtmServerModule.java
index 670e497be..4c7c367b9 100644
--- a/backend/src/main/java/com/park/utmstack/domain/UtmServerModule.java
+++ b/backend/src/main/java/com/park/utmstack/domain/UtmServerModule.java
@@ -1,15 +1,18 @@
package com.park.utmstack.domain;
+import com.park.utmstack.service.dto.auditable.AuditableDTO;
+
import javax.persistence.*;
import java.io.Serializable;
+import java.util.Map;
/**
* A UtmServerModule.
*/
@Entity
@Table(name = "utm_server_module")
-public class UtmServerModule implements Serializable {
+public class UtmServerModule implements Serializable, AuditableDTO {
private static final long serialVersionUID = 1L;
@@ -100,4 +103,12 @@ public UtmServer getServer() {
public void setServer(UtmServer server) {
this.server = server;
}
+
+ @Override
+ public Map toAuditMap() {
+ return Map.of(
+ "moduleName", moduleName != null ? moduleName : "",
+ "prettyName", prettyName != null ? prettyName : ""
+ );
+ }
}
diff --git a/backend/src/main/java/com/park/utmstack/domain/alert_response_rule/UtmAlertResponseRule.java b/backend/src/main/java/com/park/utmstack/domain/alert_response_rule/UtmAlertResponseRule.java
index 96b7f303a..3cc3391a6 100644
--- a/backend/src/main/java/com/park/utmstack/domain/alert_response_rule/UtmAlertResponseRule.java
+++ b/backend/src/main/java/com/park/utmstack/domain/alert_response_rule/UtmAlertResponseRule.java
@@ -64,6 +64,10 @@ public class UtmAlertResponseRule implements Serializable {
@Column(name = "last_modified_date")
private Instant lastModifiedDate;
+ @Size(max = 20)
+ @Column(name = "rule_shell", length = 20)
+ private String ruleShell;
+
@Column(name = "system_owner", nullable = false)
private Boolean systemOwner;
@@ -92,6 +96,7 @@ public UtmAlertResponseRule(UtmAlertResponseRuleDTO dto) {
this.ruleActive = dto.getActive();
this.agentPlatform = dto.getAgentPlatform();
this.defaultAgent = dto.getDefaultAgent();
+ this.ruleShell = dto.getShell();
this.systemOwner = dto.getSystemOwner();
if (!CollectionUtils.isEmpty(dto.getExcludedAgents()))
this.excludedAgents = String.join(",", dto.getExcludedAgents());
diff --git a/backend/src/main/java/com/park/utmstack/domain/application_events/enums/ApplicationEventType.java b/backend/src/main/java/com/park/utmstack/domain/application_events/enums/ApplicationEventType.java
index 4b4ee6484..a0e2d0f04 100644
--- a/backend/src/main/java/com/park/utmstack/domain/application_events/enums/ApplicationEventType.java
+++ b/backend/src/main/java/com/park/utmstack/domain/application_events/enums/ApplicationEventType.java
@@ -50,5 +50,53 @@ public enum ApplicationEventType {
COLLECTOR_DELETE_SUCCESS,
RESET_USER_PASSWORD_ATTEMPT,
RESET_USER_PASSWORD_SUCCESS,
+ USER_CREATION_ATTEMPT,
+ USER_CREATION_SUCCESS,
+ USER_UPDATE_ATTEMPT,
+ USER_UPDATE_SUCCESS,
+ USER_DELETE_ATTEMPT,
+ USER_DELETE_SUCCESS,
+ PASSWORD_CHANGE_ATTEMPT,
+ PASSWORD_CHANGE_SUCCESS,
+ IDP_CONFIG_CREATE_ATTEMPT,
+ IDP_CONFIG_CREATE_SUCCESS,
+ IDP_CONFIG_UPDATE_ATTEMPT,
+ IDP_CONFIG_UPDATE_SUCCESS,
+ IDP_CONFIG_DELETE_ATTEMPT,
+ IDP_CONFIG_DELETE_SUCCESS,
+ TFA_ENABLE_ATTEMPT,
+ TFA_ENABLE_SUCCESS,
+ TFA_DISABLE_ATTEMPT,
+ TFA_DISABLE_SUCCESS,
+ API_KEY_CREATE_ATTEMPT,
+ API_KEY_CREATE_SUCCESS,
+ API_KEY_DELETE_ATTEMPT,
+ API_KEY_DELETE_SUCCESS,
+ CORRELATION_RULE_CREATE_ATTEMPT,
+ CORRELATION_RULE_CREATE_SUCCESS,
+ CORRELATION_RULE_UPDATE_ATTEMPT,
+ CORRELATION_RULE_UPDATE_SUCCESS,
+ CORRELATION_RULE_DELETE_ATTEMPT,
+ CORRELATION_RULE_DELETE_SUCCESS,
+ LOGSTASH_FILTER_CREATE_ATTEMPT,
+ LOGSTASH_FILTER_CREATE_SUCCESS,
+ LOGSTASH_FILTER_UPDATE_ATTEMPT,
+ LOGSTASH_FILTER_UPDATE_SUCCESS,
+ LOGSTASH_FILTER_DELETE_ATTEMPT,
+ LOGSTASH_FILTER_DELETE_SUCCESS,
+ SERVER_MODULE_CREATE_ATTEMPT,
+ SERVER_MODULE_CREATE_SUCCESS,
+ SERVER_MODULE_UPDATE_ATTEMPT,
+ SERVER_MODULE_UPDATE_SUCCESS,
+ SERVER_MODULE_DELETE_ATTEMPT,
+ SERVER_MODULE_DELETE_SUCCESS,
+ COMPLIANCE_SCHEDULE_CREATE_ATTEMPT,
+ COMPLIANCE_SCHEDULE_CREATE_SUCCESS,
+ COMPLIANCE_SCHEDULE_DELETE_ATTEMPT,
+ COMPLIANCE_SCHEDULE_DELETE_SUCCESS,
+ COMPLIANCE_STANDARD_CREATE_ATTEMPT,
+ COMPLIANCE_STANDARD_CREATE_SUCCESS,
+ REPORT_IMPORT_ATTEMPT,
+ REPORT_IMPORT_SUCCESS,
UNDEFINED
}
diff --git a/backend/src/main/java/com/park/utmstack/domain/application_modules/UtmModule.java b/backend/src/main/java/com/park/utmstack/domain/application_modules/UtmModule.java
index 36a7e8068..627ad4b4c 100644
--- a/backend/src/main/java/com/park/utmstack/domain/application_modules/UtmModule.java
+++ b/backend/src/main/java/com/park/utmstack/domain/application_modules/UtmModule.java
@@ -32,7 +32,7 @@ public class UtmModule implements Serializable {
@Column(name = "pretty_name")
private String prettyName;
- @Enumerated(EnumType.STRING)
+ @Convert(converter = com.park.utmstack.domain.application_modules.enums.ModuleNameConverter.class)
@Column(name = "module_name")
private ModuleName moduleName;
@@ -62,9 +62,11 @@ public class UtmModule implements Serializable {
@JoinColumn(name = "server_id", insertable = false, updatable = false)
private UtmServer server;
+ @JsonIgnore
@OneToMany(mappedBy = "module", fetch = FetchType.LAZY)
private Set moduleGroups = new HashSet<>();
+ @JsonIgnore
@OneToMany(mappedBy = "module", fetch = FetchType.LAZY)
private Set filters;
diff --git a/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleName.java b/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleName.java
index 68bd3001b..7fe135106 100644
--- a/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleName.java
+++ b/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleName.java
@@ -66,5 +66,7 @@ public enum ModuleName {
ORACLE,
SURICATA,
UTMSTACK,
- CROWDSTRIKE
+ CROWDSTRIKE,
+ SYSLOG_GENERIC,
+ WINDOWS_EVENTS
}
diff --git a/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleNameConverter.java b/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleNameConverter.java
new file mode 100644
index 000000000..9661939b3
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/domain/application_modules/enums/ModuleNameConverter.java
@@ -0,0 +1,29 @@
+package com.park.utmstack.domain.application_modules.enums;
+
+import javax.persistence.AttributeConverter;
+import javax.persistence.Converter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Converter(autoApply = true)
+public class ModuleNameConverter implements AttributeConverter {
+ private static final Logger log = LoggerFactory.getLogger(ModuleNameConverter.class);
+
+ @Override
+ public String convertToDatabaseColumn(ModuleName attribute) {
+ return attribute == null ? null : attribute.name();
+ }
+
+ @Override
+ public ModuleName convertToEntityAttribute(String dbData) {
+ if (dbData == null) {
+ return null;
+ }
+ try {
+ return ModuleName.valueOf(dbData);
+ } catch (IllegalArgumentException e) {
+ log.warn("Unknown ModuleName in database: '{}'. Mapping to null to prevent crash. ---", dbData);
+ return null;
+ }
+ }
+}
diff --git a/backend/src/main/java/com/park/utmstack/domain/application_modules/factory/impl/ModuleSocAi.java b/backend/src/main/java/com/park/utmstack/domain/application_modules/factory/impl/ModuleSocAi.java
index 3fde5c21d..79f2b42b1 100644
--- a/backend/src/main/java/com/park/utmstack/domain/application_modules/factory/impl/ModuleSocAi.java
+++ b/backend/src/main/java/com/park/utmstack/domain/application_modules/factory/impl/ModuleSocAi.java
@@ -45,16 +45,6 @@ public List checkRequirements(Long serverId) throws Exception
public List getConfigurationKeys(Long groupId) throws Exception {
List keys = new ArrayList<>();
- // soc_ai_key
- keys.add(ModuleConfigurationKey.builder()
- .withGroupId(groupId)
- .withConfKey("utmstack.socai.key")
- .withConfName("Key")
- .withConfDescription("OpenAI Connection key")
- .withConfDataType("password")
- .withConfRequired(true)
- .build());
-
keys.add(ModuleConfigurationKey.builder()
.withGroupId(groupId)
.withConfKey("utmstack.socai.incidentCreation")
@@ -127,20 +117,13 @@ public boolean validateConfiguration(UtmModule module, List !"utmstack.socai.provider".equals(c.getConfKey()))
.toList();
- List filteredConfigs = providerConfig != null && "custom".equals(providerConfig.getConfValue())
- ? filterCustomConfigs(configs)
- : filterStandardConfigs(configs);
+ List filteredConfigs = filterStandardConfigs(configs);
filteredConfigs.add(providerConfig);
return utmStackConfigValidator.validate(module, configuration, filteredConfigs);
}
- private List filterCustomConfigs(List configs) {
- return configs.stream()
- .filter(config -> !config.getConfKey().equals("utmstack.socai.model"))
- .collect(Collectors.toList());
- }
private List filterStandardConfigs(List configs) {
return configs.stream()
diff --git a/backend/src/main/java/com/park/utmstack/domain/application_modules/validators/UtmModuleConfigValidator.java b/backend/src/main/java/com/park/utmstack/domain/application_modules/validators/UtmModuleConfigValidator.java
index 7758e16ff..09fd01758 100644
--- a/backend/src/main/java/com/park/utmstack/domain/application_modules/validators/UtmModuleConfigValidator.java
+++ b/backend/src/main/java/com/park/utmstack/domain/application_modules/validators/UtmModuleConfigValidator.java
@@ -35,12 +35,15 @@ public boolean validate(UtmModule module, List keys
List configDTOs = dbConfigs.stream()
.map(dbConf -> {
UtmModuleGroupConfiguration override = findInKeys(keys, dbConf.getConfKey());
- UtmModuleGroupConfiguration source = override != null ? override : dbConf;
-
- return new UtmModuleGroupConfDTO(
- source.getConfKey(),
- override != null ? source.getConfValue() : decryptIfNeeded(source.getConfDataType(), source.getConfValue())
- );
+ String value;
+ if (override != null && !Constants.MASKED_VALUE.equals(override.getConfValue())) {
+ // User provided a new value — use it as plaintext
+ value = override.getConfValue();
+ } else {
+ // No override or masked — decrypt from DB
+ value = decryptIfNeeded(dbConf.getConfDataType(), dbConf.getConfValue());
+ }
+ return new UtmModuleGroupConfDTO(dbConf.getConfKey(), value);
})
.toList();
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceControlConfig.java b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceControlConfig.java
new file mode 100644
index 000000000..68b167fb5
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceControlConfig.java
@@ -0,0 +1,69 @@
+package com.park.utmstack.domain.compliance;
+
+import com.park.utmstack.domain.compliance.enums.ComplianceStrategy;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+@Entity
+@Table(name = "utm_compliance_control_config")
+public class UtmComplianceControlConfig implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GenericGenerator(name = "CustomIdentityGenerator",
+ strategy = "com.park.utmstack.util.CustomIdentityGenerator")
+ @GeneratedValue(generator = "CustomIdentityGenerator")
+ private Long id;
+
+ @Column(name = "standard_section_id",
+ nullable = false
+ )
+ private Long standardSectionId;
+
+ @ManyToOne
+ @JoinColumn(name = "standard_section_id",
+ referencedColumnName = "id",
+ insertable = false,
+ updatable = false
+ )
+ private UtmComplianceStandardSection section;
+
+ @Column(name = "control_name",
+ nullable = false
+ )
+ @Size(min = 10, max = 200)
+ private String controlName;
+
+ @Column(name = "control_solution",
+ length = 2000
+ )
+ private String controlSolution;
+
+ @Column(name = "control_remediation",
+ length = 2000
+ )
+ private String controlRemediation;
+
+ @Enumerated(EnumType.STRING)
+ @Column(name = "control_strategy",
+ nullable = false
+ )
+ private ComplianceStrategy controlStrategy;
+
+ @OneToMany(
+ mappedBy = "controlConfig",
+ cascade = CascadeType.ALL,
+ orphanRemoval = true
+ )
+ private List queriesConfigs = new ArrayList<>();
+}
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceQueryConfig.java b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceQueryConfig.java
new file mode 100644
index 000000000..73435f9a2
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceQueryConfig.java
@@ -0,0 +1,76 @@
+package com.park.utmstack.domain.compliance;
+
+import com.park.utmstack.domain.compliance.enums.EvaluationRule;
+import com.park.utmstack.domain.index_pattern.UtmIndexPattern;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+@Getter
+@Setter
+@Entity
+@Table(name = "utm_compliance_query_config")
+public class UtmComplianceQueryConfig implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GenericGenerator(
+ name = "CustomIdentityGenerator",
+ strategy = "com.park.utmstack.util.CustomIdentityGenerator"
+ )
+ @GeneratedValue(generator = "CustomIdentityGenerator")
+ private Long id;
+
+ @Column(name = "query_name",
+ nullable = false,
+ columnDefinition = "TEXT"
+ )
+ @Size(min = 10, max = 200)
+ private String queryName;
+
+ @Column(name = "query_description",
+ length = 2000,
+ nullable = false,
+ columnDefinition = "TEXT"
+ )
+ private String queryDescription;
+
+ @Column(name = "sql_query",
+ length = 2000,
+ nullable = false,
+ columnDefinition = "TEXT"
+ )
+ private String sqlQuery;
+
+ @Enumerated(EnumType.STRING)
+ @Column(name = "evaluation_rule",
+ nullable = false
+ )
+ private EvaluationRule evaluationRule;
+
+ private Integer ruleValue;
+
+ @Column(name = "index_pattern_id",
+ nullable = false
+ )
+ private Long indexPatternId;
+
+ @ManyToOne
+ @JoinColumn(name = "index_pattern_id",
+ insertable = false,
+ updatable = false
+ )
+ private UtmIndexPattern indexPattern;
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(
+ name = "control_config_id",
+ nullable = false
+ )
+ private UtmComplianceControlConfig controlConfig;
+}
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportConfig.java b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportConfig.java
index 68a461af7..f90fcd0d7 100644
--- a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportConfig.java
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportConfig.java
@@ -11,6 +11,7 @@
import com.park.utmstack.domain.compliance.enums.ComplianceType;
import com.park.utmstack.domain.compliance.types.RequestParamFilter;
import com.park.utmstack.domain.shared_types.DataColumn;
+import com.park.utmstack.service.dto.auditable.AuditableDTO;
import com.park.utmstack.util.UtilSerializer;
import com.park.utmstack.util.exceptions.UtmSerializationException;
import org.hibernate.annotations.GenericGenerator;
@@ -20,13 +21,14 @@
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
+import java.util.Map;
/**
* A ComplianceTemplate.
*/
@Entity
@Table(name = "utm_compliance_report_config")
-public class UtmComplianceReportConfig implements Serializable {
+public class UtmComplianceReportConfig implements Serializable, AuditableDTO {
private static final long serialVersionUID = 1L;
@@ -351,4 +353,12 @@ public ComplianceStatus getConfigReportStatus() {
public void setConfigReportStatus(ComplianceStatus complianceStatus) {
this.configReportStatus = complianceStatus;
}
+
+ @Override
+ public Map toAuditMap() {
+ return Map.of(
+ "configReportName", configReportName != null ? configReportName : "",
+ "configSolution", configSolution != null ? configSolution : ""
+ );
+ }
}
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportSchedule.java b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportSchedule.java
index 1cf98403f..08f35d110 100644
--- a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportSchedule.java
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportSchedule.java
@@ -7,9 +7,12 @@
import com.park.utmstack.util.UtilSerializer;
import com.park.utmstack.util.exceptions.UtmSerializationException;
+import com.park.utmstack.service.dto.auditable.AuditableDTO;
+
import java.io.Serializable;
import java.time.Instant;
import java.util.List;
+import java.util.Map;
import javax.persistence.*;
import javax.validation.constraints.Size;
@@ -18,7 +21,7 @@
*/
@Entity
@Table(name = "utm_compliance_report_schedule")
-public class UtmComplianceReportSchedule implements Serializable {
+public class UtmComplianceReportSchedule implements Serializable, AuditableDTO {
private static final long serialVersionUID = 1L;
@@ -124,6 +127,14 @@ public void setUrlWithParams(String urlWithParams) {
this.urlWithParams = urlWithParams;
}
+ @Override
+ public Map toAuditMap() {
+ return Map.of(
+ "complianceId", complianceId != null ? complianceId : "",
+ "scheduleString", scheduleString != null ? scheduleString : ""
+ );
+ }
+
@Override
public boolean equals(Object o) {
if (o instanceof UtmComplianceReportSchedule) {
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceStandard.java b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceStandard.java
index 5b58e242c..df8c56bf4 100644
--- a/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceStandard.java
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceStandard.java
@@ -1,17 +1,19 @@
package com.park.utmstack.domain.compliance;
+import com.park.utmstack.service.dto.auditable.AuditableDTO;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
+import java.util.Map;
@Setter
@Getter
@Entity
@Table(name = "utm_compliance_standard")
-public class UtmComplianceStandard implements Serializable {
+public class UtmComplianceStandard implements Serializable, AuditableDTO {
private static final long serialVersionUID = 1L;
@Id
@@ -28,4 +30,11 @@ public class UtmComplianceStandard implements Serializable {
@Column(name = "system_owner")
private Boolean systemOwner;
+ @Override
+ public Map toAuditMap() {
+ return Map.of(
+ "standardName", standardName != null ? standardName : ""
+ );
+ }
+
}
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/enums/ComplianceStrategy.java b/backend/src/main/java/com/park/utmstack/domain/compliance/enums/ComplianceStrategy.java
new file mode 100644
index 000000000..f76c56de6
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/enums/ComplianceStrategy.java
@@ -0,0 +1,6 @@
+package com.park.utmstack.domain.compliance.enums;
+
+public enum ComplianceStrategy {
+ ALL,
+ ANY
+}
diff --git a/backend/src/main/java/com/park/utmstack/domain/compliance/enums/EvaluationRule.java b/backend/src/main/java/com/park/utmstack/domain/compliance/enums/EvaluationRule.java
new file mode 100644
index 000000000..3019c82ea
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/domain/compliance/enums/EvaluationRule.java
@@ -0,0 +1,8 @@
+package com.park.utmstack.domain.compliance.enums;
+
+public enum EvaluationRule {
+ NO_HITS_ALLOWED, // no results
+ MIN_HITS_REQUIRED, // at least N results
+ THRESHOLD_MAX, // a maximum of N results.
+ MATCH_FIELD_VALUE // a specific value in a field
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/park/utmstack/domain/correlation/config/UtmDataTypes.java b/backend/src/main/java/com/park/utmstack/domain/correlation/config/UtmDataTypes.java
index d75d493c8..eadba77a0 100644
--- a/backend/src/main/java/com/park/utmstack/domain/correlation/config/UtmDataTypes.java
+++ b/backend/src/main/java/com/park/utmstack/domain/correlation/config/UtmDataTypes.java
@@ -46,6 +46,10 @@ public class UtmDataTypes implements Serializable {
@Column(name = "system_owner", nullable = false)
private Boolean systemOwner;
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "module_id")
+ private com.park.utmstack.domain.application_modules.UtmModule module;
+
@ManyToMany(fetch = FetchType.LAZY, cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
@@ -121,4 +125,12 @@ public Boolean getSystemOwner() {
public void setSystemOwner(Boolean systemOwner) {
this.systemOwner = systemOwner;
}
+
+ public com.park.utmstack.domain.application_modules.UtmModule getModule() {
+ return module;
+ }
+
+ public void setModule(com.park.utmstack.domain.application_modules.UtmModule module) {
+ this.module = module;
+ }
}
diff --git a/backend/src/main/java/com/park/utmstack/domain/logstash_filter/UtmLogstashFilter.java b/backend/src/main/java/com/park/utmstack/domain/logstash_filter/UtmLogstashFilter.java
index 813f00894..be1bf87ed 100644
--- a/backend/src/main/java/com/park/utmstack/domain/logstash_filter/UtmLogstashFilter.java
+++ b/backend/src/main/java/com/park/utmstack/domain/logstash_filter/UtmLogstashFilter.java
@@ -4,6 +4,7 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.park.utmstack.domain.application_modules.UtmModule;
import com.park.utmstack.domain.correlation.config.UtmDataTypes;
+import com.park.utmstack.service.dto.auditable.AuditableDTO;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
@@ -11,13 +12,14 @@
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.Instant;
+import java.util.Map;
/**
* A UtmLogstashFilter.
*/
@Entity
@Table(name = "utm_logstash_filter")
-public class UtmLogstashFilter implements Serializable {
+public class UtmLogstashFilter implements Serializable, AuditableDTO {
private static final long serialVersionUID = 1L;
@@ -65,8 +67,9 @@ public class UtmLogstashFilter implements Serializable {
private Instant updatedAt;
@JsonIgnore
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "module_name", referencedColumnName = "module_name",insertable = false, updatable = false)
+ @ManyToOne(fetch = FetchType.LAZY, optional = true)
+ @org.hibernate.annotations.NotFound(action = org.hibernate.annotations.NotFoundAction.IGNORE)
+ @JoinColumn(name = "module_name", referencedColumnName = "module_name", insertable = false, updatable = false, nullable = true)
private UtmModule module;
public UtmLogstashFilter() {
@@ -181,4 +184,12 @@ public Instant getUpdatedAt() {
public void setUpdatedAt(Instant updatedAt) {
this.updatedAt = updatedAt;
}
+
+ @Override
+ public Map toAuditMap() {
+ return Map.of(
+ "filterName", filterName != null ? filterName : "",
+ "moduleName", moduleName != null ? moduleName : ""
+ );
+ }
}
diff --git a/backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceControlConfigRepository.java b/backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceControlConfigRepository.java
new file mode 100644
index 000000000..5d9d1b9a0
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceControlConfigRepository.java
@@ -0,0 +1,47 @@
+package com.park.utmstack.repository.compliance;
+
+import com.park.utmstack.domain.compliance.UtmComplianceControlConfig;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Optional;
+
+@Repository
+public interface UtmComplianceControlConfigRepository extends JpaRepository, JpaSpecificationExecutor {
+ @Query("""
+ SELECT c FROM UtmComplianceControlConfig c
+ LEFT JOIN FETCH c.section s
+ LEFT JOIN FETCH s.standard st
+ LEFT JOIN FETCH c.queriesConfigs q
+ WHERE c.id = :id
+ """)
+ Optional findByIdWithQueries(@Param("id") Long id);
+
+ @Query("""
+ SELECT DISTINCT c
+ FROM UtmComplianceControlConfig c
+ LEFT JOIN FETCH c.section s
+ JOIN FETCH s.standard st
+ LEFT JOIN FETCH c.queriesConfigs q
+ WHERE c.id IN :ids
+ """)
+ List findWithQueriesByIdIn(
+ @Param("ids") List ids);
+
+ static Specification bySection(Long sectionId) {
+ return (root, query, cb) ->
+ cb.equal(root.get("standardSectionId"), sectionId);
+ }
+
+ static Specification nameContains(String search) {
+ return (root, query, cb) ->
+ cb.like(cb.lower(root.get("controlName")), "%" + search.toLowerCase() + "%");
+ }
+}
diff --git a/backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceQueryConfigRepository.java b/backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceQueryConfigRepository.java
new file mode 100644
index 000000000..362d4a2a1
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceQueryConfigRepository.java
@@ -0,0 +1,10 @@
+package com.park.utmstack.repository.compliance;
+
+import com.park.utmstack.domain.compliance.UtmComplianceQueryConfig;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface UtmComplianceQueryConfigRepository extends JpaRepository {
+
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/park/utmstack/repository/correlation/rules/UtmCorrelationRulesRepository.java b/backend/src/main/java/com/park/utmstack/repository/correlation/rules/UtmCorrelationRulesRepository.java
index f0f0bc36c..4357c4c83 100644
--- a/backend/src/main/java/com/park/utmstack/repository/correlation/rules/UtmCorrelationRulesRepository.java
+++ b/backend/src/main/java/com/park/utmstack/repository/correlation/rules/UtmCorrelationRulesRepository.java
@@ -54,5 +54,9 @@ Page searchByFilters(@Param("ruleName") String ruleName,
@Param("ruleSearch") String ruleSearch,
Pageable pageable);
+ Optional findOneByRuleName(String ruleName);
+
+ List findAllBySystemOwnerIsTrue();
+
Optional findFirstBySystemOwnerIsTrueOrderByIdDesc();
}
diff --git a/backend/src/main/java/com/park/utmstack/repository/logstash_filter/UtmLogstashFilterRepository.java b/backend/src/main/java/com/park/utmstack/repository/logstash_filter/UtmLogstashFilterRepository.java
index 4826bf418..0e315dc23 100644
--- a/backend/src/main/java/com/park/utmstack/repository/logstash_filter/UtmLogstashFilterRepository.java
+++ b/backend/src/main/java/com/park/utmstack/repository/logstash_filter/UtmLogstashFilterRepository.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Repository;
import java.util.List;
+import java.util.Optional;
/**
@@ -19,9 +20,19 @@ public interface UtmLogstashFilterRepository extends JpaRepository ids);
+ List findAllBySystemOwnerIsTrue();
+
@Query(nativeQuery = true, value = "select utm_logstash_filter.* from utm_logstash_filter where :nameShort = any(string_to_array(utm_logstash_filter.module_name, ','))")
List findAllByModuleName(@Param("nameShort") String nameShort);
+ Optional findOneByModuleName(String moduleName);
+
+ Optional findFirstByDatatypeDataType(String dataType);
+
+ Optional findFirstBySystemOwnerIsTrueOrderByIdDesc();
+
+ Optional findFirstByLogstashFilterAndSystemOwnerIsTrue(String logstashFilter);
+
@Query("select ulf from UtmLogstashFilter ulf where ulf.id in (:filterList) and ulf.systemOwner=false")
List findAllByListOfId(@Param("filterList") List filterList);
diff --git a/backend/src/main/java/com/park/utmstack/service/DefinitionSyncService.java b/backend/src/main/java/com/park/utmstack/service/DefinitionSyncService.java
new file mode 100644
index 000000000..1a7a72456
--- /dev/null
+++ b/backend/src/main/java/com/park/utmstack/service/DefinitionSyncService.java
@@ -0,0 +1,293 @@
+package com.park.utmstack.service;
+
+import com.park.utmstack.config.Constants;
+import com.park.utmstack.domain.correlation.config.UtmDataTypes;
+import com.park.utmstack.domain.correlation.rules.UtmCorrelationRules;
+import com.park.utmstack.domain.logstash_filter.UtmLogstashFilter;
+import com.park.utmstack.repository.correlation.config.UtmDataTypesRepository;
+import com.park.utmstack.repository.correlation.rules.UtmCorrelationRulesRepository;
+import com.park.utmstack.repository.logstash_filter.UtmLogstashFilterRepository;
+import com.park.utmstack.service.correlation.rules.UtmCorrelationRulesService;
+import com.park.utmstack.service.dto.correlation.AdversaryType;
+import com.park.utmstack.service.dto.correlation.UtmCorrelationRulesDTO;
+import com.park.utmstack.service.dto.correlation.UtmCorrelationRulesMapper;
+import com.park.utmstack.service.dto.correlation.RuleYaml;
+import com.park.utmstack.service.logstash_filter.UtmLogstashFilterService;
+import lombok.RequiredArgsConstructor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.time.Instant;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+@Service
+@RequiredArgsConstructor
+public class DefinitionSyncService implements CommandLineRunner {
+
+ private final Logger log = LoggerFactory.getLogger(DefinitionSyncService.class);
+
+ private final UtmLogstashFilterRepository filterRepository;
+ private final UtmCorrelationRulesRepository rulesRepository;
+ private final UtmDataTypesRepository dataTypesRepository;
+ private final UtmCorrelationRulesService rulesService;
+ private final UtmCorrelationRulesMapper rulesMapper;
+ private final UtmLogstashFilterService filterService;
+
+ @Override
+ @Transactional
+ public void run(String... args) {
+ log.info("Starting definition sync from filesystem... ---");
+ try {
+ Set filesystemFilters = syncFilters();
+ Set filesystemRules = syncRules();
+
+ cleanupOrphanedFilters(filesystemFilters);
+ cleanupOrphanedRules(filesystemRules);
+
+ log.info("Definition sync completed successfully. ---");
+ } catch (Exception e) {
+ log.error("CRITICAL: Definition sync failed. Reason: {} ---", e.getMessage(), e);
+ }
+ }
+
+ private Set syncFilters() {
+ Set foundFilters = new HashSet<>();
+ Path filtersPath = Paths.get(".",Constants.APP_FILTER_DEFINITIONS);
+ if (!Files.exists(filtersPath) || !Files.isDirectory(filtersPath)) {
+ log.warn("Filters directory not found: {}", Constants.APP_FILTER_DEFINITIONS);
+ return foundFilters;
+ }
+
+ // Regex to extract the first dataType from the pipeline structure:
+ // pipeline:
+ // - dataTypes:
+ // - value
+ java.util.regex.Pattern dataTypePattern = java.util.regex.Pattern.compile(
+ "pipeline:\\s*\\n\\s*-\\s*dataTypes:\\s*\\n\\s*-\\s*([^\\s\\n]+)",
+ java.util.regex.Pattern.MULTILINE
+ );
+
+ try (Stream paths = Files.walk(filtersPath)) {
+ paths.filter(path -> Files.isRegularFile(path) && isYamlFile(path)).forEach(path -> {
+ try {
+ String content = Files.readString(path);
+ java.util.regex.Matcher matcher = dataTypePattern.matcher(content);
+ if (!matcher.find()) {
+ log.warn("Skipping filter file without dataType: {}", path);
+ return;
+ }
+
+ String dataTypeStr = matcher.group(1).trim().replace("\"", "").replace("'", "");
+ log.info("found dataType: {}", dataTypeStr);
+
+ Optional dataTypeEntity = dataTypesRepository.findOneByDataType(dataTypeStr.toLowerCase());
+
+ String moduleName = null;
+ if ("generic".equalsIgnoreCase(dataTypeStr)) {
+ moduleName = "GENERIC";
+ } else if (dataTypeEntity.isPresent() && dataTypeEntity.get().getModule() != null) {
+ moduleName = dataTypeEntity.get().getModule().getModuleName().toString();
+ }
+
+ if(moduleName==null){
+ log.error("module name for filter: {} with dataType: {} not found, ignoring...",path,dataTypeStr);
+ return;
+ }
+
+
+ Optional filterOpt = filterRepository.findFirstByLogstashFilterAndSystemOwnerIsTrue(content);
+
+ if (filterOpt.isPresent()) {
+ UtmLogstashFilter filter = filterOpt.get();
+ foundFilters.add(filter.getId());
+ if (!content.equals(filter.getLogstashFilter())) {
+ log.info("Updating existing filter for module: {}", moduleName);
+ filter.setLogstashFilter(content);
+ filter.setUpdatedAt(Instant.now());
+ try{
+ filterService.save(filter);
+ }
+ catch (Exception e) {
+ log.error("Error updating filter on file {}: {}", path, e.getMessage());
+ }
+ }
+ } else {
+ UtmLogstashFilter filter = new UtmLogstashFilter();
+ filter.setId(filterService.getSystemSequenceNextValue());
+ filter.setModuleName(moduleName);
+ filter.setFilterName(moduleName + " Filter");
+ filter.setLogstashFilter(content);
+ filter.setSystemOwner(true);
+ filter.setActive(true);
+ filter.setUpdatedAt(Instant.now());
+ foundFilters.add(filter.getId());
+
+
+ if (dataTypeEntity.isPresent()) {
+ filter.setDatatype(dataTypeEntity.get());
+ }
+
+ log.info("Creating filter from file {} for module: {} and dataType {}, filter: {}",path,moduleName, dataTypeStr,filter);
+ try{
+ filterService.save(filter);
+ }
+ catch (Exception e) {
+ log.error("Error creating filter on file {}: {}", path, e.getMessage());
+ }
+
+ }
+ } catch (IOException e) {
+ log.error("Error reading filter file {}: {}", path, e.getMessage());
+ } catch (Exception e) {
+ log.error("Error processing filter file {}: {}", path, e.getMessage());
+ }
+ });
+ } catch (IOException e) {
+ log.error("Error listing filters directory: {}", e.getMessage());
+ }
+ return foundFilters;
+ }
+
+ private Set syncRules() {
+ Set foundRules = new HashSet<>();
+ Path rulesPath = Paths.get(".",Constants.APP_RULE_DEFINITIONS);
+ if (!Files.exists(rulesPath) || !Files.isDirectory(rulesPath)) {
+ log.warn("Rules directory not found: {}", Constants.APP_RULE_DEFINITIONS);
+ return foundRules;
+ }
+
+ Yaml yaml = new Yaml();
+ try (Stream paths = Files.walk(rulesPath)) {
+
+ paths.filter(path -> Files.isRegularFile(path) && isYamlFile(path)).forEach(path -> {
+ try {
+ String content = Files.readString(path);
+ Object yamlObj = yaml.load(content);
+ List