@@ -32,7 +32,7 @@ type AdvancedClustersService interface {
3232 Get (ctx context.Context , groupID , clusterName string ) (* AdvancedCluster , * Response , error )
3333 Create (ctx context.Context , groupID string , cluster * AdvancedCluster ) (* AdvancedCluster , * Response , error )
3434 Update (ctx context.Context , groupID , clusterName string , cluster * AdvancedCluster ) (* AdvancedCluster , * Response , error )
35- Delete (ctx context.Context , groupID , clusterName string ) (* Response , error )
35+ Delete (ctx context.Context , groupID , clusterName string , options * DeleteAdvanceClusterOptions ) (* Response , error )
3636 TestFailover (ctx context.Context , groupID , clusterName string ) (* Response , error )
3737}
3838
@@ -109,6 +109,11 @@ type AdvancedClustersResponse struct {
109109 TotalCount int `json:"totalCount,omitempty"`
110110}
111111
112+ type DeleteAdvanceClusterOptions struct {
113+ // Flag that indicates whether to retain backup snapshots for the deleted dedicated cluster.
114+ RetainBackups * bool `url:"retainBackups,omitempty"`
115+ }
116+
112117// List all clusters in the project associated to {GROUP-ID}.
113118//
114119// See more: https://docs.atlas.mongodb.com/reference/api/cluster-advanced/get-all-cluster-advanced/
@@ -227,7 +232,7 @@ func (s *AdvancedClustersServiceOp) Update(ctx context.Context, groupID, cluster
227232}
228233
229234// Delete the cluster specified to {CLUSTER-NAME} from the project associated to {GROUP-ID}.
230- func (s * AdvancedClustersServiceOp ) Delete (ctx context.Context , groupID , clusterName string ) (* Response , error ) {
235+ func (s * AdvancedClustersServiceOp ) Delete (ctx context.Context , groupID , clusterName string , options * DeleteAdvanceClusterOptions ) (* Response , error ) {
231236 if groupID == "" {
232237 return nil , NewArgError ("groupId" , "must be set" )
233238 }
@@ -239,6 +244,12 @@ func (s *AdvancedClustersServiceOp) Delete(ctx context.Context, groupID, cluster
239244 escapedEntry := url .PathEscape (clusterName )
240245 path := fmt .Sprintf ("%s/%s" , basePath , escapedEntry )
241246
247+ // Add query params from options
248+ path , err := setListOptions (path , options )
249+ if err != nil {
250+ return nil , err
251+ }
252+
242253 req , err := s .Client .NewRequest (ctx , http .MethodDelete , path , nil )
243254 if err != nil {
244255 return nil , err
0 commit comments