59 lines
2.0 KiB
Go
59 lines
2.0 KiB
Go
// Copyright (C) MongoDB, Inc. 2024-present.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
// not use this file except in compliance with the License. You may obtain
|
|
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
package event
|
|
|
|
import (
|
|
"time"
|
|
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
|
"go.mongodb.org/mongo-driver/v2/mongo/address"
|
|
"go.mongodb.org/mongo-driver/v2/tag"
|
|
)
|
|
|
|
// ServerDescription contains information about a node in a cluster. This is
|
|
// created from hello command responses. If the value of the Kind field is
|
|
// LoadBalancer, only the Addr and Kind fields will be set. All other fields
|
|
// will be set to the zero value of the field's type.
|
|
type ServerDescription struct {
|
|
Addr address.Address
|
|
Arbiters []string
|
|
Compression []string // compression methods returned by server
|
|
CanonicalAddr address.Address
|
|
ElectionID bson.ObjectID
|
|
IsCryptd bool
|
|
HelloOK bool
|
|
Hosts []string
|
|
Kind string
|
|
LastWriteTime time.Time
|
|
MaxBatchCount uint32
|
|
MaxDocumentSize uint32
|
|
MaxMessageSize uint32
|
|
MaxWireVersion int32
|
|
MinWireVersion int32
|
|
Members []address.Address
|
|
Passives []string
|
|
Passive bool
|
|
Primary address.Address
|
|
ReadOnly bool
|
|
ServiceID *bson.ObjectID // Only set for servers that are deployed behind a load balancer.
|
|
SessionTimeoutMinutes *int64
|
|
SetName string
|
|
SetVersion uint32
|
|
Tags tag.Set
|
|
TopologyVersionProcessID bson.ObjectID
|
|
TopologyVersionCounter int64
|
|
}
|
|
|
|
// TopologyDescription contains information about a MongoDB cluster.
|
|
type TopologyDescription struct {
|
|
Servers []ServerDescription
|
|
SetName string
|
|
Kind string
|
|
SessionTimeoutMinutes *int64
|
|
CompatibilityErr error
|
|
}
|