summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/hello.idl
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2021-02-10 14:30:01 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-02-10 15:26:00 +0000
commit87bcb24f50b65e08eb0d711edfb59b61ef3c1f91 (patch)
tree15385fc4b0c36072c95be9bb1fcb3e42b925c269 /src/mongo/db/repl/hello.idl
parent7d5cf026105db1693724db155b4f409b267ab352 (diff)
downloadmongo-87bcb24f50b65e08eb0d711edfb59b61ef3c1f91.tar.gz
SERVER-53150 Specify input/output to hello command
Diffstat (limited to 'src/mongo/db/repl/hello.idl')
-rw-r--r--src/mongo/db/repl/hello.idl245
1 files changed, 245 insertions, 0 deletions
diff --git a/src/mongo/db/repl/hello.idl b/src/mongo/db/repl/hello.idl
new file mode 100644
index 00000000000..e2ac86e1b76
--- /dev/null
+++ b/src/mongo/db/repl/hello.idl
@@ -0,0 +1,245 @@
+# Copyright (C) 2021-present MongoDB, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the Server Side Public License, version 1,
+# as published by MongoDB, Inc.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# Server Side Public License for more details.
+#
+# You should have received a copy of the Server Side Public License
+# along with this program. If not, see
+# <http://www.mongodb.com/licensing/server-side-public-license>.
+#
+# As a special exception, the copyright holders give permission to link the
+# code of portions of this program with the OpenSSL library under certain
+# conditions as described in each individual source file and distribute
+# linked combinations including the program with the OpenSSL library. You
+# must comply with the Server Side Public License in all respects for
+# all of the code used other than as permitted herein. If you modify file(s)
+# with this exception, you may extend this exception to your version of the
+# file(s), but you are not obligated to do so. If you do not wish to do so,
+# delete this exception statement from your version. If you delete this
+# exception statement from all source files in the program, then also delete
+# it in the license file.
+#
+
+global:
+ cpp_namespace: "mongo"
+
+imports:
+ - "mongo/db/auth/auth_types.idl"
+ - "mongo/db/repl/replication_types.idl"
+ - "mongo/idl/basic_types.idl"
+ - "mongo/rpc/metadata/client_metadata.idl"
+ - "mongo/rpc/topology_version.idl"
+
+structs:
+ HelloInternalClientField:
+ description: "Specifies min/max wire protocol versions"
+ strict: true
+ fields:
+ minWireVersion:
+ # Currently ignored
+ type: safeInt
+ default: 0
+ maxWireVersion:
+ type: safeInt
+
+ HelloLastWrite:
+ description: "Most recent op/write times for this node"
+ strict: true
+ fields:
+ opTime:
+ type: optime
+ optional: true
+ lastWriteDate:
+ type: date
+ optional: true
+ majorityOpTime:
+ type: optime
+ optional: true
+ majorityWriteDate:
+ type: date
+ optional: true
+
+ HelloCommandReply:
+ description: "Reply to 'hello' command"
+ strict: true
+ fields:
+ helloOk:
+ type: bool
+ default: true
+ clientSupportsHello:
+ type: bool
+ optional: true
+ configsvr:
+ type: safeInt
+ optional: true
+ maxBsonObjectSize:
+ type: safeInt64
+ optional: true
+ maxMessageSizeBytes:
+ type: safeInt64
+ optional: true
+ maxWriteBatchSize:
+ type: safeInt64
+ optional: true
+ localTime:
+ type: date
+ optional: true
+ logicalSessionTimeoutMinutes:
+ type: safeInt
+ optional: true
+ connectionId:
+ type: safeInt64
+ optional: true
+ minWireVersion:
+ type: safeInt
+ optional: true
+ maxWireVersion:
+ type: safeInt
+ optional: true
+ readOnly:
+ type: bool
+ optional: true
+ compression:
+ type: array<string>
+ optional: true
+ automationServiceDescriptor:
+ type: string
+ optional: true
+ saslSupportedMechs:
+ type: array<string>
+ optional: true
+ speculativeAuthenticate:
+ type: object
+ optional: true
+ msg:
+ type: string
+ optional: true
+ ##
+ ## ReplicationInfo
+ ##
+ topologyVersion:
+ type: TopologyVersion
+ ismaster:
+ # Replies will contain 'ismaster' OR 'isWritablePrimary', not both
+ type: bool
+ optional: true
+ isWritablePrimary:
+ type: bool
+ optional: true
+ ##
+ ## Using ReplSets
+ ##
+ hosts:
+ type: array<string>
+ optional: true
+ passives:
+ type: array<string>
+ optional: true
+ arbiters:
+ type: array<string>
+ optional: true
+ setName:
+ type: string
+ optional: true
+ primary:
+ type: string
+ optional: true
+ secondary:
+ type: bool
+ optional: true
+ info:
+ type: string
+ optional: true
+ isreplicaset:
+ type: bool
+ optional: true
+ setVersion:
+ type: safeInt
+ optional: true
+ arbiterOnly:
+ type: bool
+ optional: true
+ passive:
+ type: bool
+ optional: true
+ hidden:
+ type: bool
+ optional: true
+ buildIndexes:
+ type: bool
+ optional: true
+ slaveDelay:
+ # Reply will contain either slaveDelay or secondaryDelaySecs, but not both.
+ type: safeInt64
+ optional: true
+ secondaryDelaySecs:
+ type: safeInt64
+ optional: true
+ tags:
+ type: object
+ optional: true
+ me:
+ type: string
+ optional: true
+ electionId:
+ type: objectid
+ optional: true
+ lastWrite:
+ type: HelloLastWrite
+ optional: true
+
+commands:
+ hello:
+ # Aliases: 'isMaster', 'ismaster'
+ description: "Check if this server is primary for a replica set { hello: 1 }"
+ command_name: hello
+ namespace: ignored
+ cpp_name: HelloCommand
+ api_version: "1"
+ reply_type: HelloCommandReply
+ strict: true
+ fields:
+ awaitable:
+ type: safeBool
+ optional: true
+ unstable: true
+ forShell:
+ type: safeBool
+ default: false
+ hostInfo:
+ type: string
+ default: false
+ hangUpOnStepDown:
+ type: safeBool
+ default: true
+ internalClient:
+ type: HelloInternalClientField
+ optional: true
+ client:
+ type: ClientMetadata
+ optional: true
+ topologyVersion:
+ type: TopologyVersion
+ optional: true
+ maxAwaitTimeMS:
+ type: safeInt64
+ optional: true
+ validator: { gte: 0 }
+ helloOk:
+ type: safeBool
+ optional: true
+ compression:
+ type: array<string>
+ optional: true
+ saslSupportedMechs:
+ type: UserName
+ optional: true
+ speculativeAuthenticate:
+ type: object
+ optional: true