# Copyright (C) 2022-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/s/catalog/types_validators.h" - "mongo/s/request_types/migration_secondary_throttle_options.h" imports: - "mongo/db/write_concern_options.idl" - "mongo/idl/basic_types.idl" - "mongo/s/sharding_types.idl" enums: ForceJumbo: description: "This enum represents whether or not a migration should attempt to move a large range" type: int # Not `string` due to backwards compatibility values: kDoNotForce: 0 # do not attempt to migrate a large chunk kForceManual: 1 # manual moveChunk command specified `forceJumbo: true` kForceBalancer: 2 # balancer specified `forceJumbo: true` types: MigrationSecondaryThrottle: bson_serialization_type: object description: "Secondary throttle policy to adopt during the migration" cpp_type: "mongo::MigrationSecondaryThrottleOptions" serializer: mongo::MigrationSecondaryThrottleOptions::toBSON deserializer: mongo::MigrationSecondaryThrottleOptions::parseFromBSON structs: MoveRangeRequestBase: description: "Definition of the moveRange request fields shared by several commands." strict: false fields: toShard: type: shard_id description: "ID of the recipient shard" validator: callback: "validateShardId" min: type: object_owned description: "The min key of the range to move" optional: true max: type: object_owned description: "The max key of the range to move" optional: true waitForDelete: type: bool description: "If set, wait for the chunk migration to finish before returning" default: false commands: clusterMoveRange: command_name: moveRange cpp_name: ClusterMoveRange description: "Definition of the moveRange command called on routers." namespace: type type: namespacestring api_version: "" strict: false chained_structs: MoveRangeRequestBase: MoveRangeRequestBase fields: forceJumbo: type: bool description: "Specifies whether or not forcing jumbo chunks move" default: false secondaryThrottle: type: optionalBool description: "Secondary throttle policy to adopt during the migration" _configsvrMoveRange: command_name: _configsvrMoveRange cpp_name: ConfigsvrMoveRange description: "Definition of the moveRange command called from routers on the config server." namespace: type type: namespacestring api_version: "" strict: false chained_structs: MoveRangeRequestBase: MoveRangeRequestBase fields: forceJumbo: type: ForceJumbo description: "Specifies the policy to use for jumbo chunks" default: kDoNotForce secondaryThrottle: type: MigrationSecondaryThrottle description: "Secondary throttle policy to adopt during the migration" optional: true _shardsvrMoveRange: command_name: _shardsvrMoveRange command_alias: moveChunk cpp_name: ShardsvrMoveRange description: "Definition of the moveRange command called from the config server on shards." namespace: type type: namespacestring api_version: "" strict: false chained_structs: MoveRangeRequestBase: MoveRangeRequestBase fields: epoch: type: objectid description: "Epoch of the collection" default: mongo::OID() fromShard: type: shard_id description: "ID of the donor shard" validator: callback: "validateShardId" maxChunkSizeBytes: type: safeInt64 description: "Max size of data to move" forceJumbo: type: ForceJumbo description: "Specifies the policy to use for jumbo chunks" default: kDoNotForce secondaryThrottle: type: optionalBool description: "Secondary throttle policy to adopt during the migration"