POST /api/atlas/v2/groups/{groupId}/clusterConfigurations:validate

Checks if the given cluster configuration is valid and ready to be used to create or edit a cluster.

Role requirements
  • Project Cluster Manager

Path parameters

  • groupId string Required

    Unique 24-hexadecimal digit string that identifies your project. Use the /groups 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.

    Format should match the following pattern: ^([a-f0-9]{24})$.

Query parameters

  • envelope boolean

    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.

    Default value is false.

  • pretty boolean

    Flag that indicates whether the response body should be in the prettyprint format.

    Default value is false.

    Prettyprint
application/vnd.atlas.2025-03-12+json

Body Required

Cluster configuration to validate.

  • advancedConfiguration object

    Advanced MongoDB process configuration options applied to the cluster.

    Hide advancedConfiguration attributes Show advancedConfiguration attributes object
    • changeStreamOptionsPreAndPostImagesExpireAfterSeconds integer(int32)

      The minimum pre- and post-image retention time in seconds.

      Default value is -1.

      This option corresponds to the...
    • chunkMigrationConcurrency integer(int32)

      Number of threads on the source shard and the receiving shard for chunk migration. The number of threads should not exceed the half the total number of CPU cores in the sharded cluster.

      This option corresponds to the...
    • customOpensslCipherConfigTls12 array[string]

      The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when tlsCipherConfigMode is set to CUSTOM.

      Values are TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 or TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

    • customOpensslCipherConfigTls13 array[string]

      The custom OpenSSL cipher suite list for TLS 1.3. This field is only valid when tlsCipherConfigMode is set to CUSTOM.

      Not more than 4 elements. Values are TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256, or TLS_AES_128_CCM_SHA256.

    • defaultMaxTimeMS integer(int32)

      Default time limit in milliseconds for individual read operations to complete.

      This option corresponds to the...
    • defaultWriteConcern string

      Default level of acknowledgment requested from MongoDB for write operations when none is specified by the driver.

      This option corresponds to the...
    • javascriptEnabled boolean

      Flag that indicates whether the cluster allows execution of operations that perform server-side executions of JavaScript. When using 8.0+, we recommend disabling server-side JavaScript and using operators of aggregation pipeline as more performant alternative.

      This option corresponds to mod...
    • minimumEnabledTlsProtocol string

      Minimum Transport Layer Security (TLS) version that the cluster accepts for incoming connections. Clusters using TLS 1.0 or 1.1 should consider setting TLS 1.2 as the minimum TLS protocol version.

      Values are TLS1_0, TLS1_1, TLS1_2, or TLS1_3.

      This option corresponds to the...
    • noTableScan boolean

      Flag that indicates whether the cluster disables executing any query that requires a collection scan to return results.

      This option corresponds to the...
    • oplogMinRetentionHours number(double) | null

      Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.

      This option corresponds to the...
    • oplogSizeMB integer(int32) | null

      Storage limit of cluster's oplog expressed in megabytes. A value of null indicates that the cluster uses the default oplog size that MongoDB Cloud calculates.

      This option corresponds to the...
    • queryStatsLogVerbosity integer(int32)

      May be set to 1 (disabled) or 3 (enabled). When set to 3, Atlas will include redacted and anonymized $queryStats output in MongoDB logs. $queryStats output does not contain literals or field values. Enabling this setting might impact the performance of your cluster.

      This option corresponds to the...
    • sampleRefreshIntervalBIConnector integer(int32)

      Interval in seconds at which the mongosqld process re-samples data to create its relational schema.

      Minimum value is 0. Default value is 0.

      This option corresponds to the...
    • sampleSizeBIConnector integer(int32)

      Number of documents per database to sample when gathering schema information.

      Minimum value is 0.

      This option corresponds to the...
    • tlsCipherConfigMode string

      The TLS cipher suite configuration mode. The default mode uses the default cipher suites. The custom mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.

      Values are CUSTOM or DEFAULT.

    • transactionLifetimeLimitSeconds integer(int64)

      Lifetime, in seconds, of multi-document transactions. Atlas considers the transactions that exceed this limit as expired and so aborts them through a periodic clean-up process.

      Minimum value is 1.

      This option corresponds to the...
  • clusterDescription object Required

    Configuration of a MongoDB Atlas cluster, including its replication topology, instance sizing, storage, and operational settings.

    Hide clusterDescription attributes Show clusterDescription attributes object
    • acceptDataRisksAndForceReplicaSetReconfig string(date-time)

      If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set acceptDataRisksAndForceReplicaSetReconfig to the current date. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

      Reconfiguring a Replica Set du...
    • adaptiveCapacity string | null

      Governs adaptive capacity behavior of Azure nodes in single-cloud Azure clusters or multi-cloud clusters that include Azure nodes. Adaptive capacity enables fallback hardware selection when the primary instance family is unavailable. ENABLED means the cluster explicitly opts in to adaptive capacity. DISABLED means the cluster explicitly opts out; the cluster receives capacity errors instead of being placed on fallback hardware. null means the field is unset; Azure clusters use adaptive capacity by default when the feature is enabled at the group level. Setting this field for single-cloud AWS or GCP clusters is a no-op.

      Values are ENABLED or DISABLED.

    • advancedConfiguration object

      Group of settings that configures a subset of the advanced configuration details.

      Hide advancedConfiguration attributes Show advancedConfiguration attributes object
      • customOpensslCipherConfigTls12 array[string]

        The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when tlsCipherConfigMode is set to CUSTOM.

        Values are TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 or TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

      • customOpensslCipherConfigTls13 array[string]

        The custom OpenSSL cipher suite list for TLS 1.3. This field is only valid when tlsCipherConfigMode is set to CUSTOM.

        Not more than 4 elements. Values are TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256, or TLS_AES_128_CCM_SHA256.

      • minimumEnabledTlsProtocol string

        Minimum Transport Layer Security (TLS) version that the cluster accepts for incoming connections. Clusters using TLS 1.0 or 1.1 should consider setting TLS 1.2 as the minimum TLS protocol version.

        Values are TLS1_0, TLS1_1, TLS1_2, or TLS1_3.

        This option corresponds to the...
      • tlsCipherConfigMode string

        The TLS cipher suite configuration mode. The default mode uses the default cipher suites. The custom mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.

        Values are CUSTOM or DEFAULT.

    • backupEnabled boolean

      Flag that indicates whether the cluster can perform backups. If set to true, the cluster can perform backups. You must set this value to true for NVMe clusters. Backup uses Cloud Backups for dedicated clusters and Shared Cluster Backups for tenant clusters. If set to false, the cluster doesn't use backups.

      Default value is false.

      Cloud Backups
    • biConnector object

      Settings needed to configure the MongoDB Connector for Business Intelligence for this cluster.

      MongoDB Connector for Business...
      Hide biConnector attributes Show biConnector attributes object
      • enabled boolean

        Flag that indicates whether MongoDB Connector for Business Intelligence is enabled on the specified cluster.

      • readPreference string

        Data source node designated for the MongoDB Connector for Business Intelligence on MongoDB Cloud. The MongoDB Connector for Business Intelligence on MongoDB Cloud reads data from the primary, secondary, or analytics node based on your read preferences. Defaults to ANALYTICS node, or SECONDARY if there are no ANALYTICS nodes.

        Values are PRIMARY, SECONDARY, or ANALYTICS.

        Read preferences for BI Connector
    • clusterType string

      Configuration of nodes that comprise the cluster.

      Values are REPLICASET, SHARDED, or GEOSHARDED.

    • configServerManagementMode string

      Config Server Management Mode for creating or updating a sharded cluster. When configured as ATLAS_MANAGED, Atlas may automatically switch the cluster's config server type for optimal performance and savings. When configured as FIXED_TO_DEDICATED, the cluster will always use a dedicated config server.

      Values are ATLAS_MANAGED or FIXED_TO_DEDICATED. Default value is ATLAS_MANAGED.

      MongoDB Sharded Cluster Config...
    • diskWarmingMode string

      Disk warming mode selection.

      Values are FULLY_WARMED or VISIBLE_EARLIER. Default value is FULLY_WARMED.

      Reduce Secondary Disk Warming ...
    • encryptionAtRestProvider string

      Cloud service provider that manages your customer keys to provide an additional layer of encryption at rest for the cluster. To enable customer key management for encryption at rest, the cluster replicationSpecs[n].regionConfigs[m].{type}Specs.instanceSize setting must be M10 or higher and "backupEnabled" : false or omitted entirely.

      Values are NONE, AWS, AZURE, or GCP.

      Encryption at Rest using Custo...
    • globalClusterSelfManagedSharding boolean

      Set this field to configure the Sharding Management Mode when creating a new Global Cluster.

      When set to false, the management mode is set to Atlas-Managed Sharding. This mode fully manages the sharding of your Global Cluster and is built to provide a seamless deployment experience.

      When set to true, the management mode is set to Self-Managed Sharding. This mode leaves the management of shards in your hands and is built to provide an advanced and flexible deployment experience.

      This setting cannot be changed once the cluster is deployed.

      Creating a Global Cluster
    • labels array[object] Deprecated

      Collection of key-value pairs between 1 to 255 characters in length that tag and categorize the cluster. The MongoDB Cloud console doesn't display your labels.

      Cluster labels are deprecated and will be removed in a future release. We strongly recommend that you use Resource Tags instead.

      Resource Tags
      Hide labels attributes Show labels attributes object

      Human-readable labels applied to this MongoDB Cloud component.

      • key string

        Key applied to tag and categorize this component.

        Minimum length is 1, maximum length is 255.

      • value string

        Value set to the Key applied to tag and categorize this component.

        Minimum length is 1, maximum length is 255.

    • mongoDBEmployeeAccessGrant object

      MongoDB employee granted access level and expiration for a cluster.

      Hide mongoDBEmployeeAccessGrant attributes Show mongoDBEmployeeAccessGrant attributes object
      • expirationTime string(date-time) Required

        Expiration date for the employee access grant. This parameter expresses its value in the ISO 8601 timestamp format in UTC.

      • grantType string Required

        Level of access to grant to MongoDB Employees.

        Values are CLUSTER_DATABASE_LOGS, CLUSTER_INFRASTRUCTURE, or CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA.

    • mongoDBMajorVersion string

      MongoDB major version of the cluster. Set to the binary major version.

      On creation: Choose from the available versions of MongoDB, or leave unspecified for the current recommended default in the MongoDB Cloud platform. The recommended version is a recent Long Term Support version. The default is not guaranteed to be the most recently released version throughout the entire release cycle. For versions available in a specific project, see the linked documentation or use the API endpoint for project LTS versions endpoint.

      On update: Increase version only by 1 major version at a time. If the cluster is pinned to a MongoDB feature compatibility version exactly one major version below the current MongoDB version, the MongoDB version can be downgraded to the previous major version.

      Available MongoDB Versions in ...
    • name string

      Human-readable label that identifies the cluster.

      Format should match the following pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$.

    • paused boolean

      Flag that indicates whether the cluster is paused.

    • pitEnabled boolean

      Flag that indicates whether the cluster uses continuous cloud backups.

      Continuous Cloud Backups
    • redactClientLogData boolean

      Enable or disable log redaction.

      This setting configures the mongod or mongos to redact any document field contents from a message accompanying a given log event before logging. This prevents the program from writing potentially sensitive data stored on the database to the diagnostic log. Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.

      Use redactClientLogData in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements.

      Note: changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated.

      Log Redaction
    • replicaSetScalingStrategy string

      Set this field to configure the replica set scaling mode for your cluster.

      By default, Atlas scales under WORKLOAD_TYPE. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes.

      When configured as SEQUENTIAL, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads.

      When configured as NODE_TYPE, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads.

      Values are SEQUENTIAL, WORKLOAD_TYPE, or NODE_TYPE. Default value is WORKLOAD_TYPE.

      Modify the Replica Set Scaling...
    • replicationSpecs array[object]

      List of settings that configure your cluster regions. This array has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations.

      Hide replicationSpecs attributes Show replicationSpecs attributes object

      Details that explain how MongoDB Cloud replicates data on the specified MongoDB database.

      • regionConfigs array[object]

        Hardware specifications for nodes set for a given region. Each regionConfigs object must be unique by region and cloud provider within the replicationSpec. Each regionConfigs object describes the region's priority in elections and the number and type of MongoDB nodes that MongoDB Cloud deploys to the region. Each regionConfigs object must have either an analyticsSpecs object, electableSpecs object, or readOnlySpecs object. Tenant clusters only require electableSpecs. Dedicated clusters can specify any of these specifications, but must have at least one electableSpecs object within a replicationSpec.

        Example:

        If you set replicationSpecs[n].regionConfigs[m].analyticsSpecs.instanceSize : M30, set replicationSpecs[n].regionConfigs[m].electableSpecs.instanceSize : M30 if you have electable nodes and replicationSpecs[n].regionConfigs[m].readOnlySpecs.instanceSize : M30 if you have read-only nodes.

        One of:
      • zoneName string

        Human-readable label that describes the zone this shard belongs to in a Global Cluster. Provide this value only if clusterType : GEOSHARDED but not selfManagedSharding : true.

    • retainBackups boolean

      Flag that indicates whether the cluster retains backups.

      Default value is false.

    • rootCertType string

      Root Certificate Authority that MongoDB Atlas cluster uses. MongoDB Cloud supports Internet Security Research Group.

      Value is ISRGROOTX1. Default value is ISRGROOTX1.

    • tags array[object]

      List that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster.

      Resource Tags
      Hide tags attributes Show tags attributes object

      Key-value pair that tags and categorizes a MongoDB Cloud organization, project, or cluster. For example, environment : production.

      • key string Required

        Constant that defines the set of the tag. For example, environment in the environment : production tag.

        Minimum length is 1, maximum length is 255.

      • value string Required

        Variable that belongs to the set of the tag. For example, production in the environment : production tag.

        Minimum length is 1, maximum length is 255.

    • terminationProtectionEnabled boolean

      Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.

      Default value is false.

    • useAwsTimeBasedSnapshotCopyForFastInitialSync boolean

      Flag that indicates whether AWS time-based snapshot copies will be used instead of slower standard snapshot copies during fast Atlas cross-region initial syncs. This flag is only relevant for clusters containing AWS nodes.

      Default value is false.

    • versionReleaseSystem string

      Method by which the cluster maintains the MongoDB versions. If value is CONTINUOUS, you must not specify mongoDBMajorVersion.

      Values are LTS or CONTINUOUS. Default value is LTS.

  • clusterName string

    Name of the existing cluster to validate against when editing is true.

  • editing boolean Required

    When true, validates the configuration as an update to an existing cluster. When false, validates as a new cluster create.

  • searchDeploymentSpec object

    Hardware specification for the Search Nodes that back a search deployment.

    Hide searchDeploymentSpec attributes Show searchDeploymentSpec attributes object
    • instanceSize string Required

      Hardware specification for the Search Node instance sizes.

      Values are S20_HIGHCPU_NVME, S30_HIGHCPU_NVME, S40_HIGHCPU_NVME, S50_HIGHCPU_NVME, S60_HIGHCPU_NVME, S70_HIGHCPU_NVME, S80_HIGHCPU_NVME, S30_LOWCPU_NVME, S40_LOWCPU_NVME, S50_LOWCPU_NVME, S60_LOWCPU_NVME, S70_LOWCPU_NVME, S80_LOWCPU_NVME, S90_LOWCPU_NVME, S100_LOWCPU_NVME, S110_LOWCPU_NVME, S120_LOWCPU_NVME, S130_LOWCPU_NVME, S135_LOWCPU_NVME, S140_LOWCPU_NVME, S40_STORAGE_NVME, S50_STORAGE_NVME, S60_STORAGE_NVME, S80_STORAGE_NVME, or S90_STORAGE_NVME.

    • nodeCount integer(int32) Required

      Number of Search Nodes in the cluster.

      Minimum value is 2, maximum value is 32.

  • tags array[object]

    Optional list of resource tags.

    Not more than 50 elements.

    Hide tags attributes Show tags attributes object

    Key-value pair that tags and categorizes a MongoDB Cloud organization, project, or cluster. For example, environment : production.

    • key string Required

      Constant that defines the set of the tag. For example, environment in the environment : production tag.

      Minimum length is 1, maximum length is 255.

    • value string Required

      Variable that belongs to the set of the tag. For example, production in the environment : production tag.

      Minimum length is 1, maximum length is 255.

