SetShardVersionRequest SetShardVersionRequest::makeForInitNoPersist(
    const ConnectionString& configServer,
    const std::string& shardName,
    const ConnectionString& shardConnectionString) {
    auto ssv = SetShardVersionRequest(configServer, shardName, shardConnectionString);
    ssv._noConnectionVersioning = true;
    return ssv;
}
SetShardVersionRequest SetShardVersionRequest::makeForVersioning(
    const ConnectionString& configServer,
    const std::string& shardName,
    const ConnectionString& shardConnectionString,
    const NamespaceString& nss,
    const ChunkVersionAndOpTime& nssVersion,
    bool isAuthoritative) {
    return SetShardVersionRequest(
        configServer, shardName, shardConnectionString, nss, nssVersion, isAuthoritative);
}
SetShardVersionRequest SetShardVersionRequest::makeForVersioning(
    const ConnectionString& configServer,
    const ShardId& shardName,
    const ConnectionString& shardConnectionString,
    const NamespaceString& nss,
    const ChunkVersion& nssVersion,
    bool isAuthoritative) {
    invariant(nss.isValid());
    return SetShardVersionRequest(
        configServer, shardName, shardConnectionString, nss, nssVersion, isAuthoritative);
}
SetShardVersionRequest SetShardVersionRequest::makeForInit(
    const ConnectionString& configServer,
    const std::string& shardName,
    const ConnectionString& shardConnectionString) {
    return SetShardVersionRequest(configServer, shardName, shardConnectionString);
}