# Copyright (C) 2019-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 # . # # 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" cpp_includes: - "mongo/db/namespace_string.h" - "mongo/db/query/count_request.h" - "mongo/db/query/max_time_ms_parser.h" imports: - "mongo/db/basic_types.idl" - "mongo/crypto/fle_field_schema.idl" - "mongo/db/auth/action_type.idl" - "mongo/db/auth/access_checks.idl" - "mongo/db/query/hint.idl" types: countLimit: bson_serialization_type: any description: "The absolute value of an int for limit." cpp_type: "std::int64_t" deserializer: ::count_request::countParseLimit maxTimeMS: bson_serialization_type: any description: "An int representing max time ms." cpp_type: "std::int32_t" deserializer: "::mongo::parseMaxTimeMSForIDL" commands: count: description: "Parser for the 'count' command." command_name: count cpp_name: CountCommandRequest strict: true namespace: concatenate_with_db_or_uuid api_version: "1" access_check: complex: - check: is_authorized_to_parse_namespace_element - privilege: resource_pattern: exact_namespace action_type: find - privilege: resource_pattern: cluster action_type: useUUID # Dummy reply type as we won't use it to parse the count reply. reply_type: OkReply fields: query: description: "A query that selects which documents to count in the collection or view." type: object default: BSONObj() stability: stable limit: description: "The maximum number of matching documents to count." type: countLimit optional: true stability: stable skip: description: "The number of matching documents to skip before counting subsequent results." type: safeInt64 optional: true validator: { gte: 0 } stability: stable hint: description: "The index name to use or the index specification document." type: indexHint default: BSONObj() stability: stable collation: description: "The collation to use in the count command." type: object optional: true stability: stable fields: description: "A BSONObj added by the shell. Left in for backwards compatibility." type: object ignore: true stability: unstable readConcern: description: "A BSONObj read concern." type: object optional: true stability: stable maxTimeMS: type: maxTimeMS optional: true stability: stable $queryOptions: description: "Unwrapped read preference." cpp_name: queryOptions type: object optional: true stability: stable encryptionInformation: description: "Encryption Information schema and other tokens for CRUD commands" type: EncryptionInformation optional: true stability: unstable mirrored: description: "Indicates whether the operation is a mirrored read" type: optionalBool stability: unstable