Responses

  • 200 application/vnd.atlas.2025-03-12+json

    Ok

    Hide headers attributes Show headers attributes
    • RateLimit-Limit

      The maximum number of requests that a user can make within a specific time window.

    • RateLimit-Remaining

      The number of requests remaining in the current rate limit window before the limit is reached.

    Hide response attributes Show response attributes object
    • errors array[object]

      List of validation errors, present only when valid is false.

      Not more than 100 elements.

      Hide errors attributes Show errors attributes object
      • errorCode string

        Machine-readable error code identifying the type of validation failure.

      • validationIssue string

        Description of the validation failure.

    • valid boolean

      Whether the cluster configuration is valid.

  • 400 application/json

    Bad Request.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 401 application/json

    Unauthorized.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 403 application/json

    Forbidden.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 404 application/json

    Not Found.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 429 application/json

    Too Many Requests.

    Hide headers attributes Show headers attributes
    • RateLimit-Limit

      The maximum number of requests that a user can make within a specific time window.

    • RateLimit-Remaining

      The number of requests remaining in the current rate limit window before the limit is reached.

    • Retry-After

      The minimum time you should wait, in seconds, before retrying the API request. This header might be returned for 429 or 503 error responses.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 500 application/json

    Internal Server Error.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

POST /api/atlas/v2/groups/{groupId}/clusterConfigurations:validate
atlas api clusters validateGroupClusterConfigurations --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.ValidateGroupClusterConfigurationsApiParams{}
	sdkResp, httpResp, err := client.ClustersApi.
		ValidateGroupClusterConfigurationsWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusterConfigurations:validate" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusterConfigurations:validate" \
  -d '{ <Payload> }'
