openapi: 3.0.1 info: description: "The MongoDB Atlas Administration API allows developers to manage all components in MongoDB Atlas.\n\nThe Atlas Administration API supports OAuth2 Service Accounts and HTTP Digest-based API keys. Service accounts are the recommended authentication method and API keys are considered a legacy option.\n\nTo authenticate with a Service Account, first exchange its client ID and secret for an access token using the OAuth 2.0 Client Credentials flow. Atlas provides a token endpoint at `POST https://cloud.mongodb.com/api/oauth/token`, which returns a Bearer token that is reusable and valid for 1 hour (3600 seconds).\n\nFor example, to [return a list of your organizations](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listorgs) with [cURL](https://en.wikipedia.org/wiki/CURL), first generate an access token and then use that token to call the same Atlas Administration API endpoint shown in the current example:\n\n```\nACCESS_TOKEN=$(curl -fsS --request POST https://cloud.mongodb.com/api/oauth/token \\\n --header \"Authorization: Basic $(printf '%s' \"${CLIENT_ID}:${CLIENT_SECRET}\" | base64 | tr -d '\\n')\" \\\n --header \"Content-Type: application/x-www-form-urlencoded\" \\\n --header \"Accept: application/json\" \\\n --data \"grant_type=client_credentials\" | jq -r '.access_token')\n\ncurl --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/orgs?pretty=true\"\n```\n\nIf your organization requires an IP access list for the Atlas Administration API, the token can be created from any IP address, but the API call that uses the token must originate from an allowed IP.\n\nTo learn more, see [Get Started with the Atlas Administration API](https://www.mongodb.com/docs/atlas/configure-api-access/). For support, see [MongoDB Support](https://www.mongodb.com/support/get-started).\n\nYou can also explore the various endpoints available through the Atlas Administration API in MongoDB's [Postman workspace](https://www.postman.com/mongodb-devrel/workspace/mongodb-atlas-administration-apis/) (requires a Postman account)." license: name: CC BY-NC-SA 3.0 US url: https://creativecommons.org/licenses/by-nc-sa/3.0/us/ termsOfService: https://www.mongodb.com/mongodb-management-service-terms-and-conditions title: MongoDB Atlas Administration Access Tracking Cloud Migration Service API version: '2.0' x-xgen-sha: 3d70e065843c008b9871ea7836c98c9de6f202f9 servers: - url: https://cloud.mongodb.com security: - ServiceAccounts: [] - DigestAuth: [] tags: - description: Manages the Cloud Migration Service. Source organizations, projects, and MongoDB clusters reside on Cloud Manager or Ops Manager. Destination organizations, projects, and MongoDB clusters reside on MongoDB Cloud. Source databases can't use any authentication except SCRAM-SHA. name: Cloud Migration Service paths: /api/atlas/v2/groups/{groupId}/liveMigrations: post: description: "Migrate one cluster that Cloud or Ops Manager manages to MongoDB Atlas.\n\n Please make sure to validate your migration before initiating it.\n\n You can use this API endpoint for push live migrations only. Your API Key must have the Organization Owner role to successfully call this resource.\n\n **NOTE**: Migrating time-series collections is not yet supported on MongoDB 6.0 or higher. Migrations on MongoDB 6.0 or higher will skip any time-series collections on the source cluster. Deprecated versions: v2-{2023-01-01}" externalDocs: description: Validate Migration url: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/validateMigration operationId: createGroupLiveMigration parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/envelope' - $ref: '#/components/parameters/pretty' requestBody: content: application/vnd.atlas.2024-05-30+json: schema: $ref: '#/components/schemas/LiveMigrationRequest20240530' x-xgen-version: '2024-05-30' description: One migration to be created. required: true responses: '201': content: application/vnd.atlas.2024-05-30+json: schema: $ref: '#/components/schemas/LiveMigrationResponse' x-xgen-version: '2024-05-30' description: Created headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Create One Migration for One Local Managed Cluster to MongoDB Atlas tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService createGroupLiveMigration --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.CreateGroupLiveMigrationApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tCreateGroupLiveMigrationWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X POST \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations\" \\\n -d '{ }'" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X POST \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations\" \\\n -d '{ }'" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/createGroupLiveMigration /api/atlas/v2/groups/{groupId}/liveMigrations/validate: post: description: 'Verifies whether the provided credentials, available disk space, MongoDB versions, and so on meet the requirements of the migration request. If the check passes, the migration can proceed. Your API Key must have the Organization Owner role to successfully call this resource. Deprecated versions: v2-{2023-01-01}' operationId: validateGroupLiveMigrations parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/envelope' - $ref: '#/components/parameters/pretty' requestBody: content: application/vnd.atlas.2024-05-30+json: schema: $ref: '#/components/schemas/LiveMigrationRequest20240530' x-xgen-version: '2024-05-30' description: One migration to be validated. required: true responses: '200': content: application/vnd.atlas.2024-05-30+json: schema: $ref: '#/components/schemas/LiveImportValidation' x-xgen-version: '2024-05-30' description: OK headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Validate One Migration Request tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService validateLiveMigrations --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.ValidateGroupLiveMigrationsApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tValidateGroupLiveMigrationsWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X POST \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/validate\" \\\n -d '{ }'" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X POST \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/validate\" \\\n -d '{ }'" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/validateGroupLiveMigrations x-xgen-method-verb-override: customMethod: true x-xgen-operation-id-override: validateLiveMigrations /api/atlas/v2/groups/{groupId}/liveMigrations/validate/{validationId}: get: description: Return the status of one migration validation job. Your API Key must have the Organization Owner role to successfully call this resource. operationId: getGroupLiveMigrationValidateStatus parameters: - $ref: '#/components/parameters/groupId' - description: Unique 24-hexadecimal digit string that identifies the validation job. in: path name: validationId required: true schema: example: 507f1f77bcf86cd799439011 pattern: ^([a-f0-9]{24})$ type: string - $ref: '#/components/parameters/envelope' responses: '200': content: application/vnd.atlas.2023-01-01+json: schema: $ref: '#/components/schemas/LiveImportValidation' x-xgen-version: '2023-01-01' description: OK headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Return One Migration Validation Job tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService getMigrationValidateStatus --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.GetGroupLiveMigrationValidateStatusApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tGetGroupLiveMigrationValidateStatusWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/validate/{validationId}?pretty=true\"" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/validate/{validationId}?pretty=true\"" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/getGroupLiveMigrationValidateStatus x-xgen-method-verb-override: customMethod: true verb: getStatus x-xgen-operation-id-override: getMigrationValidateStatus /api/atlas/v2/groups/{groupId}/liveMigrations/{liveMigrationId}: get: description: Return details of one cluster migration job. Each push live migration job uses one migration host. Your API Key must have the Organization Member role to successfully call this resource. operationId: getGroupLiveMigration parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/liveMigrationId' - $ref: '#/components/parameters/envelope' - $ref: '#/components/parameters/pretty' responses: '200': content: application/vnd.atlas.2023-01-01+json: schema: $ref: '#/components/schemas/LiveMigrationResponse' x-xgen-version: '2023-01-01' description: OK headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Return One Migration Job tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService getGroupLiveMigration --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.GetGroupLiveMigrationApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tGetGroupLiveMigrationWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/{liveMigrationId}?pretty=true\"" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/{liveMigrationId}?pretty=true\"" x-rolesRequirements: - Organization Member x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/getGroupLiveMigration /api/atlas/v2/groups/{groupId}/liveMigrations/{liveMigrationId}/cutover: put: description: Cut over the migrated cluster to MongoDB Atlas. Confirm when the cut over completes. When the cut over completes, MongoDB Atlas completes the live migration process and stops synchronizing with the source cluster. Your API Key must have the Organization Owner role to successfully call this resource. operationId: cutoverGroupLiveMigration parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/liveMigrationId' - $ref: '#/components/parameters/envelope' - $ref: '#/components/parameters/pretty' responses: '202': content: application/vnd.atlas.2023-01-01+json: x-xgen-version: '2023-01-01' description: Accepted. headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Cut Over One Migrated Cluster tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService cutoverMigration --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.CutoverGroupLiveMigrationApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tCutoverGroupLiveMigrationWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X PUT \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/{liveMigrationId}/cutover\" \\\n -d '{ }'" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X PUT \"https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations/{liveMigrationId}/cutover\" \\\n -d '{ }'" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/cutoverGroupLiveMigration x-xgen-method-verb-override: customMethod: true x-xgen-operation-id-override: cutoverMigration /api/atlas/v2/orgs/{orgId}/liveMigrations/availableProjects: get: description: Return all projects that you can migrate to the specified organization. operationId: listOrgLiveMigrationAvailableProjects parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/envelope' - $ref: '#/components/parameters/pretty' responses: '200': content: application/vnd.atlas.2023-01-01+json: schema: items: $ref: '#/components/schemas/LiveImportAvailableProject' type: array x-xgen-version: '2023-01-01' description: OK headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Return All Projects Available for Migration tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService listAvailableProjects --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.ListOrgLiveMigrationAvailableProjectsApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tListOrgLiveMigrationAvailableProjectsWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/liveMigrations/availableProjects?pretty=true\"" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X GET \"https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/liveMigrations/availableProjects?pretty=true\"" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/listOrgLiveMigrationAvailableProjects x-xgen-operation-id-override: listAvailableProjects /api/atlas/v2/orgs/{orgId}/liveMigrations/linkTokens: delete: description: Remove one organization link and its associated public API key. MongoDB Atlas uses the link-token for push live migrations only. Live migrations (push) let you securely push data from Cloud Manager or Ops Manager into MongoDB Atlas. Your API Key must have the Organization Owner role to successfully call this resource. operationId: deleteOrgLiveMigrationLinkTokens parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/envelope' responses: '204': content: application/vnd.atlas.2023-01-01+json: x-xgen-version: '2023-01-01' description: This endpoint does not return a response body. headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Remove One Link-Token tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService deleteLinkTokens --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.DeleteOrgLiveMigrationLinkTokensApiParams{}\n\thttpResp, err := client.CloudMigrationServiceApi.\n\t\tDeleteOrgLiveMigrationLinkTokensWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X DELETE \"https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/liveMigrations/linkTokens\"" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n -X DELETE \"https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/liveMigrations/linkTokens\"" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/deleteOrgLiveMigrationLinkTokens x-xgen-operation-id-override: deleteLinkTokens post: description: Create one link-token that contains all the information required to complete the link. MongoDB Atlas uses the link-token for push live migrations only. Live migration (push) allows you to securely push data from Cloud Manager or Ops Manager into MongoDB Atlas. Your API Key must have the Organization Owner role to successfully call this resource. operationId: createOrgLiveMigrationLinkToken parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/envelope' - $ref: '#/components/parameters/pretty' requestBody: content: application/vnd.atlas.2023-01-01+json: schema: $ref: '#/components/schemas/TargetOrgRequest' description: IP address access list entries associated with the migration. required: true responses: '200': content: application/vnd.atlas.2023-01-01+json: schema: $ref: '#/components/schemas/TargetOrg' x-xgen-version: '2023-01-01' description: OK headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServerError' summary: Create One Link-Token tags: - Cloud Migration Service x-codeSamples: - lang: cURL label: Atlas CLI source: atlas api cloudMigrationService createLinkToken --help - lang: go label: Go source: "import (\n\t\"os\"\n\t\"context\"\n\t\"log\"\n\tsdk \"go.mongodb.org/atlas-sdk/v20250312001/admin\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tclientID := os.Getenv(\"MONGODB_ATLAS_CLIENT_ID\")\n\tclientSecret := os.Getenv(\"MONGODB_ATLAS_CLIENT_SECRET\")\n\n\t// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth\n\tclient, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))\n\n\tif err != nil {\n\t\tlog.Fatalf(\"Error: %v\", err)\n\t}\n\n\tparams = &sdk.CreateOrgLiveMigrationLinkTokenApiParams{}\n\tsdkResp, httpResp, err := client.CloudMigrationServiceApi.\n\t\tCreateOrgLiveMigrationLinkTokenWithParams(ctx, params).\n\t\tExecute()\n}\n" - lang: cURL label: curl (Service Accounts) source: "curl --include --header \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X POST \"https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/liveMigrations/linkTokens\" \\\n -d '{ }'" - lang: cURL label: curl (Digest) source: "curl --user \"${PUBLIC_KEY}:${PRIVATE_KEY}\" \\\n --digest --include \\\n --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\\n --header \"Content-Type: application/json\" \\\n -X POST \"https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/liveMigrations/linkTokens\" \\\n -d '{ }'" x-rolesRequirements: - Organization Owner x-xgen-docs-url: https://mongodb.com/docs/atlas/reference/api-resources-spec/v2/#tag/Cloud-Migration-Service/operation/createOrgLiveMigrationLinkToken x-xgen-operation-id-override: createLinkToken components: schemas: LiveMigrationRequest20240530: properties: _id: description: Unique 24-hexadecimal digit string that identifies the migration request. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ readOnly: true type: string destination: $ref: '#/components/schemas/Destination' dropDestinationData: default: false description: Flag that indicates whether the migration process drops all collections from the destination cluster before the migration starts. type: boolean writeOnly: true links: description: List of one or more Uniform Resource Locators (URLs) that point to API sub-resources, related API resources, or both. RFC 5988 outlines these relationships. externalDocs: description: Web Linking Specification (RFC 5988) url: https://datatracker.ietf.org/doc/html/rfc5988 items: $ref: '#/components/schemas/Link' readOnly: true type: array migrationHosts: description: List of migration hosts used for this migration. items: example: vm001.example.com minLength: 1 type: string maxItems: 1 minItems: 1 type: array sharding: $ref: '#/components/schemas/ShardingRequest' source: $ref: '#/components/schemas/Source' required: - destination - migrationHosts - source type: object AvailableClustersDeployment: description: Deployments that can be migrated to MongoDB Atlas. properties: agentVersion: description: Version of MongoDB Agent that monitors/manages the cluster. readOnly: true type: string clusterId: description: Unique 24-hexadecimal digit string that identifies the cluster. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ readOnly: true type: string dbSizeBytes: description: Size of this database on disk at the time of the request expressed in bytes. example: 8192 format: int64 readOnly: true type: integer featureCompatibilityVersion: description: Version of MongoDB features that this cluster supports. externalDocs: description: MongoDB feature versions url: https://docs.mongodb.com/manual/reference/command/setFeatureCompatibilityVersion readOnly: true type: string managed: description: Flag that indicates whether Automation manages this cluster. readOnly: true type: boolean mongoDBVersion: description: Version of MongoDB that this cluster runs. readOnly: true type: string name: description: Human-readable label that identifies this cluster. example: Project X sharded cluster readOnly: true type: string oplogSizeMB: description: Size of the Oplog on disk at the time of the request expressed in MB. example: 3 format: int32 readOnly: true type: integer sharded: description: 'Flag that indicates whether someone configured this cluster as a sharded cluster. - If `true`, this cluster serves as a sharded cluster. - If `false`, this cluster serves as a replica set.' readOnly: true type: boolean shardsSize: description: Number of shards that comprise this cluster. example: 3 format: int32 readOnly: true type: integer tlsEnabled: description: Flag that indicates whether someone enabled TLS for this cluster. readOnly: true type: boolean required: - featureCompatibilityVersion - managed - mongoDBVersion - name - sharded - tlsEnabled title: Available Clusters type: object Destination: description: Document that describes the destination of the migration. properties: clusterName: description: Label that identifies the destination cluster. minLength: 1 type: string groupId: description: Unique 24-hexadecimal digit string that identifies the destination project. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ type: string hostnameSchemaType: description: The network type to use between the migration host and the destination cluster. enum: - PUBLIC - PRIVATE_LINK - VPC_PEERING minLength: 1 type: string privateLinkId: description: Represents the endpoint to use when the host schema type is `PRIVATE_LINK`. type: string required: - clusterName - groupId - hostnameSchemaType type: object Link: properties: href: description: Uniform Resource Locator (URL) that points another API resource to which this response has some relationship. This URL often begins with `https://cloud.mongodb.com/api/atlas`. example: https://cloud.mongodb.com/api/atlas type: string rel: description: Uniform Resource Locator (URL) that defines the semantic relationship between this resource and another API resource. This URL often begins with `https://cloud.mongodb.com/api/atlas`. example: self type: string type: object TargetOrgRequest: properties: accessListIps: description: IP address access list entries associated with the API key. items: description: One IP address access list entry associated with the API key. type: string type: array type: object LiveImportAvailableProject: properties: deployments: description: List of clusters that can be migrated to MongoDB Cloud. items: $ref: '#/components/schemas/AvailableClustersDeployment' type: array migrationHosts: description: Hostname of MongoDB Agent list that you configured to perform a migration. items: description: Hostname of MongoDB Agent that you configured to perform a migration. type: string type: array name: description: Human-readable label that identifies this project. maxLength: 64 minLength: 1 readOnly: true type: string projectId: description: Unique 24-hexadecimal digit string that identifies the project to be migrated. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ readOnly: true type: string required: - deployments - migrationHosts - name - projectId type: object TargetOrg: properties: linkToken: description: Link token that contains all the information required to complete the link. type: string required: - linkToken type: object ApiError: properties: badRequestDetail: $ref: '#/components/schemas/BadRequestDetail' detail: description: Describes the specific conditions or reasons that cause each type of error. type: string error: description: HTTP status code returned with this error. externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status format: int32 readOnly: true type: integer errorCode: description: Application error code returned with this error. readOnly: true type: string parameters: description: Parameters used to give more information about the error. items: type: object readOnly: true type: array reason: description: Application error message returned with this error. readOnly: true type: string required: - error - errorCode type: object LiveImportValidation: properties: _id: description: Unique 24-hexadecimal digit string that identifies the validation. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ readOnly: true type: string errorMessage: description: Reason why the validation job failed. nullable: true readOnly: true type: string groupId: description: Unique 24-hexadecimal digit string that identifies the project to validate. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ readOnly: true type: string sourceGroupId: description: Unique 24-hexadecimal digit string that identifies the source project. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ type: string status: description: State of the specified validation job returned at the time of the request. enum: - PENDING - SUCCESS - FAILED nullable: true readOnly: true type: string type: object ShardKeys: description: Document that configures the shard key on the destination cluster. properties: key: description: List of fields to use for the shard key. items: additionalProperties: type: object type: object type: array uniqueItems: true writeOnly: true required: - key type: object writeOnly: true BadRequestDetail: description: Bad request detail. properties: fields: description: Describes all violations in a client request. items: $ref: '#/components/schemas/FieldViolation' type: array readOnly: true type: object ShardingRequest: description: Document that configures sharding on the destination cluster when migrating from a replica set source to a sharded cluster destination on MongoDB 6.0 or higher. If you don't wish to shard any collections on the destination cluster, leave this empty. properties: createSupportingIndexes: description: Flag that lets the migration create supporting indexes for the shard keys, if none exists, as the destination cluster also needs compatible indexes for the specified shard keys. type: boolean writeOnly: true shardingEntries: description: List of shard configurations to shard destination collections. Atlas shards only those collections that you include in the sharding entries array. items: $ref: '#/components/schemas/ShardEntry' type: array uniqueItems: true writeOnly: true required: - createSupportingIndexes - shardingEntries type: object writeOnly: true Source: description: Document that describes the source of the migration. properties: caCertificatePath: description: Path to the CA certificate that signed SSL certificates use to authenticate to the source cluster. type: string clusterName: description: Label that identifies the source cluster name. minLength: 1 type: string groupId: description: Unique 24-hexadecimal digit string that identifies the source project. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ type: string managedAuthentication: description: Flag that indicates whether MongoDB Automation manages authentication to the source cluster. If true, do not provide values for username and password. type: boolean password: description: Password that authenticates the username to the source cluster. type: string writeOnly: true ssl: description: Flag that indicates whether you have SSL enabled. type: boolean username: description: Label that identifies the SCRAM-SHA user that connects to the source cluster. type: string writeOnly: true required: - clusterName - groupId - managedAuthentication - ssl type: object ShardEntry: description: Sharding configuration for a collection to be sharded on the destination cluster. properties: collection: description: Human-readable label that identifies the collection to be sharded on the destination cluster. type: string writeOnly: true database: description: Human-readable label that identifies the database that contains the collection to be sharded on the destination cluster. type: string writeOnly: true shardCollection: $ref: '#/components/schemas/ShardKeys' required: - collection - database - shardCollection type: object FieldViolation: properties: description: description: A description of why the request element is bad. type: string field: description: A path that leads to a field in the request body. type: string required: - description - field type: object LiveMigrationResponse: properties: _id: description: Unique 24-hexadecimal digit string that identifies the migration job. example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ readOnly: true type: string lagTimeSeconds: description: Replication lag between the source and destination clusters. Atlas returns this setting only during an active migration, before the cutover phase. format: int64 nullable: true readOnly: true type: integer migrationHosts: description: List of hosts running MongoDB Agents. These Agents can transfer your MongoDB data between one source and one destination cluster. items: description: One host running a MongoDB Agent. This Agent can transfer your MongoDB data between one source and one destination cluster. example: vm001.example.com pattern: ^([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-f]{1,4}:){7}([0-9a-f]{1,4})|(([a-z0-9]+\.){1,10}[a-z]+)?$ type: string readOnly: true type: array readyForCutover: description: Flag that indicates the migrated cluster can be cut over to MongoDB Atlas. readOnly: true type: boolean status: description: 'Progress made in migrating one cluster to MongoDB Atlas. `NEW`: Someone scheduled a local cluster migration to MongoDB Atlas. `FAILED`: The cluster migration to MongoDB Atlas failed. `COMPLETE`: The cluster migration to MongoDB Atlas succeeded. `EXPIRED`: MongoDB Atlas prepares to begin the cut over of the migrating cluster when source and destination clusters have almost synchronized. If `"readyForCutover" : true`, this synchronization starts a timer of 120 hours. You can extend this timer. If the timer expires, MongoDB Atlas returns this status. `WORKING`: The cluster migration to MongoDB Atlas is performing one of the following tasks: - Preparing connections to source and destination clusters. - Replicating data from source to destination. - Verifying MongoDB Atlas connection settings. - Stopping replication after the cut over.' enum: - NEW - WORKING - FAILED - COMPLETE - EXPIRED readOnly: true type: string type: object responses: internalServerError: content: application/json: example: detail: (This is just an example, the exception may not be related to this endpoint) error: 500 errorCode: UNEXPECTED_ERROR reason: Internal Server Error schema: $ref: '#/components/schemas/ApiError' description: Internal Server Error. forbidden: content: application/json: example: detail: (This is just an example, the exception may not be related to this endpoint) error: 403 errorCode: CANNOT_CHANGE_GROUP_NAME reason: Forbidden schema: $ref: '#/components/schemas/ApiError' description: Forbidden. tooManyRequests: content: application/json: example: detail: (This is just an example, the exception may not be related to this endpoint) error: 429 errorCode: RATE_LIMITED reason: Too Many Requests schema: $ref: '#/components/schemas/ApiError' description: Too Many Requests. headers: RateLimit-Limit: $ref: '#/components/headers/HeaderRateLimitLimit' RateLimit-Remaining: $ref: '#/components/headers/HeaderRateLimitRemaining' Retry-After: $ref: '#/components/headers/HeaderRetryAfter' unauthorized: content: application/json: example: detail: (This is just an example, the exception may not be related to this endpoint) error: 401 errorCode: NOT_ORG_GROUP_CREATOR reason: Unauthorized schema: $ref: '#/components/schemas/ApiError' description: Unauthorized. badRequest: content: application/json: example: detail: (This is just an example, the exception may not be related to this endpoint) No provider AWS exists. error: 400 errorCode: VALIDATION_ERROR reason: Bad Request schema: $ref: '#/components/schemas/ApiError' description: Bad Request. notFound: content: application/json: example: detail: (This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS error: 404 errorCode: RESOURCE_NOT_FOUND reason: Not Found schema: $ref: '#/components/schemas/ApiError' description: Not Found. parameters: envelope: description: Flag that indicates whether Application wraps the response in an `envelope` JSON object. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. Endpoints that return a list of results use the results object as an envelope. Application adds the status parameter to the response body. in: query name: envelope schema: default: false type: boolean groupId: description: 'Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](#tag/Projects/operation/listProjects) endpoint to retrieve all projects to which the authenticated user has access. **NOTE**: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group/project id remains the same. The resource and corresponding endpoints use the term groups.' in: path name: groupId required: true schema: example: 32b6e34b3d91647abb20e7b8 pattern: ^([a-f0-9]{24})$ type: string pretty: description: Flag that indicates whether the response body should be in the prettyprint format. in: query name: pretty schema: default: false externalDocs: description: Prettyprint url: https://en.wikipedia.org/wiki/Prettyprint type: boolean orgId: description: Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [`/orgs`](#tag/Organizations/operation/listOrganizations) endpoint to retrieve all organizations to which the authenticated user has access. in: path name: orgId required: true schema: example: 4888442a3354817a7320eb61 pattern: ^([a-f0-9]{24})$ type: string liveMigrationId: description: Unique 24-hexadecimal digit string that identifies the migration. in: path name: liveMigrationId required: true schema: example: 6296fb4c7c7aa997cf94e9a8 pattern: ^([a-f0-9]{24})$ type: string headers: HeaderRetryAfter: description: The minimum time you should wait, in seconds, before retrying the API request. This header might be returned for 429 or 503 error responses. schema: type: integer HeaderRateLimitLimit: description: The maximum number of requests that a user can make within a specific time window. schema: type: integer HeaderRateLimitRemaining: description: The number of requests remaining in the current rate limit window before the limit is reached. schema: type: integer securitySchemes: DigestAuth: scheme: digest type: http ServiceAccounts: description: Learn more about [Service Accounts](https://www.mongodb.com/docs/atlas/api/service-accounts-overview). flows: clientCredentials: scopes: {} tokenUrl: https://cloud.mongodb.com/api/oauth/token type: oauth2 x-externalLinks: - label: Back to Atlas Docs url: https://www.mongodb.com/docs/atlas/ - label: API Changelog url: https://www.mongodb.com/docs/atlas/reference/api-resources-spec/changelog/ x-topics: - content: The MongoDB Atlas Administration API is rate limited. To learn more about rate limiting, see the [Atlas Documentation on Rate Limiting](http://dochub.mongodb.org/core/atlas-api-rate-limit) title: Rate Limiting