diff --git a/go.mod b/go.mod index 794f19eceb..bd4dc74a35 100644 --- a/go.mod +++ b/go.mod @@ -159,7 +159,7 @@ require ( k8s.io/apiextensions-apiserver v0.34.1 k8s.io/klog/v2 v2.130.1 k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect sigs.k8s.io/yaml v1.6.0 ) diff --git a/tools/ako2api/pkg/translate/crd.go b/internal/v3/translate/crd.go similarity index 100% rename from tools/ako2api/pkg/translate/crd.go rename to internal/v3/translate/crd.go diff --git a/tools/ako2api/internal/crds/parse.go b/internal/v3/translate/crds/parse.go similarity index 100% rename from tools/ako2api/internal/crds/parse.go rename to internal/v3/translate/crds/parse.go diff --git a/tools/ako2api/pkg/translate/deps.go b/internal/v3/translate/deps.go similarity index 96% rename from tools/ako2api/pkg/translate/deps.go rename to internal/v3/translate/deps.go index 948c925c5d..05da0eb5f4 100644 --- a/tools/ako2api/pkg/translate/deps.go +++ b/internal/v3/translate/deps.go @@ -50,7 +50,7 @@ func (d *Dependencies) MainObject() client.Object { return d.mainObj } -// Find looks for an object withing the dependencies by name and namespace +// Find looks for an object within the dependencies by name and namespace func (d *Dependencies) Find(name, namespace string) client.Object { ns := namespace if ns == SetFallbackNamespace { diff --git a/tools/ako2api/pkg/translate/mapping.go b/internal/v3/translate/mapping.go similarity index 100% rename from tools/ako2api/pkg/translate/mapping.go rename to internal/v3/translate/mapping.go diff --git a/tools/ako2api/pkg/translate/ref.go b/internal/v3/translate/ref.go similarity index 98% rename from tools/ako2api/pkg/translate/ref.go rename to internal/v3/translate/ref.go index aaa08c7d8b..017365697f 100644 --- a/tools/ako2api/pkg/translate/ref.go +++ b/internal/v3/translate/ref.go @@ -26,7 +26,7 @@ import ( "k8s.io/utils/strings/slices" "sigs.k8s.io/controller-runtime/pkg/client" - v1 "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/translate/samples/v1" + v1 "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/v3/translate/samples/v1" ) type EncodeDecodeFunc func(any) (any, error) @@ -40,7 +40,7 @@ var ( encoders = map[string]EncodeDecodeFunc{ "v1/secrets": func(in any) (any, error) { - return secretEncode((in).(string)) + return secretEncode((in).(string)), nil }, } @@ -229,7 +229,7 @@ func (km kubeMapping) FetchReferencedValue(target string, reference map[string]a if err != nil && !errors.Is(err, ErrNotFound) { return nil, fmt.Errorf("failed to resolve reference properties: %w", err) } - if err == ErrNotFound { + if errors.Is(err, ErrNotFound) { var err error value, err = km.fetchFromPropertySelectors(resourceMap, target) if errors.Is(err, ErrNotFound) { diff --git a/tools/ako2api/pkg/translate/samples/crds.yaml b/internal/v3/translate/samples/crds.yaml similarity index 99% rename from tools/ako2api/pkg/translate/samples/crds.yaml rename to internal/v3/translate/samples/crds.yaml index 98adb27723..e401a4398f 100644 --- a/tools/ako2api/pkg/translate/samples/crds.yaml +++ b/internal/v3/translate/samples/crds.yaml @@ -24,7 +24,7 @@ metadata: spec: properties: v20250312: - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: organizations.atlas.generated.mongodb.com spec: @@ -215,7 +215,7 @@ metadata: spec: properties: v20250312: - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: groups.atlas.generated.mongodb.com spec: @@ -416,7 +416,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: networkpeeringconnections.atlas.generated.mongodb.com spec: @@ -651,7 +651,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: databaseusers.atlas.generated.mongodb.com spec: @@ -931,7 +931,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: backupcompliancepolicies.atlas.generated.mongodb.com spec: @@ -1220,7 +1220,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: backupschedules.atlas.generated.mongodb.com spec: @@ -1566,7 +1566,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: datafederations.atlas.generated.mongodb.com spec: @@ -2119,7 +2119,7 @@ metadata: spec: properties: v20250312: - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: organizationsettings.atlas.generated.mongodb.com spec: @@ -2280,7 +2280,7 @@ metadata: spec: properties: v20250312: - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: teams.atlas.generated.mongodb.com spec: @@ -2429,7 +2429,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: networkpermissionentrieses.atlas.generated.mongodb.com spec: @@ -2618,7 +2618,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: clusters.atlas.generated.mongodb.com spec: @@ -3732,7 +3732,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: searchindexes.atlas.generated.mongodb.com spec: @@ -4267,7 +4267,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: sampledatasets.atlas.generated.mongodb.com spec: @@ -4438,7 +4438,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: customroles.atlas.generated.mongodb.com spec: @@ -4653,7 +4653,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: flexclusters.atlas.generated.mongodb.com spec: @@ -5063,7 +5063,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: groupalertsconfigs.atlas.generated.mongodb.com spec: @@ -5839,7 +5839,7 @@ metadata: version: v1 x-openapi-mapping: property: $.groupId - x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312005/admin + x-atlas-sdk-version: go.mongodb.org/atlas-sdk/v20250312006/admin creationTimestamp: null name: thirdpartyintegrations.atlas.generated.mongodb.com spec: diff --git a/tools/ako2api/pkg/translate/samples/v1/backupcompliancepolicy.go b/internal/v3/translate/samples/v1/backupcompliancepolicy.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/backupcompliancepolicy.go rename to internal/v3/translate/samples/v1/backupcompliancepolicy.go index 4503808424..19973f699b 100644 --- a/tools/ako2api/pkg/translate/samples/v1/backupcompliancepolicy.go +++ b/internal/v3/translate/samples/v1/backupcompliancepolicy.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/backupschedule.go b/internal/v3/translate/samples/v1/backupschedule.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/backupschedule.go rename to internal/v3/translate/samples/v1/backupschedule.go index 1c1c74fe60..06a1c4be69 100644 --- a/tools/ako2api/pkg/translate/samples/v1/backupschedule.go +++ b/internal/v3/translate/samples/v1/backupschedule.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/cluster.go b/internal/v3/translate/samples/v1/cluster.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/cluster.go rename to internal/v3/translate/samples/v1/cluster.go index c7f684981d..ec36349892 100644 --- a/tools/ako2api/pkg/translate/samples/v1/cluster.go +++ b/internal/v3/translate/samples/v1/cluster.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/customrole.go b/internal/v3/translate/samples/v1/customrole.go similarity index 98% rename from tools/ako2api/pkg/translate/samples/v1/customrole.go rename to internal/v3/translate/samples/v1/customrole.go index 7e4cc5f86e..4ede8419b8 100644 --- a/tools/ako2api/pkg/translate/samples/v1/customrole.go +++ b/internal/v3/translate/samples/v1/customrole.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/databaseuser.go b/internal/v3/translate/samples/v1/databaseuser.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/databaseuser.go rename to internal/v3/translate/samples/v1/databaseuser.go index 33f51ce6cf..d4fb6a625d 100644 --- a/tools/ako2api/pkg/translate/samples/v1/databaseuser.go +++ b/internal/v3/translate/samples/v1/databaseuser.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/datafederation.go b/internal/v3/translate/samples/v1/datafederation.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/datafederation.go rename to internal/v3/translate/samples/v1/datafederation.go index 66496f76fd..db72ee41a9 100644 --- a/tools/ako2api/pkg/translate/samples/v1/datafederation.go +++ b/internal/v3/translate/samples/v1/datafederation.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/doc.go b/internal/v3/translate/samples/v1/doc.go similarity index 100% rename from tools/ako2api/pkg/translate/samples/v1/doc.go rename to internal/v3/translate/samples/v1/doc.go diff --git a/tools/ako2api/pkg/translate/samples/v1/flexcluster.go b/internal/v3/translate/samples/v1/flexcluster.go similarity index 98% rename from tools/ako2api/pkg/translate/samples/v1/flexcluster.go rename to internal/v3/translate/samples/v1/flexcluster.go index c89bc20a14..2ba1fddd4a 100644 --- a/tools/ako2api/pkg/translate/samples/v1/flexcluster.go +++ b/internal/v3/translate/samples/v1/flexcluster.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/group.go b/internal/v3/translate/samples/v1/group.go similarity index 100% rename from tools/ako2api/pkg/translate/samples/v1/group.go rename to internal/v3/translate/samples/v1/group.go diff --git a/tools/ako2api/pkg/translate/samples/v1/groupalertsconfig.go b/internal/v3/translate/samples/v1/groupalertsconfig.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/groupalertsconfig.go rename to internal/v3/translate/samples/v1/groupalertsconfig.go index 9f8e14c780..5fd87dd3a3 100644 --- a/tools/ako2api/pkg/translate/samples/v1/groupalertsconfig.go +++ b/internal/v3/translate/samples/v1/groupalertsconfig.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/networkpeeringconnection.go b/internal/v3/translate/samples/v1/networkpeeringconnection.go similarity index 98% rename from tools/ako2api/pkg/translate/samples/v1/networkpeeringconnection.go rename to internal/v3/translate/samples/v1/networkpeeringconnection.go index e7dd6273bb..5c4a75215a 100644 --- a/tools/ako2api/pkg/translate/samples/v1/networkpeeringconnection.go +++ b/internal/v3/translate/samples/v1/networkpeeringconnection.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/networkpermissionentries.go b/internal/v3/translate/samples/v1/networkpermissionentries.go similarity index 98% rename from tools/ako2api/pkg/translate/samples/v1/networkpermissionentries.go rename to internal/v3/translate/samples/v1/networkpermissionentries.go index 454adfd4f8..48fb5499ab 100644 --- a/tools/ako2api/pkg/translate/samples/v1/networkpermissionentries.go +++ b/internal/v3/translate/samples/v1/networkpermissionentries.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/organization.go b/internal/v3/translate/samples/v1/organization.go similarity index 100% rename from tools/ako2api/pkg/translate/samples/v1/organization.go rename to internal/v3/translate/samples/v1/organization.go diff --git a/tools/ako2api/pkg/translate/samples/v1/organizationsetting.go b/internal/v3/translate/samples/v1/organizationsetting.go similarity index 100% rename from tools/ako2api/pkg/translate/samples/v1/organizationsetting.go rename to internal/v3/translate/samples/v1/organizationsetting.go diff --git a/tools/ako2api/pkg/translate/samples/v1/sampledataset.go b/internal/v3/translate/samples/v1/sampledataset.go similarity index 97% rename from tools/ako2api/pkg/translate/samples/v1/sampledataset.go rename to internal/v3/translate/samples/v1/sampledataset.go index dfd9738f07..22fee33349 100644 --- a/tools/ako2api/pkg/translate/samples/v1/sampledataset.go +++ b/internal/v3/translate/samples/v1/sampledataset.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/scheme.go b/internal/v3/translate/samples/v1/scheme.go similarity index 100% rename from tools/ako2api/pkg/translate/samples/v1/scheme.go rename to internal/v3/translate/samples/v1/scheme.go diff --git a/tools/ako2api/pkg/translate/samples/v1/searchindex.go b/internal/v3/translate/samples/v1/searchindex.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/searchindex.go rename to internal/v3/translate/samples/v1/searchindex.go index 5da4a7326c..d9af0c99df 100644 --- a/tools/ako2api/pkg/translate/samples/v1/searchindex.go +++ b/internal/v3/translate/samples/v1/searchindex.go @@ -3,9 +3,10 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/team.go b/internal/v3/translate/samples/v1/team.go similarity index 100% rename from tools/ako2api/pkg/translate/samples/v1/team.go rename to internal/v3/translate/samples/v1/team.go diff --git a/tools/ako2api/pkg/translate/samples/v1/thirdpartyintegration.go b/internal/v3/translate/samples/v1/thirdpartyintegration.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/thirdpartyintegration.go rename to internal/v3/translate/samples/v1/thirdpartyintegration.go index 017520ffd0..3562feb624 100644 --- a/tools/ako2api/pkg/translate/samples/v1/thirdpartyintegration.go +++ b/internal/v3/translate/samples/v1/thirdpartyintegration.go @@ -3,8 +3,9 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) func init() { diff --git a/tools/ako2api/pkg/translate/samples/v1/zz_generated.deepcopy.go b/internal/v3/translate/samples/v1/zz_generated.deepcopy.go similarity index 99% rename from tools/ako2api/pkg/translate/samples/v1/zz_generated.deepcopy.go rename to internal/v3/translate/samples/v1/zz_generated.deepcopy.go index 57cb959f55..eecc7c3b96 100644 --- a/tools/ako2api/pkg/translate/samples/v1/zz_generated.deepcopy.go +++ b/internal/v3/translate/samples/v1/zz_generated.deepcopy.go @@ -5,10 +5,11 @@ package v1 import ( - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" + + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/tools/ako2api/pkg/translate/secret.go b/internal/v3/translate/secret.go similarity index 88% rename from tools/ako2api/pkg/translate/secret.go rename to internal/v3/translate/secret.go index 23562ba694..b10786ec5e 100644 --- a/tools/ako2api/pkg/translate/secret.go +++ b/internal/v3/translate/secret.go @@ -28,6 +28,6 @@ func secretDecode(value string) (string, error) { return string(bytes), nil } -func secretEncode(value string) (string, error) { - return base64.StdEncoding.EncodeToString(([]byte)(value)), nil +func secretEncode(value string) string { + return base64.StdEncoding.EncodeToString(([]byte)(value)) } diff --git a/tools/ako2api/pkg/translate/translator.go b/internal/v3/translate/translator.go similarity index 100% rename from tools/ako2api/pkg/translate/translator.go rename to internal/v3/translate/translator.go diff --git a/tools/ako2api/pkg/translate/translator_test.go b/internal/v3/translate/translator_test.go similarity index 56% rename from tools/ako2api/pkg/translate/translator_test.go rename to internal/v3/translate/translator_test.go index 7b7d503a26..f6b4d2b46c 100644 --- a/tools/ako2api/pkg/translate/translator_test.go +++ b/internal/v3/translate/translator_test.go @@ -25,17 +25,17 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - admin2025 "go.mongodb.org/atlas-sdk/v20250312005/admin" + admin2025 "go.mongodb.org/atlas-sdk/v20250312006/admin" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/internal/crds" - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/internal/pointer" - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/k8s" - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/translate" - v1 "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/pkg/translate/samples/v1" + "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/pointer" + "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/v3/translate" + "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/v3/translate/crds" + v1 "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/v3/translate/samples/v1" + "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/k8s" ) const ( @@ -60,7 +60,7 @@ func TestFromAPI(t *testing.T) { input := admin2025.Group{ Created: time.Date(2025, 1, 1, 1, 30, 15, 0, time.UTC), ClusterCount: 0, - Id: pointer.Get("6127378123219"), + Id: pointer.MakePtr("6127378123219"), Name: "test-project", OrgId: testProjectID, Tags: &[]admin2025.ResourceTag{ @@ -73,7 +73,7 @@ func TestFromAPI(t *testing.T) { Value: "value", }, }, - WithDefaultAlertsSettings: pointer.Get(true), + WithDefaultAlertsSettings: pointer.MakePtr(true), } target := v1.Group{} want := []client.Object{ @@ -93,14 +93,14 @@ func TestFromAPI(t *testing.T) { Value: "value", }, }, - WithDefaultAlertsSettings: pointer.Get(true), + WithDefaultAlertsSettings: pointer.MakePtr(true), }, }, }, Status: v1.GroupStatus{ V20250312: &v1.GroupStatusV20250312{ Created: "2025-01-01T01:30:15Z", - Id: pointer.Get("6127378123219"), + Id: pointer.MakePtr("6127378123219"), }, }, }, @@ -113,28 +113,28 @@ func TestFromAPI(t *testing.T) { name: "dbuser with secret and group refs", test: func(t *testing.T) { input := admin2025.CloudDatabaseUser{ - AwsIAMType: pointer.Get("NONE AWS"), + AwsIAMType: pointer.MakePtr("NONE AWS"), DatabaseName: "dbname", - DeleteAfterDate: pointer.Get(time.Date(2025, 2, 1, 1, 30, 15, 0, time.UTC)), - Description: pointer.Get("sample db user"), + DeleteAfterDate: pointer.MakePtr(time.Date(2025, 2, 1, 1, 30, 15, 0, time.UTC)), + Description: pointer.MakePtr("sample db user"), GroupId: testProjectID, Labels: &[]admin2025.ComponentLabel{ { - Key: pointer.Get("key0"), - Value: pointer.Get("value0"), + Key: pointer.MakePtr("key0"), + Value: pointer.MakePtr("value0"), }, { - Key: pointer.Get("key1"), - Value: pointer.Get("value1"), + Key: pointer.MakePtr("key1"), + Value: pointer.MakePtr("value1"), }, }, - LdapAuthType: pointer.Get("NONE LDAP"), - OidcAuthType: pointer.Get("NONE OIDC"), + LdapAuthType: pointer.MakePtr("NONE LDAP"), + OidcAuthType: pointer.MakePtr("NONE OIDC"), // TODO: new crd should put this on a secret - Password: pointer.Get("fakepass"), + Password: pointer.MakePtr("fakepass"), Roles: &[]admin2025.DatabaseUserRole{ { - CollectionName: pointer.Get("collection0"), + CollectionName: pointer.MakePtr("collection0"), DatabaseName: "mydb", RoleName: "admin", }, @@ -146,7 +146,7 @@ func TestFromAPI(t *testing.T) { }, }, Username: "dbuser", - X509Type: pointer.Get("NONE X509"), + X509Type: pointer.MakePtr("NONE X509"), } target := v1.DatabaseUser{} want := []client.Object{ @@ -154,10 +154,10 @@ func TestFromAPI(t *testing.T) { Spec: v1.DatabaseUserSpec{ V20250312: &v1.DatabaseUserSpecV20250312{ Entry: &v1.DatabaseUserSpecV20250312Entry{ - AwsIAMType: pointer.Get("NONE AWS"), + AwsIAMType: pointer.MakePtr("NONE AWS"), DatabaseName: "dbname", - DeleteAfterDate: pointer.Get("2025-02-01T01:30:15Z"), - Description: pointer.Get("sample db user"), + DeleteAfterDate: pointer.MakePtr("2025-02-01T01:30:15Z"), + Description: pointer.MakePtr("sample db user"), GroupId: testProjectID, // ID ref by default Labels: &[]v1.Tags{ { @@ -169,11 +169,11 @@ func TestFromAPI(t *testing.T) { Value: "value1", }, }, - LdapAuthType: pointer.Get("NONE LDAP"), - OidcAuthType: pointer.Get("NONE OIDC"), + LdapAuthType: pointer.MakePtr("NONE LDAP"), + OidcAuthType: pointer.MakePtr("NONE OIDC"), Roles: &[]v1.Roles{ { - CollectionName: pointer.Get("collection0"), + CollectionName: pointer.MakePtr("collection0"), DatabaseName: "mydb", RoleName: "admin", }, @@ -185,10 +185,10 @@ func TestFromAPI(t *testing.T) { }, }, Username: "dbuser", - X509Type: pointer.Get("NONE X509"), - Password: pointer.Get("fakepass"), // TODO: this should go away to a secret + X509Type: pointer.MakePtr("NONE X509"), + Password: pointer.MakePtr("fakepass"), // TODO: this should go away to a secret }, - GroupId: pointer.Get(testProjectID), + GroupId: pointer.MakePtr(testProjectID), }, }, }, @@ -201,10 +201,10 @@ func TestFromAPI(t *testing.T) { name: "GroupAlertConfigs", test: func(t *testing.T) { input := admin2025.GroupAlertsConfig{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("OUTSIDE_STREAM_PROCESSOR_METRIC_THRESHOLD"), - GroupId: pointer.Get(testProjectID), - Id: pointer.Get("notification id"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("OUTSIDE_STREAM_PROCESSOR_METRIC_THRESHOLD"), + GroupId: pointer.MakePtr(testProjectID), + Id: pointer.MakePtr("notification id"), Matchers: &[]admin2025.StreamsMatcher{ { FieldName: "field0", @@ -219,29 +219,29 @@ func TestFromAPI(t *testing.T) { }, Notifications: &[]admin2025.AlertsNotificationRootForGroup{ { - DatadogApiKey: pointer.Get("fake api key"), - DatadogRegion: pointer.Get("US"), - DelayMin: pointer.Get(42), - IntegrationId: pointer.Get("32b6e34b3d91647abb20e7b8"), - IntervalMin: pointer.Get(43), - NotifierId: pointer.Get("32b6e34b3d91647abb20e7b8"), - TypeName: pointer.Get("DATADOG"), + DatadogApiKey: pointer.MakePtr("fake api key"), + DatadogRegion: pointer.MakePtr("US"), + DelayMin: pointer.MakePtr(42), + IntegrationId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), + IntervalMin: pointer.MakePtr(43), + NotifierId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), + TypeName: pointer.MakePtr("DATADOG"), }, }, - SeverityOverride: pointer.Get("CRITICIAL"), + SeverityOverride: pointer.MakePtr("CRITICIAL"), MetricThreshold: &admin2025.FlexClusterMetricThreshold{ MetricName: "metric", - Mode: pointer.Get("mode"), - Operator: pointer.Get("op"), - Threshold: pointer.Get(0.1), - Units: pointer.Get("unit"), + Mode: pointer.MakePtr("mode"), + Operator: pointer.MakePtr("op"), + Threshold: pointer.MakePtr(0.1), + Units: pointer.MakePtr("unit"), }, Threshold: &admin2025.StreamProcessorMetricThreshold{ - MetricName: pointer.Get("anotherMetric"), - Mode: pointer.Get("a mode"), - Operator: pointer.Get("an op"), - Threshold: pointer.Get(0.2), - Units: pointer.Get("a unit"), + MetricName: pointer.MakePtr("anotherMetric"), + Mode: pointer.MakePtr("a mode"), + Operator: pointer.MakePtr("an op"), + Threshold: pointer.MakePtr(0.2), + Units: pointer.MakePtr("a unit"), }, } target := v1.GroupAlertsConfig{ @@ -259,8 +259,8 @@ func TestFromAPI(t *testing.T) { Spec: v1.GroupAlertsConfigSpec{ V20250312: &v1.GroupAlertsConfigSpecV20250312{ Entry: &v1.GroupAlertsConfigSpecV20250312Entry{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("OUTSIDE_STREAM_PROCESSOR_METRIC_THRESHOLD"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("OUTSIDE_STREAM_PROCESSOR_METRIC_THRESHOLD"), Matchers: &[]v1.Matchers{ { FieldName: "field0", @@ -275,41 +275,41 @@ func TestFromAPI(t *testing.T) { }, MetricThreshold: &v1.MetricThreshold{ MetricName: "metric", - Mode: pointer.Get("mode"), - Operator: pointer.Get("op"), - Threshold: pointer.Get(0.1), - Units: pointer.Get("unit"), + Mode: pointer.MakePtr("mode"), + Operator: pointer.MakePtr("op"), + Threshold: pointer.MakePtr(0.1), + Units: pointer.MakePtr("unit"), }, Notifications: &[]v1.Notifications{ { DatadogApiKeySecretRef: &v1.ApiTokenSecretRef{ - Key: pointer.Get("datadogApiKey"), - Name: pointer.Get("groupalertscfg-notifications-datadogapikey"), + Key: pointer.MakePtr("datadogApiKey"), + Name: pointer.MakePtr("groupalertscfg-notifications-datadogapikey"), }, - DatadogRegion: pointer.Get("US"), - DelayMin: pointer.Get(42), - IntegrationId: pointer.Get("32b6e34b3d91647abb20e7b8"), - IntervalMin: pointer.Get(43), - NotifierId: pointer.Get("32b6e34b3d91647abb20e7b8"), - TypeName: pointer.Get("DATADOG"), + DatadogRegion: pointer.MakePtr("US"), + DelayMin: pointer.MakePtr(42), + IntegrationId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), + IntervalMin: pointer.MakePtr(43), + NotifierId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), + TypeName: pointer.MakePtr("DATADOG"), }, }, - SeverityOverride: pointer.Get("CRITICIAL"), + SeverityOverride: pointer.MakePtr("CRITICIAL"), Threshold: &v1.MetricThreshold{ MetricName: "anotherMetric", - Mode: pointer.Get("a mode"), - Operator: pointer.Get("an op"), - Threshold: pointer.Get(0.2), - Units: pointer.Get("a unit"), + Mode: pointer.MakePtr("a mode"), + Operator: pointer.MakePtr("an op"), + Threshold: pointer.MakePtr(0.2), + Units: pointer.MakePtr("a unit"), }, }, - GroupId: pointer.Get(testProjectID), + GroupId: pointer.MakePtr(testProjectID), }, }, Status: v1.GroupAlertsConfigStatus{ V20250312: &v1.GroupAlertsConfigStatusV20250312{ - GroupId: pointer.Get(testProjectID), - Id: pointer.Get("notification id"), + GroupId: pointer.MakePtr(testProjectID), + Id: pointer.MakePtr("notification id"), }, }, }, @@ -331,11 +331,11 @@ func TestFromAPI(t *testing.T) { name: "ThirdPartyIntegration", test: func(t *testing.T) { input := admin2025.ThirdPartyIntegration{ - Id: pointer.Get("SomeID"), - Type: pointer.Get("SLACK"), - ApiToken: pointer.Get("some fake api token"), - ChannelName: pointer.Get("alert-channel"), - TeamName: pointer.Get("some-team"), + Id: pointer.MakePtr("SomeID"), + Type: pointer.MakePtr("SLACK"), + ApiToken: pointer.MakePtr("some fake api token"), + ChannelName: pointer.MakePtr("alert-channel"), + TeamName: pointer.MakePtr("some-team"), } target := v1.ThirdPartyIntegration{ ObjectMeta: metav1.ObjectMeta{ @@ -347,7 +347,7 @@ func TestFromAPI(t *testing.T) { // TODO: is this a valid trick? // This API struct, unlike others, does NOT include the Group ID // it is part of the parameters, but not the response - GroupId: pointer.Get(testProjectID), + GroupId: pointer.MakePtr(testProjectID), // TODO: similarly to the Group ID the IntegrationType would // be the aparameter thet corresponds with "type" in the response // but there is no indication of such semantics from the CRD @@ -364,24 +364,24 @@ func TestFromAPI(t *testing.T) { Spec: v1.ThirdPartyIntegrationSpec{ V20250312: &v1.ThirdPartyIntegrationSpecV20250312{ Entry: &v1.ThirdPartyIntegrationSpecV20250312Entry{ - Type: pointer.Get("SLACK"), + Type: pointer.MakePtr("SLACK"), ApiTokenSecretRef: &v1.ApiTokenSecretRef{ - Name: pointer.Get("3rdparty-slack-apitoken"), - Key: pointer.Get("apiToken"), + Name: pointer.MakePtr("3rdparty-slack-apitoken"), + Key: pointer.MakePtr("apiToken"), }, - ChannelName: pointer.Get("alert-channel"), - TeamName: pointer.Get("some-team"), + ChannelName: pointer.MakePtr("alert-channel"), + TeamName: pointer.MakePtr("some-team"), }, // Pre-existing from input - GroupId: pointer.Get(string(testProjectID)), + GroupId: pointer.MakePtr(string(testProjectID)), // Pre-existing from input IntegrationType: "SLACK", }, }, Status: v1.ThirdPartyIntegrationStatus{ V20250312: &v1.ThirdPartyIntegrationStatusV20250312{ - Id: pointer.Get("SomeID"), - Type: pointer.Get("SLACK"), + Id: pointer.MakePtr("SomeID"), + Type: pointer.MakePtr("SLACK"), }, }, }, @@ -440,8 +440,8 @@ func TestToAPIAllRefs(t *testing.T) { Spec: v1.GroupAlertsConfigSpec{ V20250312: &v1.GroupAlertsConfigSpecV20250312{ Entry: &v1.GroupAlertsConfigSpecV20250312Entry{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("some-event"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("some-event"), Matchers: &[]v1.Matchers{ { FieldName: "field1", @@ -456,37 +456,37 @@ func TestToAPIAllRefs(t *testing.T) { }, MetricThreshold: &v1.MetricThreshold{ MetricName: "metric", - Mode: pointer.Get("mode"), - Operator: pointer.Get("operator"), - Threshold: pointer.Get(1.0), - Units: pointer.Get("unit"), + Mode: pointer.MakePtr("mode"), + Operator: pointer.MakePtr("operator"), + Threshold: pointer.MakePtr(1.0), + Units: pointer.MakePtr("unit"), }, Notifications: &[]v1.Notifications{ { DatadogApiKeySecretRef: &v1.ApiTokenSecretRef{ - Name: pointer.Get("alert-secrets-0"), - Key: pointer.Get("apiKey"), + Name: pointer.MakePtr("alert-secrets-0"), + Key: pointer.MakePtr("apiKey"), }, - DatadogRegion: pointer.Get("US"), + DatadogRegion: pointer.MakePtr("US"), }, { WebhookSecretSecretRef: &v1.ApiTokenSecretRef{ - Name: pointer.Get("alert-secrets-0"), - Key: pointer.Get("webhookSecret"), + Name: pointer.MakePtr("alert-secrets-0"), + Key: pointer.MakePtr("webhookSecret"), }, WebhookUrlSecretRef: &v1.ApiTokenSecretRef{ - Name: pointer.Get("alert-secrets-1"), - Key: pointer.Get("webhookUrl"), + Name: pointer.MakePtr("alert-secrets-1"), + Key: pointer.MakePtr("webhookUrl"), }, }, }, - SeverityOverride: pointer.Get("severe"), + SeverityOverride: pointer.MakePtr("severe"), Threshold: &v1.MetricThreshold{ MetricName: "metric", - Mode: pointer.Get("mode-t"), - Operator: pointer.Get("op-t"), - Threshold: pointer.Get(2.0), - Units: pointer.Get("unit-t"), + Mode: pointer.MakePtr("mode-t"), + Operator: pointer.MakePtr("op-t"), + Threshold: pointer.MakePtr(2.0), + Units: pointer.MakePtr("unit-t"), }, }, GroupRef: &k8s.LocalReference{ @@ -509,7 +509,7 @@ func TestToAPIAllRefs(t *testing.T) { }, Status: v1.GroupStatus{ V20250312: &v1.GroupStatusV20250312{ - Id: pointer.Get("62b6e34b3d91647abb20e7b8"), + Id: pointer.MakePtr("62b6e34b3d91647abb20e7b8"), }, }, }, @@ -532,8 +532,8 @@ func TestToAPIAllRefs(t *testing.T) { want: admin2025.CreateAlertConfigurationApiParams{ GroupId: "62b6e34b3d91647abb20e7b8", GroupAlertsConfig: &admin2025.GroupAlertsConfig{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("some-event"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("some-event"), Matchers: &[]admin2025.StreamsMatcher{ { FieldName: "field1", @@ -548,28 +548,28 @@ func TestToAPIAllRefs(t *testing.T) { }, Notifications: &[]admin2025.AlertsNotificationRootForGroup{ { - DatadogApiKey: pointer.Get("sample-api-key"), - DatadogRegion: pointer.Get("US"), + DatadogApiKey: pointer.MakePtr("sample-api-key"), + DatadogRegion: pointer.MakePtr("US"), }, { - WebhookSecret: pointer.Get("sample-webhook-secret"), - WebhookUrl: pointer.Get("sample-webhook-url"), + WebhookSecret: pointer.MakePtr("sample-webhook-secret"), + WebhookUrl: pointer.MakePtr("sample-webhook-url"), }, }, - SeverityOverride: pointer.Get("severe"), + SeverityOverride: pointer.MakePtr("severe"), MetricThreshold: &admin2025.FlexClusterMetricThreshold{ MetricName: "metric", - Mode: pointer.Get("mode"), - Operator: pointer.Get("operator"), - Threshold: pointer.Get(1.0), - Units: pointer.Get("unit"), + Mode: pointer.MakePtr("mode"), + Operator: pointer.MakePtr("operator"), + Threshold: pointer.MakePtr(1.0), + Units: pointer.MakePtr("unit"), }, Threshold: &admin2025.StreamProcessorMetricThreshold{ - MetricName: pointer.Get("metric"), - Mode: pointer.Get("mode-t"), - Operator: pointer.Get("op-t"), - Threshold: pointer.Get(2.0), - Units: pointer.Get("unit-t"), + MetricName: pointer.MakePtr("metric"), + Mode: pointer.MakePtr("mode-t"), + Operator: pointer.MakePtr("op-t"), + Threshold: pointer.MakePtr(2.0), + Units: pointer.MakePtr("unit-t"), }, }, }, @@ -591,8 +591,8 @@ func TestToAPIAllRefs(t *testing.T) { // Spec: v1.GroupAlertsConfigSpec{ // V20250312: &v1.GroupAlertsConfigSpecV20250312{ // Entry: &v1.GroupAlertsConfigSpecV20250312Entry{ - // Enabled: pointer.Get(true), - // EventTypeName: pointer.Get("some-event"), + // Enabled: pointer.MakePtr(true), + // EventTypeName: pointer.MakePtr("some-event"), // Matchers: &[]v1.Matchers{ // { // FieldName: "field1", @@ -607,40 +607,40 @@ func TestToAPIAllRefs(t *testing.T) { // }, // MetricThreshold: &v1.MetricThreshold{ // MetricName: "metric", - // Mode: pointer.Get("mode"), - // Operator: pointer.Get("operator"), - // Threshold: pointer.Get(1.0), - // Units: pointer.Get("unit"), + // Mode: pointer.MakePtr("mode"), + // Operator: pointer.MakePtr("operator"), + // Threshold: pointer.MakePtr(1.0), + // Units: pointer.MakePtr("unit"), // }, // Notifications: &[]v1.Notifications{ // { // DatadogApiKeySecretRef: &v1.ApiTokenSecretRef{ - // Name: pointer.Get("alert-secrets-0"), - // Key: pointer.Get("apiKey"), + // Name: pointer.MakePtr("alert-secrets-0"), + // Key: pointer.MakePtr("apiKey"), // }, - // DatadogRegion: pointer.Get("US"), + // DatadogRegion: pointer.MakePtr("US"), // }, // { // WebhookSecretSecretRef: &v1.ApiTokenSecretRef{ - // Name: pointer.Get("alert-secrets-0"), - // Key: pointer.Get("webhookSecret"), + // Name: pointer.MakePtr("alert-secrets-0"), + // Key: pointer.MakePtr("webhookSecret"), // }, // WebhookUrlSecretRef: &v1.ApiTokenSecretRef{ - // Name: pointer.Get("alert-secrets-1"), - // Key: pointer.Get("webhookUrl"), + // Name: pointer.MakePtr("alert-secrets-1"), + // Key: pointer.MakePtr("webhookUrl"), // }, // }, // }, - // SeverityOverride: pointer.Get("severe"), + // SeverityOverride: pointer.MakePtr("severe"), // Threshold: &v1.MetricThreshold{ // MetricName: "metric", - // Mode: pointer.Get("mode-t"), - // Operator: pointer.Get("op-t"), - // Threshold: pointer.Get(2.0), - // Units: pointer.Get("unit-t"), + // Mode: pointer.MakePtr("mode-t"), + // Operator: pointer.MakePtr("op-t"), + // Threshold: pointer.MakePtr(2.0), + // Units: pointer.MakePtr("unit-t"), // }, // }, - // GroupId: pointer.Get("62b6e34b3d91647abb20e7b8"), + // GroupId: pointer.MakePtr("62b6e34b3d91647abb20e7b8"), // }, // }, // }, @@ -664,8 +664,8 @@ func TestToAPIAllRefs(t *testing.T) { // want: admin2025.CreateAlertConfigurationApiParams{ // GroupId: "62b6e34b3d91647abb20e7b8", // GroupAlertsConfig: &admin2025.GroupAlertsConfig{ - // Enabled: pointer.Get(true), - // EventTypeName: pointer.Get("some-event"), + // Enabled: pointer.MakePtr(true), + // EventTypeName: pointer.MakePtr("some-event"), // Matchers: &[]admin2025.StreamsMatcher{ // { // FieldName: "field1", @@ -680,28 +680,28 @@ func TestToAPIAllRefs(t *testing.T) { // }, // Notifications: &[]admin2025.AlertsNotificationRootForGroup{ // { - // DatadogApiKey: pointer.Get("sample-api-key"), - // DatadogRegion: pointer.Get("US"), + // DatadogApiKey: pointer.MakePtr("sample-api-key"), + // DatadogRegion: pointer.MakePtr("US"), // }, // { - // WebhookSecret: pointer.Get("sample-webhook-secret"), - // WebhookUrl: pointer.Get("sample-webhook-url"), + // WebhookSecret: pointer.MakePtr("sample-webhook-secret"), + // WebhookUrl: pointer.MakePtr("sample-webhook-url"), // }, // }, - // SeverityOverride: pointer.Get("severe"), + // SeverityOverride: pointer.MakePtr("severe"), // MetricThreshold: &admin2025.FlexClusterMetricThreshold{ // MetricName: "metric", - // Mode: pointer.Get("mode"), - // Operator: pointer.Get("operator"), - // Threshold: pointer.Get(1.0), - // Units: pointer.Get("unit"), + // Mode: pointer.MakePtr("mode"), + // Operator: pointer.MakePtr("operator"), + // Threshold: pointer.MakePtr(1.0), + // Units: pointer.MakePtr("unit"), // }, // Threshold: &admin2025.StreamProcessorMetricThreshold{ - // MetricName: pointer.Get("metric"), - // Mode: pointer.Get("mode-t"), - // Operator: pointer.Get("op-t"), - // Threshold: pointer.Get(2.0), - // Units: pointer.Get("unit-t"), + // MetricName: pointer.MakePtr("metric"), + // Mode: pointer.MakePtr("mode-t"), + // Operator: pointer.MakePtr("op-t"), + // Threshold: pointer.MakePtr(2.0), + // Units: pointer.MakePtr("unit-t"), // }, // }, // }, @@ -742,8 +742,8 @@ func TestToAPI(t *testing.T) { V20250312: &v1.BackupCompliancePolicySpecV20250312{ Entry: &v1.BackupCompliancePolicySpecV20250312Entry{ AuthorizedEmail: "user@example.com", - CopyProtectionEnabled: pointer.Get(true), - EncryptionAtRestEnabled: pointer.Get(true), + CopyProtectionEnabled: pointer.MakePtr(true), + EncryptionAtRestEnabled: pointer.MakePtr(true), AuthorizedUserFirstName: "first-name", AuthorizedUserLastName: "last-name", OnDemandPolicyItem: &v1.OnDemandPolicyItem{ @@ -752,9 +752,9 @@ func TestToAPI(t *testing.T) { RetentionUnit: "some-unit", RetentionValue: 2, }, - PitEnabled: pointer.Get(true), - ProjectId: pointer.Get("project-id"), - RestoreWindowDays: pointer.Get(3), + PitEnabled: pointer.MakePtr(true), + ProjectId: pointer.MakePtr("project-id"), + RestoreWindowDays: pointer.MakePtr(3), ScheduledPolicyItems: &[]v1.OnDemandPolicyItem{ { FrequencyInterval: 3, @@ -770,7 +770,7 @@ func TestToAPI(t *testing.T) { }, }, }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), OverwriteBackupPolicies: true, }, }, @@ -778,8 +778,8 @@ func TestToAPI(t *testing.T) { target := &admin2025.DataProtectionSettings20231001{} want := &admin2025.DataProtectionSettings20231001{ AuthorizedEmail: "user@example.com", - CopyProtectionEnabled: pointer.Get(true), - EncryptionAtRestEnabled: pointer.Get(true), + CopyProtectionEnabled: pointer.MakePtr(true), + EncryptionAtRestEnabled: pointer.MakePtr(true), AuthorizedUserFirstName: "first-name", AuthorizedUserLastName: "last-name", OnDemandPolicyItem: &admin2025.BackupComplianceOnDemandPolicyItem{ @@ -788,9 +788,9 @@ func TestToAPI(t *testing.T) { RetentionUnit: "some-unit", RetentionValue: 2, }, - PitEnabled: pointer.Get(true), - ProjectId: pointer.Get("project-id"), - RestoreWindowDays: pointer.Get(3), + PitEnabled: pointer.MakePtr(true), + ProjectId: pointer.MakePtr("project-id"), + RestoreWindowDays: pointer.MakePtr(3), ScheduledPolicyItems: &[]admin2025.BackupComplianceScheduledPolicyItem{ { FrequencyInterval: 3, @@ -817,51 +817,51 @@ func TestToAPI(t *testing.T) { Spec: v1.BackupScheduleSpec{ V20250312: &v1.BackupScheduleSpecV20250312{ Entry: &v1.BackupScheduleSpecV20250312Entry{ - ReferenceHourOfDay: pointer.Get(2), - ReferenceMinuteOfHour: pointer.Get(30), - RestoreWindowDays: pointer.Get(7), - UpdateSnapshots: pointer.Get(true), - AutoExportEnabled: pointer.Get(true), + ReferenceHourOfDay: pointer.MakePtr(2), + ReferenceMinuteOfHour: pointer.MakePtr(30), + RestoreWindowDays: pointer.MakePtr(7), + UpdateSnapshots: pointer.MakePtr(true), + AutoExportEnabled: pointer.MakePtr(true), CopySettings: &[]v1.CopySettings{ { - CloudProvider: pointer.Get("AWS"), + CloudProvider: pointer.MakePtr("AWS"), Frequencies: &[]string{"freq-1", "freq-2"}, - RegionName: pointer.Get("us-east-1"), - ShouldCopyOplogs: pointer.Get(true), + RegionName: pointer.MakePtr("us-east-1"), + ShouldCopyOplogs: pointer.MakePtr(true), ZoneId: "zone-id", }, { - CloudProvider: pointer.Get("GCE"), + CloudProvider: pointer.MakePtr("GCE"), Frequencies: &[]string{"freq-3", "freq-4"}, - RegionName: pointer.Get("us-east-3"), - ShouldCopyOplogs: pointer.Get(true), + RegionName: pointer.MakePtr("us-east-3"), + ShouldCopyOplogs: pointer.MakePtr(true), ZoneId: "zone-id-0", }, }, DeleteCopiedBackups: &[]v1.DeleteCopiedBackups{ { - CloudProvider: pointer.Get("Azure"), - RegionName: pointer.Get("us-west-2"), - ZoneId: pointer.Get("zone-id"), + CloudProvider: pointer.MakePtr("Azure"), + RegionName: pointer.MakePtr("us-west-2"), + ZoneId: pointer.MakePtr("zone-id"), }, }, Export: &v1.Export{ - ExportBucketId: pointer.Get("ExportBucketId"), - FrequencyType: pointer.Get("FrequencyType"), + ExportBucketId: pointer.MakePtr("ExportBucketId"), + FrequencyType: pointer.MakePtr("FrequencyType"), }, ExtraRetentionSettings: &[]v1.ExtraRetentionSettings{ { - FrequencyType: pointer.Get("FrequencyType0"), - RetentionDays: pointer.Get(1), + FrequencyType: pointer.MakePtr("FrequencyType0"), + RetentionDays: pointer.MakePtr(1), }, { - FrequencyType: pointer.Get("FrequencyType1"), - RetentionDays: pointer.Get(2), + FrequencyType: pointer.MakePtr("FrequencyType1"), + RetentionDays: pointer.MakePtr(2), }, }, Policies: &[]v1.Policies{ { - Id: pointer.Get("id0"), + Id: pointer.MakePtr("id0"), PolicyItems: &[]v1.OnDemandPolicyItem{ { FrequencyInterval: 1, @@ -878,60 +878,60 @@ func TestToAPI(t *testing.T) { }, }, }, - UseOrgAndGroupNamesInExportPrefix: pointer.Get(true), + UseOrgAndGroupNamesInExportPrefix: pointer.MakePtr(true), }, - GroupId: pointer.Get("group-id-101"), + GroupId: pointer.MakePtr("group-id-101"), ClusterName: "cluster-name", }, }, } target := &admin2025.DiskBackupSnapshotSchedule20240805{} want := &admin2025.DiskBackupSnapshotSchedule20240805{ - ReferenceHourOfDay: pointer.Get(2), - ReferenceMinuteOfHour: pointer.Get(30), - RestoreWindowDays: pointer.Get(7), - UpdateSnapshots: pointer.Get(true), - AutoExportEnabled: pointer.Get(true), + ReferenceHourOfDay: pointer.MakePtr(2), + ReferenceMinuteOfHour: pointer.MakePtr(30), + RestoreWindowDays: pointer.MakePtr(7), + UpdateSnapshots: pointer.MakePtr(true), + AutoExportEnabled: pointer.MakePtr(true), CopySettings: &[]admin2025.DiskBackupCopySetting20240805{ { - CloudProvider: pointer.Get("AWS"), + CloudProvider: pointer.MakePtr("AWS"), Frequencies: &[]string{"freq-1", "freq-2"}, - RegionName: pointer.Get("us-east-1"), - ShouldCopyOplogs: pointer.Get(true), + RegionName: pointer.MakePtr("us-east-1"), + ShouldCopyOplogs: pointer.MakePtr(true), ZoneId: "zone-id", }, { - CloudProvider: pointer.Get("GCE"), + CloudProvider: pointer.MakePtr("GCE"), Frequencies: &[]string{"freq-3", "freq-4"}, - RegionName: pointer.Get("us-east-3"), - ShouldCopyOplogs: pointer.Get(true), + RegionName: pointer.MakePtr("us-east-3"), + ShouldCopyOplogs: pointer.MakePtr(true), ZoneId: "zone-id-0", }, }, DeleteCopiedBackups: &[]admin2025.DeleteCopiedBackups20240805{ { - CloudProvider: pointer.Get("Azure"), - RegionName: pointer.Get("us-west-2"), - ZoneId: pointer.Get("zone-id"), + CloudProvider: pointer.MakePtr("Azure"), + RegionName: pointer.MakePtr("us-west-2"), + ZoneId: pointer.MakePtr("zone-id"), }, }, Export: &admin2025.AutoExportPolicy{ - ExportBucketId: pointer.Get("ExportBucketId"), - FrequencyType: pointer.Get("FrequencyType"), + ExportBucketId: pointer.MakePtr("ExportBucketId"), + FrequencyType: pointer.MakePtr("FrequencyType"), }, ExtraRetentionSettings: &[]admin2025.ExtraRetentionSetting{ { - FrequencyType: pointer.Get("FrequencyType0"), - RetentionDays: pointer.Get(1), + FrequencyType: pointer.MakePtr("FrequencyType0"), + RetentionDays: pointer.MakePtr(1), }, { - FrequencyType: pointer.Get("FrequencyType1"), - RetentionDays: pointer.Get(2), + FrequencyType: pointer.MakePtr("FrequencyType1"), + RetentionDays: pointer.MakePtr(2), }, }, Policies: &[]admin2025.AdvancedDiskBackupSnapshotSchedulePolicy{ { - Id: pointer.Get("id0"), + Id: pointer.MakePtr("id0"), PolicyItems: &[]admin2025.DiskBackupApiPolicyItem{ { FrequencyInterval: 1, @@ -948,13 +948,14 @@ func TestToAPI(t *testing.T) { }, }, }, - UseOrgAndGroupNamesInExportPrefix: pointer.Get(true), - ClusterName: pointer.Get("cluster-name"), + UseOrgAndGroupNamesInExportPrefix: pointer.MakePtr(true), + ClusterName: pointer.MakePtr("cluster-name"), } testToAPI(t, "BackupSchedule", input, nil, target, want) }, }, + //nolint:dupl { name: "cluster all fields", test: func(t *testing.T) { @@ -962,24 +963,24 @@ func TestToAPI(t *testing.T) { Spec: v1.ClusterSpec{ V20250312: &v1.ClusterSpecV20250312{ Entry: &v1.ClusterSpecV20250312Entry{ - AcceptDataRisksAndForceReplicaSetReconfig: pointer.Get("2025-01-01T00:00:00Z"), + AcceptDataRisksAndForceReplicaSetReconfig: pointer.MakePtr("2025-01-01T00:00:00Z"), AdvancedConfiguration: &v1.AdvancedConfiguration{ CustomOpensslCipherConfigTls12: &[]string{ "TLS_AES_256_GCM_SHA384", "TLS_CHACHA20_POLY1305_SHA256", }, - MinimumEnabledTlsProtocol: pointer.Get("TLS1.2"), - TlsCipherConfigMode: pointer.Get("Custom"), + MinimumEnabledTlsProtocol: pointer.MakePtr("TLS1.2"), + TlsCipherConfigMode: pointer.MakePtr("Custom"), }, - BackupEnabled: pointer.Get(true), - BiConnector: &v1.BiConnector{Enabled: pointer.Get(true)}, - ClusterType: pointer.Get("ReplicaSet"), - ConfigServerManagementMode: pointer.Get("Managed"), - ConfigServerType: pointer.Get("ReplicaSet"), - DiskWarmingMode: pointer.Get("Enabled"), - EncryptionAtRestProvider: pointer.Get("AWS-KMS"), - FeatureCompatibilityVersion: pointer.Get("7.0"), - FeatureCompatibilityVersionExpirationDate: pointer.Get("2025-12-31T00:00:00Z"), - GlobalClusterSelfManagedSharding: pointer.Get(true), + BackupEnabled: pointer.MakePtr(true), + BiConnector: &v1.BiConnector{Enabled: pointer.MakePtr(true)}, + ClusterType: pointer.MakePtr("ReplicaSet"), + ConfigServerManagementMode: pointer.MakePtr("Managed"), + ConfigServerType: pointer.MakePtr("ReplicaSet"), + DiskWarmingMode: pointer.MakePtr("Enabled"), + EncryptionAtRestProvider: pointer.MakePtr("AWS-KMS"), + FeatureCompatibilityVersion: pointer.MakePtr("7.0"), + FeatureCompatibilityVersionExpirationDate: pointer.MakePtr("2025-12-31T00:00:00Z"), + GlobalClusterSelfManagedSharding: pointer.MakePtr(true), Labels: &[]v1.Tags{ {Key: "key1", Value: "value1"}, {Key: "key2", Value: "value2"}, @@ -988,295 +989,296 @@ func TestToAPI(t *testing.T) { ExpirationTime: "2025-12-31T00:00:00Z", GrantType: "Temporary", }, - MongoDBMajorVersion: pointer.Get("8.0"), - Name: pointer.Get("my-cluster"), - Paused: pointer.Get(true), - PitEnabled: pointer.Get(true), - RedactClientLogData: pointer.Get(true), - ReplicaSetScalingStrategy: pointer.Get("Auto"), + MongoDBMajorVersion: pointer.MakePtr("8.0"), + Name: pointer.MakePtr("my-cluster"), + Paused: pointer.MakePtr(true), + PitEnabled: pointer.MakePtr(true), + RedactClientLogData: pointer.MakePtr(true), + ReplicaSetScalingStrategy: pointer.MakePtr("Auto"), ReplicationSpecs: &[]v1.ReplicationSpecs{ { - ZoneId: pointer.Get("zone-id-1"), - ZoneName: pointer.Get("zone-name-1"), + ZoneId: pointer.MakePtr("zone-id-1"), + ZoneName: pointer.MakePtr("zone-name-1"), RegionConfigs: &[]v1.RegionConfigs{ { - RegionName: pointer.Get("us-east-1"), + RegionName: pointer.MakePtr("us-east-1"), AnalyticsSpecs: &v1.AnalyticsSpecs{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, AutoScaling: &v1.AnalyticsAutoScaling{ Compute: &v1.Compute{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M20"), - MinInstanceSize: pointer.Get("M10"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M20"), + MinInstanceSize: pointer.MakePtr("M10"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &v1.DiskGB{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, AnalyticsAutoScaling: &v1.AnalyticsAutoScaling{ Compute: &v1.Compute{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M30"), - MinInstanceSize: pointer.Get("M10"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M30"), + MinInstanceSize: pointer.MakePtr("M10"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &v1.DiskGB{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, - BackingProviderName: pointer.Get("AWS"), + BackingProviderName: pointer.MakePtr("AWS"), ElectableSpecs: &v1.ElectableSpecs{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - EffectiveInstanceSize: pointer.Get("M10"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + EffectiveInstanceSize: pointer.MakePtr("M10"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, - Priority: pointer.Get(1), - ProviderName: pointer.Get("AWS"), + Priority: pointer.MakePtr(1), + ProviderName: pointer.MakePtr("AWS"), ReadOnlySpecs: &v1.AnalyticsSpecs{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, }, { - RegionName: pointer.Get("us-east-2"), + RegionName: pointer.MakePtr("us-east-2"), AnalyticsSpecs: &v1.AnalyticsSpecs{ - DiskIOPS: pointer.Get(2000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp3"), - InstanceSize: pointer.Get("M20"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(2000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp3"), + InstanceSize: pointer.MakePtr("M20"), + NodeCount: pointer.MakePtr(3), }, AutoScaling: &v1.AnalyticsAutoScaling{ Compute: &v1.Compute{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M50"), - MinInstanceSize: pointer.Get("M20"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M50"), + MinInstanceSize: pointer.MakePtr("M20"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &v1.DiskGB{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, AnalyticsAutoScaling: &v1.AnalyticsAutoScaling{ Compute: &v1.Compute{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M40"), - MinInstanceSize: pointer.Get("M10"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M40"), + MinInstanceSize: pointer.MakePtr("M10"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &v1.DiskGB{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, - BackingProviderName: pointer.Get("AWS"), + BackingProviderName: pointer.MakePtr("AWS"), ElectableSpecs: &v1.ElectableSpecs{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - EffectiveInstanceSize: pointer.Get("M10"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + EffectiveInstanceSize: pointer.MakePtr("M10"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, - Priority: pointer.Get(1), - ProviderName: pointer.Get("AWS"), + Priority: pointer.MakePtr(1), + ProviderName: pointer.MakePtr("AWS"), ReadOnlySpecs: &v1.AnalyticsSpecs{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, }, }, }, }, - RootCertType: pointer.Get("X509"), + RootCertType: pointer.MakePtr("X509"), Tags: &[]v1.Tags{ {Key: "key1", Value: "value1"}, {Key: "key2", Value: "value2"}, }, - TerminationProtectionEnabled: pointer.Get(true), - VersionReleaseSystem: pointer.Get("Atlas"), + TerminationProtectionEnabled: pointer.MakePtr(true), + VersionReleaseSystem: pointer.MakePtr("Atlas"), }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), }, }, } target := &admin2025.ClusterDescription20240805{} want := &admin2025.ClusterDescription20240805{ - AcceptDataRisksAndForceReplicaSetReconfig: pointer.Get(time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC)), + AcceptDataRisksAndForceReplicaSetReconfig: pointer.MakePtr(time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC)), AdvancedConfiguration: &admin2025.ApiAtlasClusterAdvancedConfiguration{ CustomOpensslCipherConfigTls12: &[]string{ "TLS_AES_256_GCM_SHA384", "TLS_CHACHA20_POLY1305_SHA256", }, - MinimumEnabledTlsProtocol: pointer.Get("TLS1.2"), - TlsCipherConfigMode: pointer.Get("Custom"), - }, - BackupEnabled: pointer.Get(true), - BiConnector: &admin2025.BiConnector{Enabled: pointer.Get(true)}, - ClusterType: pointer.Get("ReplicaSet"), - ConfigServerManagementMode: pointer.Get("Managed"), - ConfigServerType: pointer.Get("ReplicaSet"), - DiskWarmingMode: pointer.Get("Enabled"), - EncryptionAtRestProvider: pointer.Get("AWS-KMS"), - FeatureCompatibilityVersion: pointer.Get("7.0"), - FeatureCompatibilityVersionExpirationDate: pointer.Get(time.Date(2025, 12, 31, 0, 0, 0, 0, time.UTC)), - GlobalClusterSelfManagedSharding: pointer.Get(true), + MinimumEnabledTlsProtocol: pointer.MakePtr("TLS1.2"), + TlsCipherConfigMode: pointer.MakePtr("Custom"), + }, + BackupEnabled: pointer.MakePtr(true), + BiConnector: &admin2025.BiConnector{Enabled: pointer.MakePtr(true)}, + ClusterType: pointer.MakePtr("ReplicaSet"), + ConfigServerManagementMode: pointer.MakePtr("Managed"), + ConfigServerType: pointer.MakePtr("ReplicaSet"), + DiskWarmingMode: pointer.MakePtr("Enabled"), + EncryptionAtRestProvider: pointer.MakePtr("AWS-KMS"), + FeatureCompatibilityVersion: pointer.MakePtr("7.0"), + FeatureCompatibilityVersionExpirationDate: pointer.MakePtr(time.Date(2025, 12, 31, 0, 0, 0, 0, time.UTC)), + GlobalClusterSelfManagedSharding: pointer.MakePtr(true), Labels: &[]admin2025.ComponentLabel{ - {Key: pointer.Get("key1"), Value: pointer.Get("value1")}, - {Key: pointer.Get("key2"), Value: pointer.Get("value2")}, + {Key: pointer.MakePtr("key1"), Value: pointer.MakePtr("value1")}, + {Key: pointer.MakePtr("key2"), Value: pointer.MakePtr("value2")}, }, MongoDBEmployeeAccessGrant: &admin2025.EmployeeAccessGrant{ ExpirationTime: time.Date(2025, 12, 31, 0, 0, 0, 0, time.UTC), GrantType: "Temporary", }, - MongoDBMajorVersion: pointer.Get("8.0"), - Name: pointer.Get("my-cluster"), - Paused: pointer.Get(true), - PitEnabled: pointer.Get(true), - RedactClientLogData: pointer.Get(true), - ReplicaSetScalingStrategy: pointer.Get("Auto"), + MongoDBMajorVersion: pointer.MakePtr("8.0"), + Name: pointer.MakePtr("my-cluster"), + Paused: pointer.MakePtr(true), + PitEnabled: pointer.MakePtr(true), + RedactClientLogData: pointer.MakePtr(true), + ReplicaSetScalingStrategy: pointer.MakePtr("Auto"), ReplicationSpecs: &[]admin2025.ReplicationSpec20240805{ { - ZoneId: pointer.Get("zone-id-1"), - ZoneName: pointer.Get("zone-name-1"), + ZoneId: pointer.MakePtr("zone-id-1"), + ZoneName: pointer.MakePtr("zone-name-1"), RegionConfigs: &[]admin2025.CloudRegionConfig20240805{ { - RegionName: pointer.Get("us-east-1"), + RegionName: pointer.MakePtr("us-east-1"), AnalyticsSpecs: &admin2025.DedicatedHardwareSpec20240805{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, AutoScaling: &admin2025.AdvancedAutoScalingSettings{ Compute: &admin2025.AdvancedComputeAutoScaling{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M20"), - MinInstanceSize: pointer.Get("M10"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M20"), + MinInstanceSize: pointer.MakePtr("M10"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &admin2025.DiskGBAutoScaling{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, AnalyticsAutoScaling: &admin2025.AdvancedAutoScalingSettings{ Compute: &admin2025.AdvancedComputeAutoScaling{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M30"), - MinInstanceSize: pointer.Get("M10"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M30"), + MinInstanceSize: pointer.MakePtr("M10"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &admin2025.DiskGBAutoScaling{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, - BackingProviderName: pointer.Get("AWS"), + BackingProviderName: pointer.MakePtr("AWS"), ElectableSpecs: &admin2025.HardwareSpec20240805{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - EffectiveInstanceSize: pointer.Get("M10"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + EffectiveInstanceSize: pointer.MakePtr("M10"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, - Priority: pointer.Get(1), - ProviderName: pointer.Get("AWS"), + Priority: pointer.MakePtr(1), + ProviderName: pointer.MakePtr("AWS"), ReadOnlySpecs: &admin2025.DedicatedHardwareSpec20240805{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, }, { - RegionName: pointer.Get("us-east-2"), + RegionName: pointer.MakePtr("us-east-2"), AnalyticsSpecs: &admin2025.DedicatedHardwareSpec20240805{ - DiskIOPS: pointer.Get(2000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp3"), - InstanceSize: pointer.Get("M20"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(2000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp3"), + InstanceSize: pointer.MakePtr("M20"), + NodeCount: pointer.MakePtr(3), }, AutoScaling: &admin2025.AdvancedAutoScalingSettings{ Compute: &admin2025.AdvancedComputeAutoScaling{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M50"), - MinInstanceSize: pointer.Get("M20"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M50"), + MinInstanceSize: pointer.MakePtr("M20"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &admin2025.DiskGBAutoScaling{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, AnalyticsAutoScaling: &admin2025.AdvancedAutoScalingSettings{ Compute: &admin2025.AdvancedComputeAutoScaling{ - Enabled: pointer.Get(true), - ScaleDownEnabled: pointer.Get(true), - MaxInstanceSize: pointer.Get("M40"), - MinInstanceSize: pointer.Get("M10"), - PredictiveEnabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), + ScaleDownEnabled: pointer.MakePtr(true), + MaxInstanceSize: pointer.MakePtr("M40"), + MinInstanceSize: pointer.MakePtr("M10"), + PredictiveEnabled: pointer.MakePtr(true), }, DiskGB: &admin2025.DiskGBAutoScaling{ - Enabled: pointer.Get(true), + Enabled: pointer.MakePtr(true), }, }, - BackingProviderName: pointer.Get("AWS"), + BackingProviderName: pointer.MakePtr("AWS"), ElectableSpecs: &admin2025.HardwareSpec20240805{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - EffectiveInstanceSize: pointer.Get("M10"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + EffectiveInstanceSize: pointer.MakePtr("M10"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, - Priority: pointer.Get(1), - ProviderName: pointer.Get("AWS"), + Priority: pointer.MakePtr(1), + ProviderName: pointer.MakePtr("AWS"), ReadOnlySpecs: &admin2025.DedicatedHardwareSpec20240805{ - DiskIOPS: pointer.Get(1000), - DiskSizeGB: pointer.Get(10.0), - EbsVolumeType: pointer.Get("gp2"), - InstanceSize: pointer.Get("M10"), - NodeCount: pointer.Get(3), + DiskIOPS: pointer.MakePtr(1000), + DiskSizeGB: pointer.MakePtr(10.0), + EbsVolumeType: pointer.MakePtr("gp2"), + InstanceSize: pointer.MakePtr("M10"), + NodeCount: pointer.MakePtr(3), }, }, }, }, }, - RootCertType: pointer.Get("X509"), + RootCertType: pointer.MakePtr("X509"), Tags: &[]admin2025.ResourceTag{ {Key: "key1", Value: "value1"}, {Key: "key2", Value: "value2"}, }, - TerminationProtectionEnabled: pointer.Get(true), - VersionReleaseSystem: pointer.Get("Atlas"), - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + TerminationProtectionEnabled: pointer.MakePtr(true), + VersionReleaseSystem: pointer.MakePtr("Atlas"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), } testToAPI(t, "Cluster", input, nil, target, want) }, }, + //nolint:dupl { name: "data federation all fields", test: func(t *testing.T) { @@ -1300,7 +1302,7 @@ func TestToAPI(t *testing.T) { CloudProvider: "GCE", Region: "eu-north-2", }, - Name: pointer.Get("some-name"), + Name: pointer.MakePtr("some-name"), Storage: &v1.Storage{ Databases: &[]v1.Databases{ { @@ -1308,31 +1310,31 @@ func TestToAPI(t *testing.T) { { DataSources: &[]v1.DataSources{ { - AllowInsecure: pointer.Get(true), - Collection: pointer.Get("some-name"), - CollectionRegex: pointer.Get("collection-regex"), - Database: pointer.Get("db"), - DatabaseRegex: pointer.Get("db-regex"), - DatasetName: pointer.Get("dataset-name"), - DatasetPrefix: pointer.Get("dataset-prefix"), - DefaultFormat: pointer.Get("default-format"), - Path: pointer.Get("path"), - ProvenanceFieldName: pointer.Get("provenqance-field-name"), - StoreName: pointer.Get("store-name"), - TrimLevel: pointer.Get(1), + AllowInsecure: pointer.MakePtr(true), + Collection: pointer.MakePtr("some-name"), + CollectionRegex: pointer.MakePtr("collection-regex"), + Database: pointer.MakePtr("db"), + DatabaseRegex: pointer.MakePtr("db-regex"), + DatasetName: pointer.MakePtr("dataset-name"), + DatasetPrefix: pointer.MakePtr("dataset-prefix"), + DefaultFormat: pointer.MakePtr("default-format"), + Path: pointer.MakePtr("path"), + ProvenanceFieldName: pointer.MakePtr("provenqance-field-name"), + StoreName: pointer.MakePtr("store-name"), + TrimLevel: pointer.MakePtr(1), Urls: &[]string{"url1", "url2"}, }, }, - Name: pointer.Get("collection0"), + Name: pointer.MakePtr("collection0"), }, }, - MaxWildcardCollections: pointer.Get(3), - Name: pointer.Get("db0"), + MaxWildcardCollections: pointer.MakePtr(3), + Name: pointer.MakePtr("db0"), Views: &[]v1.Views{ { - Name: pointer.Get("view0"), - Pipeline: pointer.Get("pipeline0"), - Source: pointer.Get("source0"), + Name: pointer.MakePtr("view0"), + Pipeline: pointer.MakePtr("pipeline0"), + Source: pointer.MakePtr("source0"), }, }, }, @@ -1340,26 +1342,26 @@ func TestToAPI(t *testing.T) { Stores: &[]v1.Stores{ { AdditionalStorageClasses: &[]string{"stc1", "stc2"}, - AllowInsecure: pointer.Get(true), - Bucket: pointer.Get("bucket-name"), - ClusterName: pointer.Get("cluster-name"), - ContainerName: pointer.Get("container-name"), - DefaultFormat: pointer.Get("default-format"), - Delimiter: pointer.Get("delimiter"), - IncludeTags: pointer.Get(true), - Name: pointer.Get("store-name"), - Prefix: pointer.Get("prefix"), + AllowInsecure: pointer.MakePtr(true), + Bucket: pointer.MakePtr("bucket-name"), + ClusterName: pointer.MakePtr("cluster-name"), + ContainerName: pointer.MakePtr("container-name"), + DefaultFormat: pointer.MakePtr("default-format"), + Delimiter: pointer.MakePtr("delimiter"), + IncludeTags: pointer.MakePtr(true), + Name: pointer.MakePtr("store-name"), + Prefix: pointer.MakePtr("prefix"), Provider: "AWS", - Public: pointer.Get(true), + Public: pointer.MakePtr(true), ReadConcern: &v1.ReadConcern{ - Level: pointer.Get("local"), + Level: pointer.MakePtr("local"), }, ReadPreference: &v1.ReadPreference{ - Mode: pointer.Get("primary"), + Mode: pointer.MakePtr("primary"), }, - Region: pointer.Get("us-east-1"), - ReplacementDelimiter: pointer.Get("replacement-delimiter"), - ServiceURL: pointer.Get("https://service-url.com"), + Region: pointer.MakePtr("us-east-1"), + ReplacementDelimiter: pointer.MakePtr("replacement-delimiter"), + ServiceURL: pointer.MakePtr("https://service-url.com"), Urls: &[]string{"url1", "url2"}, }, }, @@ -1370,7 +1372,7 @@ func TestToAPI(t *testing.T) { } target := &admin2025.DataLakeTenant{} want := &admin2025.DataLakeTenant{ - Name: pointer.Get("some-name"), + Name: pointer.MakePtr("some-name"), CloudProviderConfig: &admin2025.DataLakeCloudProviderConfig{ Aws: &admin2025.DataLakeAWSCloudProviderConfig{ RoleId: "aws-role-id-123", @@ -1394,31 +1396,31 @@ func TestToAPI(t *testing.T) { { DataSources: &[]admin2025.DataLakeDatabaseDataSourceSettings{ { - AllowInsecure: pointer.Get(true), - Collection: pointer.Get("some-name"), - CollectionRegex: pointer.Get("collection-regex"), - Database: pointer.Get("db"), - DatabaseRegex: pointer.Get("db-regex"), - DatasetName: pointer.Get("dataset-name"), - DatasetPrefix: pointer.Get("dataset-prefix"), - DefaultFormat: pointer.Get("default-format"), - Path: pointer.Get("path"), - ProvenanceFieldName: pointer.Get("provenqance-field-name"), - StoreName: pointer.Get("store-name"), - TrimLevel: pointer.Get(1), + AllowInsecure: pointer.MakePtr(true), + Collection: pointer.MakePtr("some-name"), + CollectionRegex: pointer.MakePtr("collection-regex"), + Database: pointer.MakePtr("db"), + DatabaseRegex: pointer.MakePtr("db-regex"), + DatasetName: pointer.MakePtr("dataset-name"), + DatasetPrefix: pointer.MakePtr("dataset-prefix"), + DefaultFormat: pointer.MakePtr("default-format"), + Path: pointer.MakePtr("path"), + ProvenanceFieldName: pointer.MakePtr("provenqance-field-name"), + StoreName: pointer.MakePtr("store-name"), + TrimLevel: pointer.MakePtr(1), Urls: &[]string{"url1", "url2"}, }, }, - Name: pointer.Get("collection0"), + Name: pointer.MakePtr("collection0"), }, }, - MaxWildcardCollections: pointer.Get(3), - Name: pointer.Get("db0"), + MaxWildcardCollections: pointer.MakePtr(3), + Name: pointer.MakePtr("db0"), Views: &[]admin2025.DataLakeApiBase{ { - Name: pointer.Get("view0"), - Pipeline: pointer.Get("pipeline0"), - Source: pointer.Get("source0"), + Name: pointer.MakePtr("view0"), + Pipeline: pointer.MakePtr("pipeline0"), + Source: pointer.MakePtr("source0"), }, }, }, @@ -1426,26 +1428,26 @@ func TestToAPI(t *testing.T) { Stores: &[]admin2025.DataLakeStoreSettings{ { AdditionalStorageClasses: &[]string{"stc1", "stc2"}, - AllowInsecure: pointer.Get(true), - Bucket: pointer.Get("bucket-name"), - ClusterName: pointer.Get("cluster-name"), - ContainerName: pointer.Get("container-name"), - DefaultFormat: pointer.Get("default-format"), - Delimiter: pointer.Get("delimiter"), - IncludeTags: pointer.Get(true), - Name: pointer.Get("store-name"), - Prefix: pointer.Get("prefix"), + AllowInsecure: pointer.MakePtr(true), + Bucket: pointer.MakePtr("bucket-name"), + ClusterName: pointer.MakePtr("cluster-name"), + ContainerName: pointer.MakePtr("container-name"), + DefaultFormat: pointer.MakePtr("default-format"), + Delimiter: pointer.MakePtr("delimiter"), + IncludeTags: pointer.MakePtr(true), + Name: pointer.MakePtr("store-name"), + Prefix: pointer.MakePtr("prefix"), Provider: "AWS", - Public: pointer.Get(true), + Public: pointer.MakePtr(true), ReadConcern: &admin2025.DataLakeAtlasStoreReadConcern{ - Level: pointer.Get("local"), + Level: pointer.MakePtr("local"), }, ReadPreference: &admin2025.DataLakeAtlasStoreReadPreference{ - Mode: pointer.Get("primary"), + Mode: pointer.MakePtr("primary"), }, - Region: pointer.Get("us-east-1"), - ReplacementDelimiter: pointer.Get("replacement-delimiter"), - ServiceURL: pointer.Get("https://service-url.com"), + Region: pointer.MakePtr("us-east-1"), + ReplacementDelimiter: pointer.MakePtr("replacement-delimiter"), + ServiceURL: pointer.MakePtr("https://service-url.com"), Urls: &[]string{"url1", "url2"}, }, }, @@ -1468,23 +1470,23 @@ func TestToAPI(t *testing.T) { Roles: &[]v1.Roles{ {DatabaseName: "admin", RoleName: "readWrite"}, }, - AwsIAMType: pointer.Get("aws-iam-type"), - DeleteAfterDate: pointer.Get("2025-07-01T00:00:00Z"), - Description: pointer.Get("description"), + AwsIAMType: pointer.MakePtr("aws-iam-type"), + DeleteAfterDate: pointer.MakePtr("2025-07-01T00:00:00Z"), + Description: pointer.MakePtr("description"), Labels: &[]v1.Tags{ {Key: "key-1", Value: "value-1"}, {Key: "key-2", Value: "value-2"}, }, - LdapAuthType: pointer.Get("ldap-auth-type"), - OidcAuthType: pointer.Get("oidc-auth-type"), - Password: pointer.Get("password"), + LdapAuthType: pointer.MakePtr("ldap-auth-type"), + OidcAuthType: pointer.MakePtr("oidc-auth-type"), + Password: pointer.MakePtr("password"), Scopes: &[]v1.Scopes{ {Name: "scope-1", Type: "type-1"}, {Name: "scope-2", Type: "type-2"}, }, - X509Type: pointer.Get("x509-type"), + X509Type: pointer.MakePtr("x509-type"), }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), }, }, } @@ -1496,21 +1498,21 @@ func TestToAPI(t *testing.T) { Roles: &[]admin2025.DatabaseUserRole{ {DatabaseName: "admin", RoleName: "readWrite"}, }, - AwsIAMType: pointer.Get("aws-iam-type"), - DeleteAfterDate: pointer.Get(time.Date(2025, 7, 1, 0, 0, 0, 0, time.UTC)), - Description: pointer.Get("description"), + AwsIAMType: pointer.MakePtr("aws-iam-type"), + DeleteAfterDate: pointer.MakePtr(time.Date(2025, 7, 1, 0, 0, 0, 0, time.UTC)), + Description: pointer.MakePtr("description"), Labels: &[]admin2025.ComponentLabel{ - {Key: pointer.Get("key-1"), Value: pointer.Get("value-1")}, - {Key: pointer.Get("key-2"), Value: pointer.Get("value-2")}, + {Key: pointer.MakePtr("key-1"), Value: pointer.MakePtr("value-1")}, + {Key: pointer.MakePtr("key-2"), Value: pointer.MakePtr("value-2")}, }, - LdapAuthType: pointer.Get("ldap-auth-type"), - OidcAuthType: pointer.Get("oidc-auth-type"), - Password: pointer.Get("password"), + LdapAuthType: pointer.MakePtr("ldap-auth-type"), + OidcAuthType: pointer.MakePtr("oidc-auth-type"), + Password: pointer.MakePtr("password"), Scopes: &[]admin2025.UserScope{ {Name: "scope-1", Type: "type-1"}, {Name: "scope-2", Type: "type-2"}, }, - X509Type: pointer.Get("x509-type"), + X509Type: pointer.MakePtr("x509-type"), } testToAPI(t, "DatabaseUser", input, nil, target, want) }, @@ -1532,9 +1534,9 @@ func TestToAPI(t *testing.T) { {Key: "key1", Value: "value1"}, {Key: "key2", Value: "value2"}, }, - TerminationProtectionEnabled: pointer.Get(true), + TerminationProtectionEnabled: pointer.MakePtr(true), }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), }, }, } @@ -1549,7 +1551,7 @@ func TestToAPI(t *testing.T) { {Key: "key1", Value: "value1"}, {Key: "key2", Value: "value2"}, }, - TerminationProtectionEnabled: pointer.Get(true), + TerminationProtectionEnabled: pointer.MakePtr(true), } testToAPI(t, "FlexCluster", input, nil, target, want) }, @@ -1564,8 +1566,8 @@ func TestToAPI(t *testing.T) { Entry: &v1.V20250312Entry{ Name: "project-name", OrgId: "60987654321654321", - RegionUsageRestrictions: pointer.Get("fake-restriction"), - WithDefaultAlertsSettings: pointer.Get(true), + RegionUsageRestrictions: pointer.MakePtr("fake-restriction"), + WithDefaultAlertsSettings: pointer.MakePtr(true), Tags: &[]v1.Tags{ {Key: "key", Value: "value"}, }, @@ -1579,8 +1581,8 @@ func TestToAPI(t *testing.T) { want := &admin2025.Group{ Name: "project-name", OrgId: "60987654321654321", - RegionUsageRestrictions: pointer.Get("fake-restriction"), - WithDefaultAlertsSettings: pointer.Get(true), + RegionUsageRestrictions: pointer.MakePtr("fake-restriction"), + WithDefaultAlertsSettings: pointer.MakePtr(true), Tags: &[]admin2025.ResourceTag{ {Key: "key", Value: "value"}, }, @@ -1599,8 +1601,8 @@ func TestToAPI(t *testing.T) { Spec: v1.GroupAlertsConfigSpec{ V20250312: &v1.GroupAlertsConfigSpecV20250312{ Entry: &v1.GroupAlertsConfigSpecV20250312Entry{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("event-type"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("event-type"), Matchers: &[]v1.Matchers{ { FieldName: "field-name-1", @@ -1615,29 +1617,29 @@ func TestToAPI(t *testing.T) { }, MetricThreshold: &v1.MetricThreshold{ MetricName: "metric-1", - Mode: pointer.Get("mode"), - Operator: pointer.Get("operator"), - Threshold: pointer.Get(1.1), - Units: pointer.Get("units"), + Mode: pointer.MakePtr("mode"), + Operator: pointer.MakePtr("operator"), + Threshold: pointer.MakePtr(1.1), + Units: pointer.MakePtr("units"), }, Threshold: &v1.MetricThreshold{ MetricName: "metric-t", - Mode: pointer.Get("mode-t"), - Operator: pointer.Get("operator-t"), - Threshold: pointer.Get(2.2), - Units: pointer.Get("units-t"), + Mode: pointer.MakePtr("mode-t"), + Operator: pointer.MakePtr("operator-t"), + Threshold: pointer.MakePtr(2.2), + Units: pointer.MakePtr("units-t"), }, Notifications: &[]v1.Notifications{ { DatadogApiKeySecretRef: &v1.ApiTokenSecretRef{ - Name: pointer.Get("datadog-secret"), + Name: pointer.MakePtr("datadog-secret"), }, - DatadogRegion: pointer.Get("US"), + DatadogRegion: pointer.MakePtr("US"), }, }, - SeverityOverride: pointer.Get("some-severity-override"), + SeverityOverride: pointer.MakePtr("some-severity-override"), }, - GroupId: pointer.Get("60965432187654321"), + GroupId: pointer.MakePtr("60965432187654321"), }, }, } @@ -1652,8 +1654,8 @@ func TestToAPI(t *testing.T) { } target := &admin2025.GroupAlertsConfig{} want := &admin2025.GroupAlertsConfig{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("event-type"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("event-type"), Matchers: &[]admin2025.StreamsMatcher{ { FieldName: "field-name-1", @@ -1668,26 +1670,26 @@ func TestToAPI(t *testing.T) { }, MetricThreshold: &admin2025.FlexClusterMetricThreshold{ MetricName: "metric-1", - Mode: pointer.Get("mode"), - Operator: pointer.Get("operator"), - Threshold: pointer.Get(1.1), - Units: pointer.Get("units"), + Mode: pointer.MakePtr("mode"), + Operator: pointer.MakePtr("operator"), + Threshold: pointer.MakePtr(1.1), + Units: pointer.MakePtr("units"), }, Threshold: &admin2025.StreamProcessorMetricThreshold{ - MetricName: pointer.Get("metric-t"), - Mode: pointer.Get("mode-t"), - Operator: pointer.Get("operator-t"), - Threshold: pointer.Get(2.2), - Units: pointer.Get("units-t"), + MetricName: pointer.MakePtr("metric-t"), + Mode: pointer.MakePtr("mode-t"), + Operator: pointer.MakePtr("operator-t"), + Threshold: pointer.MakePtr(2.2), + Units: pointer.MakePtr("units-t"), }, Notifications: &[]admin2025.AlertsNotificationRootForGroup{ { - DatadogApiKey: pointer.Get("sample-password"), - DatadogRegion: pointer.Get("US"), + DatadogApiKey: pointer.MakePtr("sample-password"), + DatadogRegion: pointer.MakePtr("US"), }, }, - GroupId: pointer.Get("60965432187654321"), - SeverityOverride: pointer.Get("some-severity-override"), + GroupId: pointer.MakePtr("60965432187654321"), + SeverityOverride: pointer.MakePtr("some-severity-override"), } testToAPI(t, "GroupAlertsConfig", input, objs, target, want) }, @@ -1700,37 +1702,37 @@ func TestToAPI(t *testing.T) { Spec: v1.NetworkPeeringConnectionSpec{ V20250312: &v1.NetworkPeeringConnectionSpecV20250312{ Entry: &v1.NetworkPeeringConnectionSpecV20250312Entry{ - AccepterRegionName: pointer.Get("accepter-region-name"), - AwsAccountId: pointer.Get("aws-account-id"), - AzureDirectoryId: pointer.Get("azure-dir-id"), - AzureSubscriptionId: pointer.Get("azure-subcription-id"), + AccepterRegionName: pointer.MakePtr("accepter-region-name"), + AwsAccountId: pointer.MakePtr("aws-account-id"), + AzureDirectoryId: pointer.MakePtr("azure-dir-id"), + AzureSubscriptionId: pointer.MakePtr("azure-subcription-id"), ContainerId: "container-id", - GcpProjectId: pointer.Get("azure-subcription-id"), - NetworkName: pointer.Get("net-name"), - ProviderName: pointer.Get("provider-name"), - ResourceGroupName: pointer.Get("resource-group-name"), - RouteTableCidrBlock: pointer.Get("cidr"), - VnetName: pointer.Get("vnet-name"), - VpcId: pointer.Get("vpc-id"), + GcpProjectId: pointer.MakePtr("azure-subcription-id"), + NetworkName: pointer.MakePtr("net-name"), + ProviderName: pointer.MakePtr("provider-name"), + ResourceGroupName: pointer.MakePtr("resource-group-name"), + RouteTableCidrBlock: pointer.MakePtr("cidr"), + VnetName: pointer.MakePtr("vnet-name"), + VpcId: pointer.MakePtr("vpc-id"), }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), }, }, } target := &admin2025.BaseNetworkPeeringConnectionSettings{} want := &admin2025.BaseNetworkPeeringConnectionSettings{ ContainerId: "container-id", - ProviderName: pointer.Get("provider-name"), - AccepterRegionName: pointer.Get("accepter-region-name"), - AwsAccountId: pointer.Get("aws-account-id"), - RouteTableCidrBlock: pointer.Get("cidr"), - VpcId: pointer.Get("vpc-id"), - AzureDirectoryId: pointer.Get("azure-dir-id"), - AzureSubscriptionId: pointer.Get("azure-subcription-id"), - ResourceGroupName: pointer.Get("resource-group-name"), - VnetName: pointer.Get("vnet-name"), - GcpProjectId: pointer.Get("azure-subcription-id"), - NetworkName: pointer.Get("net-name"), + ProviderName: pointer.MakePtr("provider-name"), + AccepterRegionName: pointer.MakePtr("accepter-region-name"), + AwsAccountId: pointer.MakePtr("aws-account-id"), + RouteTableCidrBlock: pointer.MakePtr("cidr"), + VpcId: pointer.MakePtr("vpc-id"), + AzureDirectoryId: pointer.MakePtr("azure-dir-id"), + AzureSubscriptionId: pointer.MakePtr("azure-subcription-id"), + ResourceGroupName: pointer.MakePtr("resource-group-name"), + VnetName: pointer.MakePtr("vnet-name"), + GcpProjectId: pointer.MakePtr("azure-subcription-id"), + NetworkName: pointer.MakePtr("net-name"), } testToAPI(t, "NetworkPeeringConnection", input, nil, target, want) }, @@ -1744,14 +1746,14 @@ func TestToAPI(t *testing.T) { V20250312: &v1.NetworkPermissionEntriesSpecV20250312{ Entry: &[]v1.NetworkPermissionEntriesSpecV20250312Entry{ { - AwsSecurityGroup: pointer.Get("sg-12345678"), - CidrBlock: pointer.Get("cird"), - Comment: pointer.Get("comment"), - DeleteAfterDate: pointer.Get("2025-07-01T00:00:00Z"), - IpAddress: pointer.Get("1.1.1.1"), + AwsSecurityGroup: pointer.MakePtr("sg-12345678"), + CidrBlock: pointer.MakePtr("cird"), + Comment: pointer.MakePtr("comment"), + DeleteAfterDate: pointer.MakePtr("2025-07-01T00:00:00Z"), + IpAddress: pointer.MakePtr("1.1.1.1"), }, }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), }, }, } @@ -1759,11 +1761,11 @@ func TestToAPI(t *testing.T) { want := &NetworkPermissions{ Entry: []admin2025.NetworkPermissionEntry{ { - AwsSecurityGroup: pointer.Get("sg-12345678"), - CidrBlock: pointer.Get("cird"), - Comment: pointer.Get("comment"), - DeleteAfterDate: pointer.Get(time.Date(2025, 7, 1, 0, 0, 0, 0, time.UTC)), - IpAddress: pointer.Get("1.1.1.1"), + AwsSecurityGroup: pointer.MakePtr("sg-12345678"), + CidrBlock: pointer.MakePtr("cird"), + Comment: pointer.MakePtr("comment"), + DeleteAfterDate: pointer.MakePtr(time.Date(2025, 7, 1, 0, 0, 0, 0, time.UTC)), + IpAddress: pointer.MakePtr("1.1.1.1"), }, }, } @@ -1782,10 +1784,10 @@ func TestToAPI(t *testing.T) { Desc: "description", Roles: []string{"role-1", "role-2"}, }, - FederationSettingsId: pointer.Get("fed-id"), + FederationSettingsId: pointer.MakePtr("fed-id"), Name: "org-name", - OrgOwnerId: pointer.Get("org-owner-id"), - SkipDefaultAlertsSettings: pointer.Get(true), + OrgOwnerId: pointer.MakePtr("org-owner-id"), + SkipDefaultAlertsSettings: pointer.MakePtr(true), }, }, }, @@ -1793,7 +1795,7 @@ func TestToAPI(t *testing.T) { target := &admin2025.AtlasOrganization{} want := &admin2025.AtlasOrganization{ Name: "org-name", - SkipDefaultAlertsSettings: pointer.Get(true), + SkipDefaultAlertsSettings: pointer.MakePtr(true), } testToAPI(t, "Organization", input, nil, target, want) }, @@ -1806,13 +1808,13 @@ func TestToAPI(t *testing.T) { Spec: v1.OrganizationSettingSpec{ V20250312: &v1.OrganizationSettingSpecV20250312{ Entry: &v1.OrganizationSettingSpecV20250312Entry{ - ApiAccessListRequired: pointer.Get(true), - GenAIFeaturesEnabled: pointer.Get(true), - MaxServiceAccountSecretValidityInHours: pointer.Get(24), - MultiFactorAuthRequired: pointer.Get(true), - RestrictEmployeeAccess: pointer.Get(true), - SecurityContact: pointer.Get("contact-info"), - StreamsCrossGroupEnabled: pointer.Get(true), + ApiAccessListRequired: pointer.MakePtr(true), + GenAIFeaturesEnabled: pointer.MakePtr(true), + MaxServiceAccountSecretValidityInHours: pointer.MakePtr(24), + MultiFactorAuthRequired: pointer.MakePtr(true), + RestrictEmployeeAccess: pointer.MakePtr(true), + SecurityContact: pointer.MakePtr("contact-info"), + StreamsCrossGroupEnabled: pointer.MakePtr(true), }, OrgId: "org-id", }, @@ -1820,13 +1822,13 @@ func TestToAPI(t *testing.T) { } target := &admin2025.OrganizationSettings{} want := &admin2025.OrganizationSettings{ - ApiAccessListRequired: pointer.Get(true), - GenAIFeaturesEnabled: pointer.Get(true), - MaxServiceAccountSecretValidityInHours: pointer.Get(24), - MultiFactorAuthRequired: pointer.Get(true), - RestrictEmployeeAccess: pointer.Get(true), - SecurityContact: pointer.Get("contact-info"), - StreamsCrossGroupEnabled: pointer.Get(true), + ApiAccessListRequired: pointer.MakePtr(true), + GenAIFeaturesEnabled: pointer.MakePtr(true), + MaxServiceAccountSecretValidityInHours: pointer.MakePtr(24), + MultiFactorAuthRequired: pointer.MakePtr(true), + RestrictEmployeeAccess: pointer.MakePtr(true), + SecurityContact: pointer.MakePtr("contact-info"), + StreamsCrossGroupEnabled: pointer.MakePtr(true), } testToAPI(t, "OrganizationSetting", input, nil, target, want) }, @@ -1915,7 +1917,7 @@ func TestToAPI(t *testing.T) { // Spec: v1.SampleDatasetSpec{ // V20250312: &v1.SampleDatasetSpecV20250312{ // Name: "sample-dataset", - // GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + // GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), // }, // }, // }, @@ -1933,9 +1935,9 @@ func TestToAPI(t *testing.T) { Database: "database-name", CollectionName: "collection-name", Name: "index-name", - Type: pointer.Get("search-index-type"), + Type: pointer.MakePtr("search-index-type"), Definition: &v1.Definition{ - Analyzer: pointer.Get("lucene.standard"), + Analyzer: pointer.MakePtr("lucene.standard"), Analyzers: &[]v1.Analyzers{ { Name: "custom-analyzer", @@ -1958,13 +1960,13 @@ func TestToAPI(t *testing.T) { {Raw: []byte(`{"field3":"value3"}`)}, }, Mappings: &v1.Mappings{ - Dynamic: pointer.Get(true), + Dynamic: pointer.MakePtr(true), Fields: &map[string]apiextensionsv1.JSON{ "field1": {Raw: []byte(`{"key4":"value4"}`)}, }, }, - NumPartitions: pointer.Get(3), - SearchAnalyzer: pointer.Get("lucene.standard"), + NumPartitions: pointer.MakePtr(3), + SearchAnalyzer: pointer.MakePtr("lucene.standard"), StoredSource: &apiextensionsv1.JSON{ Raw: []byte(`{"enabled": true}`), }, @@ -1979,7 +1981,7 @@ func TestToAPI(t *testing.T) { }, }, }, - GroupId: pointer.Get("group-id-101"), + GroupId: pointer.MakePtr("group-id-101"), }, }, } @@ -1988,9 +1990,9 @@ func TestToAPI(t *testing.T) { CollectionName: "collection-name", Database: "database-name", Name: "index-name", - Type: pointer.Get("search-index-type"), + Type: pointer.MakePtr("search-index-type"), Definition: &admin2025.BaseSearchIndexCreateRequestDefinition{ - Analyzer: pointer.Get("lucene.standard"), + Analyzer: pointer.MakePtr("lucene.standard"), Analyzers: &[]admin2025.AtlasSearchAnalyzer{ { Name: "custom-analyzer", @@ -2018,13 +2020,13 @@ func TestToAPI(t *testing.T) { map[string]any{"field3": "value3"}, }, Mappings: &admin2025.SearchMappings{ - Dynamic: pointer.Get(true), + Dynamic: pointer.MakePtr(true), Fields: &map[string]any{ "field1": map[string]any{"key4": "value4"}, }, }, - NumPartitions: pointer.Get(3), - SearchAnalyzer: pointer.Get("lucene.standard"), + NumPartitions: pointer.MakePtr(3), + SearchAnalyzer: pointer.MakePtr("lucene.standard"), StoredSource: any(map[string]any{"enabled": true}), Synonyms: &[]admin2025.SearchSynonymMappingDefinition{ { @@ -2077,50 +2079,50 @@ func TestToAPI(t *testing.T) { V20250312: &v1.ThirdPartyIntegrationSpecV20250312{ IntegrationType: "ANY", Entry: &v1.ThirdPartyIntegrationSpecV20250312Entry{ - AccountId: pointer.Get("account-id"), + AccountId: pointer.MakePtr("account-id"), ApiKeySecretRef: &v1.ApiTokenSecretRef{ - Key: pointer.Get("apiKey"), - Name: pointer.Get("multi-secret0"), + Key: pointer.MakePtr("apiKey"), + Name: pointer.MakePtr("multi-secret0"), }, ApiTokenSecretRef: &v1.ApiTokenSecretRef{ - Key: pointer.Get("apiToken"), - Name: pointer.Get("multi-secret0"), + Key: pointer.MakePtr("apiToken"), + Name: pointer.MakePtr("multi-secret0"), }, - ChannelName: pointer.Get("channel-name"), - Enabled: pointer.Get(true), + ChannelName: pointer.MakePtr("channel-name"), + Enabled: pointer.MakePtr(true), LicenseKeySecretRef: &v1.ApiTokenSecretRef{ - Key: pointer.Get("licenseKey"), - Name: pointer.Get("multi-secret1"), + Key: pointer.MakePtr("licenseKey"), + Name: pointer.MakePtr("multi-secret1"), }, - Region: pointer.Get("some-region"), - SendCollectionLatencyMetrics: pointer.Get(true), - SendDatabaseMetrics: pointer.Get(true), - SendUserProvidedResourceTags: pointer.Get(true), - ServiceDiscovery: pointer.Get("service-discovery"), - TeamName: pointer.Get("some-team"), - Type: pointer.Get("some-type"), - Username: pointer.Get("username"), + Region: pointer.MakePtr("some-region"), + SendCollectionLatencyMetrics: pointer.MakePtr(true), + SendDatabaseMetrics: pointer.MakePtr(true), + SendUserProvidedResourceTags: pointer.MakePtr(true), + ServiceDiscovery: pointer.MakePtr("service-discovery"), + TeamName: pointer.MakePtr("some-team"), + Type: pointer.MakePtr("some-type"), + Username: pointer.MakePtr("username"), }, - GroupId: pointer.Get("32b6e34b3d91647abb20e7b8"), + GroupId: pointer.MakePtr("32b6e34b3d91647abb20e7b8"), }, }, } target := &admin2025.ThirdPartyIntegration{} want := &admin2025.ThirdPartyIntegration{ - Type: pointer.Get("some-type"), - ApiKey: pointer.Get("sample-api-key"), - Region: pointer.Get("some-region"), - SendCollectionLatencyMetrics: pointer.Get(true), - SendDatabaseMetrics: pointer.Get(true), - SendUserProvidedResourceTags: pointer.Get(true), - AccountId: pointer.Get("account-id"), - LicenseKey: pointer.Get("sample-license-key"), - Enabled: pointer.Get(true), - ServiceDiscovery: pointer.Get("service-discovery"), - Username: pointer.Get("username"), - ApiToken: pointer.Get("sample-api-token"), - ChannelName: pointer.Get("channel-name"), - TeamName: pointer.Get("some-team"), + Type: pointer.MakePtr("some-type"), + ApiKey: pointer.MakePtr("sample-api-key"), + Region: pointer.MakePtr("some-region"), + SendCollectionLatencyMetrics: pointer.MakePtr(true), + SendDatabaseMetrics: pointer.MakePtr(true), + SendUserProvidedResourceTags: pointer.MakePtr(true), + AccountId: pointer.MakePtr("account-id"), + LicenseKey: pointer.MakePtr("sample-license-key"), + Enabled: pointer.MakePtr(true), + ServiceDiscovery: pointer.MakePtr("service-discovery"), + Username: pointer.MakePtr("username"), + ApiToken: pointer.MakePtr("sample-api-token"), + ChannelName: pointer.MakePtr("channel-name"), + TeamName: pointer.MakePtr("some-team"), } objs := []client.Object{ &corev1.Secret{ diff --git a/tools/ako2api/pkg/translate/unstructured.go b/internal/v3/translate/unstructured.go similarity index 100% rename from tools/ako2api/pkg/translate/unstructured.go rename to internal/v3/translate/unstructured.go diff --git a/tools/ako2api/pkg/translate/unstructured_test.go b/internal/v3/translate/unstructured_test.go similarity index 91% rename from tools/ako2api/pkg/translate/unstructured_test.go rename to internal/v3/translate/unstructured_test.go index b4f4dfd6a4..15a848b620 100644 --- a/tools/ako2api/pkg/translate/unstructured_test.go +++ b/internal/v3/translate/unstructured_test.go @@ -21,9 +21,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - admin2025 "go.mongodb.org/atlas-sdk/v20250312005/admin" + admin2025 "go.mongodb.org/atlas-sdk/v20250312006/admin" - "github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api/internal/pointer" + "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/pointer" ) type testStruct struct { @@ -56,8 +56,8 @@ func TestParamsFill(t *testing.T) { assert.Equal(t, admin2025.CreateAlertConfigurationApiParams{ GroupId: "62b6e34b3d91647abb20e7b8", GroupAlertsConfig: &admin2025.GroupAlertsConfig{ - Enabled: pointer.Get(true), - EventTypeName: pointer.Get("some-event"), + Enabled: pointer.MakePtr(true), + EventTypeName: pointer.MakePtr("some-event"), }, }, result) } diff --git a/tools/ako2api/pkg/k8s/types.go b/pkg/k8s/types.go similarity index 100% rename from tools/ako2api/pkg/k8s/types.go rename to pkg/k8s/types.go diff --git a/tools/ako2api/.github/workflows/go.yml b/tools/ako2api/.github/workflows/go.yml deleted file mode 100644 index 21fc504037..0000000000 --- a/tools/ako2api/.github/workflows/go.yml +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2025 MongoDB Inc -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# This workflow will build a golang project -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go - -name: Go - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: '1.25' - - - name: Build - run: go build -v ./... - - - name: Test - run: go test -race -cover -v ./... - - - name: golangci-lint - uses: golangci/golangci-lint-action@v8 - with: - version: v2.1 - - gci: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - - name: Install devbox - uses: jetify-com/devbox-install-action@v0.13.0 - with: - enable-cache: 'true' - - - name: gci - run: | - echo "Did you run gofmt-gci?" - devbox run -- 'gofmt-gci && git diff-index --name-only HEAD && git diff-index --quiet HEAD --' diff --git a/tools/ako2api/README.md b/tools/ako2api/README.md deleted file mode 100644 index 886d842f9a..0000000000 --- a/tools/ako2api/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# ako2api -AKO 2 Atlas API (and back) translation library PoC diff --git a/tools/ako2api/cmd/updateSamples/main.go b/tools/ako2api/cmd/updateSamples/main.go deleted file mode 100644 index 4bb0af9720..0000000000 --- a/tools/ako2api/cmd/updateSamples/main.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2025 MongoDB Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package main - -import ( - "fmt" - "io" - "log" - "net/http" - "os" - "os/exec" -) - -const ( - CRDsURL = "https://raw.githubusercontent.com/s-urbaniak/atlas2crd/refs/heads/main/crds.yaml?token=%s" - - crdsFile = "pkg/translate/samples/crds.yaml" - - targetDir = "pkg/translate/samples/v1" -) - -func main() { - if err := updateSamples(); err != nil { - log.Fatal(err) - } -} - -func updateSamples() error { - token := mustGetenv("GITHUB_URL_TOKEN") - url := fmt.Sprintf(CRDsURL, token) - log.Printf("Downloading %s on to %s", CRDsURL, crdsFile) - n, err := downloadTo(url, crdsFile) - if err != nil { - return fmt.Errorf("failed to download CRD YAML: %w", err) - } - log.Printf("Downloaded %d bytes on to %s", n, crdsFile) - - log.Printf("Generating Go structs from CRDs to %s...", targetDir) - crd2go := mustGetenv("CRD2GO_BIN") - if err := run(crd2go, "-input", crdsFile, "-output", targetDir); err != nil { - return fmt.Errorf("failed to generate CRDs Go structs: %w", err) - } - - log.Print("Generating Go deep copy code...") - if err := run("controller-gen", "object", "paths=\"./pkg/translate/samples/v1\""); err != nil { - return fmt.Errorf("failed to generate Go deep copy code: %w", err) - } - return nil -} - -func downloadTo(url, filename string) (int64, error) { - rsp, err := http.Get(url) - if err != nil { - return 0, fmt.Errorf("failed to download from %s: %w", url, err) - } - f, err := os.Create(filename) - if err != nil { - return 0, fmt.Errorf("failed to create file %s: %w", filename, err) - } - defer checkErr("closing download file", f.Close) - n, err := io.Copy(f, rsp.Body) - if err != nil { - return n, fmt.Errorf("failed to write downloaded data to file %s: %w", filename, err) - } - return n, nil -} - -func mustGetenv(name string) string { - value, ok := os.LookupEnv(name) - if !ok { - panic(fmt.Errorf("%s env var must be set", name)) - } - return value -} - -func run(command string, args ...string) error { - cmd := exec.Command(command, args...) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - return cmd.Run() -} - -func checkErr(msg string, fn func() error) { - if err := fn(); err != nil { - log.Printf("failed %s: %v", msg, err) - } -} diff --git a/tools/ako2api/devbox.json b/tools/ako2api/devbox.json deleted file mode 100644 index c6dd790ff8..0000000000 --- a/tools/ako2api/devbox.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.0/.schema/devbox.schema.json", - "packages": [ - "go@latest", - "vscodium@latest", - "gci@latest", - "golangci-lint@latest" - ], - "shell": { - "init_hook": [ - "echo 'Welcome to devbox!' > /dev/null", - "alias gofmt-gci='gci write --skip-generated -s standard -s default -s localmodule .'" - ], - "scripts": { - "test": [ - "echo \"Error: no test specified\" && exit 1" - ] - } - } -} diff --git a/tools/ako2api/devbox.lock b/tools/ako2api/devbox.lock deleted file mode 100644 index c544385c79..0000000000 --- a/tools/ako2api/devbox.lock +++ /dev/null @@ -1,201 +0,0 @@ -{ - "lockfile_version": "1", - "packages": { - "gci@latest": { - "last_modified": "2025-08-05T11:35:34Z", - "resolved": "github:NixOS/nixpkgs/a683adc19ff5228af548c6539dbc3440509bfed3#gci", - "source": "devbox-search", - "version": "0.13.7", - "systems": { - "aarch64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/7b3sg0y429lrs0911z4niarpbfjr56jg-gci-0.13.7", - "default": true - } - ], - "store_path": "/nix/store/7b3sg0y429lrs0911z4niarpbfjr56jg-gci-0.13.7" - }, - "aarch64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/3vhs0z22yjhb74i5gd37mjmzh3rnp6jy-gci-0.13.7", - "default": true - } - ], - "store_path": "/nix/store/3vhs0z22yjhb74i5gd37mjmzh3rnp6jy-gci-0.13.7" - }, - "x86_64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/aspm12m99q4hvk0knzdhkzcwci76pay8-gci-0.13.7", - "default": true - } - ], - "store_path": "/nix/store/aspm12m99q4hvk0knzdhkzcwci76pay8-gci-0.13.7" - }, - "x86_64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/93ma260h6rj5c47hrn0bajd5d4kc8kfs-gci-0.13.7", - "default": true - } - ], - "store_path": "/nix/store/93ma260h6rj5c47hrn0bajd5d4kc8kfs-gci-0.13.7" - } - } - }, - "github:NixOS/nixpkgs/nixpkgs-unstable": { - "last_modified": "2025-09-05T01:14:44Z", - "resolved": "github:NixOS/nixpkgs/ca77296380960cd497a765102eeb1356eb80fed0?lastModified=1757034884&narHash=sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao%3D" - }, - "go@latest": { - "last_modified": "2025-07-28T17:09:23Z", - "resolved": "github:NixOS/nixpkgs/648f70160c03151bc2121d179291337ad6bc564b#go", - "source": "devbox-search", - "version": "1.24.5", - "systems": { - "aarch64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/kw1vd98s15vj700m3gx2x2xca2z477i3-go-1.24.5", - "default": true - } - ], - "store_path": "/nix/store/kw1vd98s15vj700m3gx2x2xca2z477i3-go-1.24.5" - }, - "aarch64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/5bzlaj0c4mqw9p0zrcx5g9vz16vd45dl-go-1.24.5", - "default": true - } - ], - "store_path": "/nix/store/5bzlaj0c4mqw9p0zrcx5g9vz16vd45dl-go-1.24.5" - }, - "x86_64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/b72n20ixzl5ja9vciwahkr30bhmsn5jc-go-1.24.5", - "default": true - } - ], - "store_path": "/nix/store/b72n20ixzl5ja9vciwahkr30bhmsn5jc-go-1.24.5" - }, - "x86_64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/y4awwzp30ka130wmjrpaqjmjdf9p010w-go-1.24.5", - "default": true - } - ], - "store_path": "/nix/store/y4awwzp30ka130wmjrpaqjmjdf9p010w-go-1.24.5" - } - } - }, - "golangci-lint@latest": { - "last_modified": "2025-08-03T19:18:05Z", - "resolved": "github:NixOS/nixpkgs/bf9fa86a9b1005d932f842edf2c38eeecc98eef3#golangci-lint", - "source": "devbox-search", - "version": "2.3.1", - "systems": { - "aarch64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/ahn380skfkdg3ynimjpqakc1wp26mpsi-golangci-lint-2.3.1", - "default": true - } - ], - "store_path": "/nix/store/ahn380skfkdg3ynimjpqakc1wp26mpsi-golangci-lint-2.3.1" - }, - "aarch64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/5wf61l5pnqlna9mwllllq334rkh1i2a6-golangci-lint-2.3.1", - "default": true - } - ], - "store_path": "/nix/store/5wf61l5pnqlna9mwllllq334rkh1i2a6-golangci-lint-2.3.1" - }, - "x86_64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/sbqfd50kb6g4gka3w1vixjrnacspdwq5-golangci-lint-2.3.1", - "default": true - } - ], - "store_path": "/nix/store/sbqfd50kb6g4gka3w1vixjrnacspdwq5-golangci-lint-2.3.1" - }, - "x86_64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/kxbsvkixvkn0ss81rbc1g814sizd1jwj-golangci-lint-2.3.1", - "default": true - } - ], - "store_path": "/nix/store/kxbsvkixvkn0ss81rbc1g814sizd1jwj-golangci-lint-2.3.1" - } - } - }, - "vscodium@latest": { - "last_modified": "2025-08-11T16:06:55Z", - "resolved": "github:NixOS/nixpkgs/4e942f9ef5b35526597c354d1ded817d1c285ef1#vscodium", - "source": "devbox-search", - "version": "1.103.05312", - "systems": { - "aarch64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/3pvxh6qkcjvyciggfkirip9naal0fx3d-vscodium-1.103.05312", - "default": true - } - ], - "store_path": "/nix/store/3pvxh6qkcjvyciggfkirip9naal0fx3d-vscodium-1.103.05312" - }, - "aarch64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/m9nkm66va093r31rzxisf86dykzmmmkx-vscodium-1.103.05312", - "default": true - } - ], - "store_path": "/nix/store/m9nkm66va093r31rzxisf86dykzmmmkx-vscodium-1.103.05312" - }, - "x86_64-darwin": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/bgzfwj5lg9057hv1vv4x6zyndwwm0ch9-vscodium-1.103.05312", - "default": true - } - ], - "store_path": "/nix/store/bgzfwj5lg9057hv1vv4x6zyndwwm0ch9-vscodium-1.103.05312" - }, - "x86_64-linux": { - "outputs": [ - { - "name": "out", - "path": "/nix/store/9pc78x6ayzvms979xma5s601ahkznq3k-vscodium-1.103.05312", - "default": true - } - ], - "store_path": "/nix/store/9pc78x6ayzvms979xma5s601ahkznq3k-vscodium-1.103.05312" - } - } - } - } -} diff --git a/tools/ako2api/go.mod b/tools/ako2api/go.mod deleted file mode 100644 index 7225c3b91a..0000000000 --- a/tools/ako2api/go.mod +++ /dev/null @@ -1,53 +0,0 @@ -module github.com/mongodb/mongodb-atlas-kubernetes/tools/ako2api - -go 1.24.7 - -require ( - github.com/stretchr/testify v1.10.0 - go.mongodb.org/atlas-sdk/v20250312005 v20250312005.0.0 - gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.33.3 - k8s.io/apiextensions-apiserver v0.33.3 - k8s.io/apimachinery v0.33.3 - k8s.io/client-go v0.33.3 - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 - sigs.k8s.io/controller-runtime v0.21.0 -) - -require ( - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/evanphx/json-patch/v5 v5.9.11 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.23.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/gnostic-models v0.6.9 // indirect - github.com/google/go-cmp v0.7.0 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/mongodb-forks/digest v1.1.0 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/x448/float16 v0.8.4 // indirect - golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.24.0 // indirect - golang.org/x/time v0.9.0 // indirect - google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect -) diff --git a/tools/ako2api/go.sum b/tools/ako2api/go.sum deleted file mode 100644 index aa9563b957..0000000000 --- a/tools/ako2api/go.sum +++ /dev/null @@ -1,173 +0,0 @@ -github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= -github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU= -github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= -github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= -github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= -github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= -github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mongodb-forks/digest v1.1.0 h1:7eUdsR1BtqLv0mdNm4OXs6ddWvR4X2/OsLwdKksrOoc= -github.com/mongodb-forks/digest v1.1.0/go.mod h1:rb+EX8zotClD5Dj4NdgxnJXG9nwrlx3NWKJ8xttz1Dg= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= -github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw= -github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.mongodb.org/atlas-sdk/v20250312005 v20250312005.0.0 h1:uKOtHXCP/Gwuj+IF1hsKtIAxNSVjKNo+o4Z+ulgCEXw= -go.mongodb.org/atlas-sdk/v20250312005 v20250312005.0.0/go.mod h1:UeRE741z+kDGH00qQasZmthQxJMeA6PmAtY/2dStW+Q= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= -golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= -golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.33.3 h1:SRd5t//hhkI1buzxb288fy2xvjubstenEKL9K51KBI8= -k8s.io/api v0.33.3/go.mod h1:01Y/iLUjNBM3TAvypct7DIj0M0NIZc+PzAHCIo0CYGE= -k8s.io/apiextensions-apiserver v0.33.3 h1:qmOcAHN6DjfD0v9kxL5udB27SRP6SG/MTopmge3MwEs= -k8s.io/apiextensions-apiserver v0.33.3/go.mod h1:oROuctgo27mUsyp9+Obahos6CWcMISSAPzQ77CAQGz8= -k8s.io/apimachinery v0.33.3 h1:4ZSrmNa0c/ZpZJhAgRdcsFcZOw1PQU1bALVQ0B3I5LA= -k8s.io/apimachinery v0.33.3/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= -k8s.io/client-go v0.33.3 h1:M5AfDnKfYmVJif92ngN532gFqakcGi6RvaOF16efrpA= -k8s.io/client-go v0.33.3/go.mod h1:luqKBQggEf3shbxHY4uVENAxrDISLOarxpTKMiUuujg= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= -k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8= -sigs.k8s.io/controller-runtime v0.21.0/go.mod h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= -sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tools/ako2api/internal/debug/js.go b/tools/ako2api/internal/debug/js.go deleted file mode 100644 index e4391414c2..0000000000 --- a/tools/ako2api/internal/debug/js.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2025 MongoDB Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package debug - -import "encoding/json" - -func JSONize(obj any) string { - js, err := json.MarshalIndent(obj, " ", " ") - if err != nil { - return err.Error() - } - return string(js) -} diff --git a/tools/ako2api/internal/pointer/ptr.go b/tools/ako2api/internal/pointer/ptr.go deleted file mode 100644 index ee6a9078bd..0000000000 --- a/tools/ako2api/internal/pointer/ptr.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2025 MongoDB Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package pointer - -func Get[T any](v T) *T { - return &v -}