Request examples
{
  "advancedConfiguration": {
    "changeStreamOptionsPreAndPostImagesExpireAfterSeconds": -1,
    "chunkMigrationConcurrency": 42,
    "customOpensslCipherConfigTls12": [
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    ],
    "customOpensslCipherConfigTls13": [
      "TLS_AES_256_GCM_SHA384"
    ],
    "defaultMaxTimeMS": 42,
    "defaultWriteConcern": "string",
    "javascriptEnabled": true,
    "minimumEnabledTlsProtocol": "TLS1_0",
    "noTableScan": true,
    "oplogMinRetentionHours": 42.0,
    "oplogSizeMB": 42,
    "queryStatsLogVerbosity": 42,
    "sampleRefreshIntervalBIConnector": 0,
    "sampleSizeBIConnector": 42,
    "tlsCipherConfigMode": "CUSTOM",
    "transactionLifetimeLimitSeconds": 42
  },
  "clusterDescription": {
    "acceptDataRisksAndForceReplicaSetReconfig": "2026-05-04T09:42:00Z",
    "adaptiveCapacity": "ENABLED",
    "advancedConfiguration": {
      "customOpensslCipherConfigTls12": [
        "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ],
      "customOpensslCipherConfigTls13": [
        "TLS_AES_256_GCM_SHA384"
      ],
      "minimumEnabledTlsProtocol": "TLS1_0",
      "tlsCipherConfigMode": "CUSTOM"
    },
    "backupEnabled": false,
    "biConnector": {
      "enabled": true,
      "readPreference": "PRIMARY"
    },
    "clusterType": "REPLICASET",
    "configServerManagementMode": "ATLAS_MANAGED",
    "diskWarmingMode": "FULLY_WARMED",
    "encryptionAtRestProvider": "NONE",
    "globalClusterSelfManagedSharding": true,
    "labels": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "mongoDBEmployeeAccessGrant": {
      "expirationTime": "2026-05-04T09:42:00Z",
      "grantType": "CLUSTER_DATABASE_LOGS"
    },
    "mongoDBMajorVersion": "string",
    "name": "string",
    "paused": true,
    "pitEnabled": true,
    "redactClientLogData": true,
    "replicaSetScalingStrategy": "WORKLOAD_TYPE",
    "replicationSpecs": [
      {
        "regionConfigs": [
          {
            "electableSpecs": {
              "diskSizeGB": 42.0,
              "diskIOPS": 42,
              "ebsVolumeType": "STANDARD",
              "instanceSize": "M10",
              "nodeCount": 42
            },
            "priority": 42,
            "providerName": "AWS",
            "regionName": "US_GOV_WEST_1",
            "analyticsAutoScaling": {
              "compute": {
                "enabled": true,
                "scaleDownEnabled": true
              },
              "diskGB": {
                "enabled": true
              }
            },
            "autoScaling": {
              "compute": {
                "enabled": true,
                "scaleDownEnabled": true
              },
              "diskGB": {
                "enabled": true
              }
            }
          }
        ],
        "zoneName": "string"
      }
    ],
    "retainBackups": false,
    "rootCertType": "ISRGROOTX1",
    "tags": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "terminationProtectionEnabled": false,
    "useAwsTimeBasedSnapshotCopyForFastInitialSync": false,
    "versionReleaseSystem": "LTS"
  },
  "clusterName": "string",
  "editing": true,
  "searchDeploymentSpec": {
    "instanceSize": "S20_HIGHCPU_NVME",
    "nodeCount": 2
  },
  "tags": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Response examples (200)
# Headers

# Payload
{
  "errors": [
    {
      "errorCode": "CLUSTER_NOT_FOUND",
      "validationIssue": "string"
    }
  ],
  "valid": true
}
Response examples (400)
{
  "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"
}
Response examples (401)
{
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "error": 401,
  "errorCode": "NOT_ORG_GROUP_CREATOR",
  "reason": "Unauthorized"
}
Response examples (403)
{
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "error": 403,
  "errorCode": "CANNOT_CHANGE_GROUP_NAME",
  "reason": "Forbidden"
}
Response examples (404)
{
  "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"
}
Response examples (429)
{
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "error": 429,
  "errorCode": "RATE_LIMITED",
  "reason": "Too Many Requests"
}
Response examples (500)
{
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "error": 500,
  "errorCode": "UNEXPECTED_ERROR",
  "reason": "Internal Server Error"
}