99 "strings"
1010 "time"
1111
12+ adminpreview "github.com/mongodb/atlas-sdk-go/admin"
1213 admin20240530 "go.mongodb.org/atlas-sdk/v20240530005/admin"
1314 "go.mongodb.org/atlas-sdk/v20240805005/admin"
1415 matlasClient "go.mongodb.org/atlas/mongodbatlas"
@@ -32,6 +33,7 @@ type MongoDBClient struct {
3233 Atlas * matlasClient.Client
3334 AtlasV2 * admin.APIClient
3435 AtlasV220240530 * admin20240530.APIClient // used in advanced_cluster and cloud_backup_schedule for avoiding breaking changes
36+ AtlasPreview * adminpreview.APIClient // used for preview features, don't use in resources exposed in the provider list
3537 Config * Config
3638}
3739
@@ -110,13 +112,18 @@ func (c *Config) NewClient(ctx context.Context) (any, error) {
110112 return nil , err
111113 }
112114
115+ sdkPreviewClient , err := c .newSDKPreviewClient (client )
116+ if err != nil {
117+ return nil , err
118+ }
119+
113120 clients := & MongoDBClient {
114121 Atlas : atlasClient ,
115122 AtlasV2 : sdkV2Client ,
116123 AtlasV220240530 : sdkV220240530Client ,
124+ AtlasPreview : sdkPreviewClient ,
117125 Config : c ,
118126 }
119-
120127 return clients , nil
121128}
122129
@@ -127,13 +134,11 @@ func (c *Config) newSDKV2Client(client *http.Client) (*admin.APIClient, error) {
127134 admin .UseBaseURL (c .BaseURL ),
128135 admin .UseDebug (false )}
129136
130- // Initialize the MongoDB Versioned Atlas Client.
131- sdkv2 , err := admin .NewClient (opts ... )
137+ sdk , err := admin .NewClient (opts ... )
132138 if err != nil {
133139 return nil , err
134140 }
135-
136- return sdkv2 , nil
141+ return sdk , nil
137142}
138143
139144func (c * Config ) newSDKV220240530Client (client * http.Client ) (* admin20240530.APIClient , error ) {
@@ -143,13 +148,25 @@ func (c *Config) newSDKV220240530Client(client *http.Client) (*admin20240530.API
143148 admin20240530 .UseBaseURL (c .BaseURL ),
144149 admin20240530 .UseDebug (false )}
145150
146- // Initialize the MongoDB Versioned Atlas Client.
147- sdkv2 , err := admin20240530 .NewClient (opts ... )
151+ sdk , err := admin20240530 .NewClient (opts ... )
148152 if err != nil {
149153 return nil , err
150154 }
155+ return sdk , nil
156+ }
157+
158+ func (c * Config ) newSDKPreviewClient (client * http.Client ) (* adminpreview.APIClient , error ) {
159+ opts := []adminpreview.ClientModifier {
160+ adminpreview .UseHTTPClient (client ),
161+ adminpreview .UseUserAgent (userAgent (c )),
162+ adminpreview .UseBaseURL (c .BaseURL ),
163+ adminpreview .UseDebug (false )}
151164
152- return sdkv2 , nil
165+ sdk , err := adminpreview .NewClient (opts ... )
166+ if err != nil {
167+ return nil , err
168+ }
169+ return sdk , nil
153170}
154171
155172func (c * MongoDBClient ) GetRealmClient (ctx context.Context ) (* realm.Client , error ) {
0 commit comments