@@ -17,12 +17,13 @@ package v1
1717import (
1818 "strings"
1919
20- "go.mongodb.org/atlas/mongodbatlas "
20+ "go.mongodb.org/atlas-sdk/v20250312002/admin "
2121 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
2323 "github.com/mongodb/mongodb-atlas-kubernetes/v2/api"
2424 "github.com/mongodb/mongodb-atlas-kubernetes/v2/api/v1/common"
2525 "github.com/mongodb/mongodb-atlas-kubernetes/v2/api/v1/status"
26+ "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/pointer"
2627)
2728
2829// AtlasBackupScheduleSpec defines the desired state of AtlasBackupSchedule
@@ -108,47 +109,50 @@ type AtlasBackupSchedule struct {
108109 Status status.BackupScheduleStatus `json:"status,omitempty"`
109110}
110111
111- func (in * AtlasBackupSchedule ) ToAtlas (clusterID , clusterName , replicaSetID string , policy * AtlasBackupPolicy ) * mongodbatlas. CloudProviderSnapshotBackupPolicy {
112- atlasPolicy := mongodbatlas. Policy {}
112+ func (in * AtlasBackupSchedule ) ToAtlas (clusterID , clusterName , zoneID string , policy * AtlasBackupPolicy ) * admin. DiskBackupSnapshotSchedule20240805 {
113+ atlasPolicy := admin. AdvancedDiskBackupSnapshotSchedulePolicy {}
113114
115+ items := make ([]admin.DiskBackupApiPolicyItem , 0 , len (policy .Spec .Items ))
114116 for _ , bpItem := range policy .Spec .Items {
115- atlasPolicy . PolicyItems = append (atlasPolicy . PolicyItems , mongodbatlas. PolicyItem {
117+ items = append (items , admin. DiskBackupApiPolicyItem {
116118 FrequencyInterval : bpItem .FrequencyInterval ,
117119 FrequencyType : strings .ToLower (bpItem .FrequencyType ),
118- RetentionValue : bpItem .RetentionValue ,
119120 RetentionUnit : strings .ToLower (bpItem .RetentionUnit ),
121+ RetentionValue : bpItem .RetentionValue ,
120122 })
121123 }
122-
123- result := & mongodbatlas. CloudProviderSnapshotBackupPolicy {
124- ClusterName : clusterName ,
125- ClusterID : clusterID ,
126- ReferenceHourOfDay : & in . Spec . ReferenceHourOfDay ,
127- ReferenceMinuteOfHour : & in .Spec .ReferenceMinuteOfHour ,
128- RestoreWindowDays : & in .Spec .RestoreWindowDays ,
129- UpdateSnapshots : & in .Spec .UpdateSnapshots ,
130- Policies : []mongodbatlas. Policy { atlasPolicy } ,
131- AutoExportEnabled : & in . Spec . AutoExportEnabled ,
132- UseOrgAndGroupNamesInExportPrefix : & in .Spec .UseOrgAndGroupNamesInExportPrefix ,
133- CopySettings : make ([]mongodbatlas. CopySetting , 0 , len (in .Spec .CopySettings ) ),
124+ atlasPolicy . PolicyItems = & items
125+
126+ result := & admin. DiskBackupSnapshotSchedule20240805 {
127+ ClusterName : pointer . MakePtrOrNil ( clusterName ) ,
128+ ClusterId : pointer . MakePtrOrNil ( clusterID ) ,
129+ ReferenceHourOfDay : pointer . MakePtr ( int ( in .Spec .ReferenceHourOfDay )) ,
130+ ReferenceMinuteOfHour : pointer . MakePtr ( int ( in .Spec .ReferenceMinuteOfHour )) ,
131+ RestoreWindowDays : pointer . MakePtr ( int ( in .Spec .RestoreWindowDays )) ,
132+ UpdateSnapshots : pointer . MakePtr ( in . Spec . UpdateSnapshots ) ,
133+ Policies : & []admin. AdvancedDiskBackupSnapshotSchedulePolicy { atlasPolicy } ,
134+ AutoExportEnabled : pointer . MakePtr ( in .Spec .AutoExportEnabled ) ,
135+ UseOrgAndGroupNamesInExportPrefix : pointer . MakePtr (in .Spec .UseOrgAndGroupNamesInExportPrefix ),
134136 }
135137
136138 if in .Spec .Export != nil {
137- result .Export = & mongodbatlas. Export {
138- ExportBucketID : in .Spec .Export .ExportBucketID ,
139- FrequencyType : in .Spec .Export .FrequencyType ,
139+ result .Export = & admin. AutoExportPolicy {
140+ ExportBucketId : pointer . MakePtr ( in .Spec .Export .ExportBucketID ) ,
141+ FrequencyType : pointer . MakePtr ( in .Spec .Export .FrequencyType ) ,
140142 }
141143 }
142144
145+ copySettings := make ([]admin.DiskBackupCopySetting20240805 , 0 , len (in .Spec .CopySettings ))
143146 for _ , copySetting := range in .Spec .CopySettings {
144- result . CopySettings = append (result . CopySettings , mongodbatlas. CopySetting {
145- CloudProvider : copySetting .CloudProvider ,
146- RegionName : copySetting .RegionName ,
147- ReplicationSpecID : & replicaSetID ,
148- ShouldCopyOplogs : copySetting .ShouldCopyOplogs ,
149- Frequencies : copySetting .Frequencies ,
147+ copySettings = append (copySettings , admin. DiskBackupCopySetting20240805 {
148+ CloudProvider : copySetting .CloudProvider ,
149+ RegionName : copySetting .RegionName ,
150+ ZoneId : zoneID ,
151+ ShouldCopyOplogs : copySetting .ShouldCopyOplogs ,
152+ Frequencies : & copySetting .Frequencies ,
150153 })
151154 }
155+ result .CopySettings = & copySettings
152156
153157 return result
154158}
0 commit comments